Sisällysluettelo:
Video: TOYL Task Tracker: 3 vaihetta (kuvilla)
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:01
Älä vain vihaa sitä, kun aiot työskennellä tai pahempaa, olet keskellä työistuntoa ja ilmoitus tulee puhelimeesi-"nopeasta tarkistuksesta" tulee tuntia myöhemmin. Tiedätkö myös, kuinka paljon aikaa työskentelet tiettyjen tehtävien suhteen suhteessa työhön varattuun aikaan viikossa?
Siirry TOYL -tehtävien seurantaohjelmaan. Sen avulla voit sammuttaa puhelimesi ja keskittyä työhön samalla kun voit määrittää, kuinka paljon aikaa haluat työskennellä viikossa, eli 60 tuntia, ja tehtävät, jotka haluat tehdä. Kun istut istuntoon, saat käsityksen siitä, kuinka paljon aikaa sinulla on jäljellä työhösi. Seurantalaitteessa on kaksi tilaa: ajastin, jossa olet määrittänyt, kuinka paljon aikaa haluat käyttää tehtävään viikossa, ja sekuntikello, jossa voit yksinkertaisesti käynnistää ja pysäyttää ajastimen tehtävän valitsemisen jälkeen.
Tarvikkeet
Piiri
- Adafruit Feather Huzzah
- Adafruit FeatherWing
- Uros otsikkotapit
- Naaraspuoliset otsatapit
- 500mAh akku
- 100K ohmin vastukset x2
- Eristysteippi
- Kierretty lanka
- Langanpoistimet
- Juotostuuletin
Kotelo
- Läpinäkymätön akryylilevy 24 "x18"
- Kaksipuolinen teippi
- Pääsy laserleikkuriin
- Vektoriohjelmisto
Vaihe 1: Juota piirisi
Juotos naaraspuoliset otsikkotapit Feather Huzzahiin. Tämä opetusohjelma on hyödyllinen Feather Huzzah -laitteiston asennuksessa. Juotos sitten urospuolisen otsikon nastat FeatherWingiin. Juottamalla ne tällä tavalla voit liittää ja erottaa Feather Wingin Feather Huzzahista tarvittaessa. Tämä on erityisen kätevää, kun sinun on lisättävä vastuksia FeatherWing -laitteeseesi, mikä on seuraava askel. Liitä 100K ohmin vastukset kustakin nastasta 0 ja 2, kytketty 3 V: iin.
Asenna Feather Huzzah -laitteisto
Asenna Feather Wing -laitteisto
Vaihe 2: Lisää koodi
Tämä koodi on Oppitunti 5 esineiden Internet -koodin mukautus, jos aika sallii, haluaisin korvata Preceptitaton -palvelun sellaisella, joka seuraa ToDosit IFTTT -sovelman kautta lisättäviä tehtäviä. Tällä hetkellä sinun on syötettävä manuaalisesti joukko tehtäviä ja käytettävä painiketta A selataksesi niitä. Lisäksi olisin halunnut koodata ajastimen laskemaan minuuteissa ja pysähtymään, kun siirrytään seuraavaan tehtävään. Suuri kiitos Becky Sternille ajastimen peruskoodin luomisesta ja tehtävien suorittamisesta. Jos olet kiinnostunut yhdistämään projektin Internetiin, suosittelen lämpimästi käymään läpi tämän luokan.
// Ohjattavat esineiden Internet -luokan mallikoodi // Piiri näyttää Internet -tiedot // Säätiedot kerätään syötteeseen // Useat NeoPixelit visualisoivat sääolot // // Muokannut Becky Stern 2017 // perustuu Adafruit IO -tilausesimerkkiin
// Adafruit investoi aikaa ja resursseja tämän avoimen lähdekoodin tarjoamiseen.
// Tue Adafruitia ja avoimen lähdekoodin laitteistoa ostamalla // tuotteita Adafruitilta! // // Kirjoittanut Todd Treece Adafruit Industriesille // Tekijänoikeus (c) 2016 Adafruit Industries // Lisensoitu MIT -lisenssillä. // // Kaikki yllä oleva teksti on sisällytettävä uudelleenjakeluun.
/************************ Adafruit IO Configuration ********************** *********
/ käy osoitteessa io.adafruit.com, jos haluat luoda tilin, // tai jos tarvitset Adafruit IO -avainta. #define IO_USERNAME "YourUsernameHere" #define IO_KEY "YourIOKey Here"
/******************************** WIFI -kokoonpano **************** **********************/
#define WIFI_SSID "WifiName"
#define WIFI_PASS "WifiPassword"
#include "AdafruitIO_WiFi.h"
AdafruitIO_WiFi io (IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
/************************ Pääohjelma alkaa tästä ********************* **********/
#Sisällytä #Sisällytä #Sisällytä #Sisällytä
#sisältää
#Sisällytä #Sisällytä #Sisällytä
#define OLED_RESET 3
Adafruit_SSD1306 -näyttö (128, 32, & Wire, OLED_RESET);
// tämä vakio ei muutu:
const int -painikePinA = 0; // nastat, joihin painikkeet on liitetty const int -painikePinB = 16; // tässä on jo pullup -vastus, kaksi muuta tarvitsevat yhden const int -painikkeenPinC = 2;
// Muuttujat muuttuvat:
int -painikeAPushCounter = 0; // painikepainikkeiden laskuri int buttonAState = 0; // painikkeen nykyinen tila int lastButtonAState = 0; // painikkeen edellinen tila
// Muuttujat muuttuvat:
int -painikeBPushCounter = 0; // painikepainikkeiden laskuri int buttonBState = 0; // painikkeen nykyinen tila int lastButtonBState = 0; // painikkeen edellinen tila
// Muuttujat muuttuvat:
int -painikeCPushCounter = 0; // painikepainikkeiden laskuri int buttonCState = 0; // painikkeen nykyinen tila int lastButtonCState = 0; // painikkeen edellinen tila
Merkkijono displayForecast = "tuntematon";
int timerVal = 0;
unsigned long lastStartTime = 0; bool timerEnabled = 0;
AdafruitIO_Feed *sademäärä = io.feed ("saostus"); // aseta "sademäärä" -syöttö
// AdafruitIO_Feed *taskmanager = io.feed ("taskmanager"); // aseta "taskmanager" -syöte
void setup () {
pinMode (buttonPinA, INPUT); pinMode (buttonPinB, INPUT_PULLUP); pinMode (buttonPinC, INPUT);
// SSD1306_SWITCHCAPVCC = luo näyttöjännitteen 3.3V sisäisesti
display.begin (SSD1306_SWITCHCAPVCC, 0x3C); // Osoite 0x3C 128x32
// Näytä alkuperäinen puskurin sisältö näytöllä -
// kirjasto alustaa tämän Adafruit -aloitusnäytöllä. display.display (); viive (2000); // Keskeytä 2 sekuntia
// Tyhjennä puskuri.
display.clearDisplay ();
// sarjayhteyden aloittaminen
Sarja.alku (115200);
// muodosta yhteys osoitteeseen io.adafruit.com
Serial.print ("Yhdistäminen Adafruit IO: hon"); io.connect (); // aseta sanomankäsittelijä sademääräsyötteelle. // kahvaMessage -toiminto (määritelty alla) // soitetaan aina, kun viesti // vastaanotetaan adafruit io: lta. sademäärä-> onMessage (kahvaMessage);
// odota yhteyttä
while (io.status () <AIO_CONNECTED) {Serial.print ("."); viive (500); }
// olemme yhteydessä
Sarja.println (); Serial.println (io.statusText ());
}
void loop () {
// io.run (); vaaditaan kaikissa luonnoksissa.
// sen pitäisi aina olla läsnä silmukkasi // -funktion yläosassa. se pitää asiakkaan yhteydessä osoitteeseen // io.adafruit.com ja käsittelee kaikki saapuvat tiedot. io.run ();
// lukee painikkeen syöttötappi:
buttonAState = digitalRead (buttonPinA); buttonBState = digitalRead (buttonPinB); buttonCState = digitalRead (buttonPinC);
// vertaa buttonStatea edelliseen tilaansa
if (buttonAState! = lastButtonAState || buttonBState! = lastButtonBState || buttonCState! = lastButtonCState) {// jos tila on muuttunut, lisää laskuria, jos (buttonAState == LOW) {// jos nykyinen tila on LOW, painike painettiin painikettaAPushCounter ++; Serial.print ("A -painikkeen painallusten määrä:"); Serial.println (buttonAPushCounter); } if (buttonBState == LOW) {// jos nykyinen tila on LOW, painiketta painettiin buttonBPushCounter ++; Serial.print ("B -painikkeen painallusten määrä:"); Serial.println (buttonBPushCounter); Serial.println ("Käynnistysajastin"); timerEnabled = 1; lastStartTime = millis (); } if (buttonCState == LOW) {// jos nykyinen tila on LOW, painiketta painettiin buttonCPushCounter ++; Serial.print ("C -painikkeen painallusten määrä:"); Serial.println (buttonCPushCounter); Serial.println ("Pysäytysajastin"); timerEnabled = 0; }} if (timerEnabled == 1) {// lisää ajastinta vain, kun se on käynnistetty timerVal = (millis () - lastStartTime)/1000; }
// näytä sijainti 1 - ennuste
// if (buttonAPushCounter % 3 == 0) {// display.clearDisplay (); // display.setTextSize (1); // display.setTextColor (VALKOINEN); // display.setCursor (0, 0); // display.print ("Ennuste:"); // display.println (displayForecast); // display.setCursor (0, 16); // display.println ("toinen rivi"); // display.println ("esimerkkisisältö"); // display.display (); // // delay (2000); //}
// näytön sijainti 1 - Tehtävä 1
if (buttonAPushCounter % 3 == 0) {display.setTextSize (1); display.setTextColor (VALKOINEN); display.clearDisplay (); display.setCursor (0, 0); display.println ("Tutkimus - Haastattelut"); display.println (); display.print ("Ajastin:"); display.println (timerVal); display.display (); }
// näytön sijainti 2 - Tehtävä 2
if (buttonAPushCounter % 3 == 1) {display.clearDisplay (); display.setCursor (0, 0); display.println ("Making Studio - Code"); display.println (); display.print ("Ajastin:"); display.println (timerVal); display.display (); }
// näytön sijainti 3 - Tehtävä 3
if (buttonAPushCounter % 3 == 2) {display.clearDisplay (); display.setCursor (0, 0); display.println ("DSV - Sketching"); display.println (); display.print ("Ajastin:"); display.println (timerVal); display.display (); }
// tallenna nykyinen tila viimeiseksi tilaksi, // seuraavan kerran silmukan kautta lastButtonAState = buttonAState; lastButtonBState = buttonBState; lastButtonCState = buttonCState;
}
// tätä toimintoa kutsutaan aina viestin yhteydessä
// vastaanotetaan Adafruit IO: lta. se liitettiin // syötteeseen yllä olevassa setup () -toiminnossa. void handleMessage (AdafruitIO_Data *data) {
Merkkijonoennuste = data-> toString (); // tallentaa saapuvat säätiedot merkkijonoon
Serial.print ("vastaanotettu <-"); Serial.println (ennuste); displayForecast = ennuste; // seuraavat merkkijonot tallentavat tähän mennessä löytämiäni erilaisia IFTTT -säätiedon sanoja String task1 = String ("Task 1"); Jousisade = Jono ("Sade"); String lightrain = String ("Kevyt sade"); String sadesuihku = String ("Suihku"); String AMshowers = Jono ("AM -suihkut"); String rainandsnow = String ("Sade ja lumi"); Merkkijono = Jono ("Lumi"); String snowshower = String ("Lumisuihku"); Jono samea = Jono ("Pilvinen"); String daugiausiacloudy = Jono ("Enimmäkseen pilvistä"); Jousisilmä osittain pilvistä = Jono ("Osittain pilvistä"); String clearsky = Jono ("Tyhjennä"); String fair = Jono ("Fair"); Jono aurinkoinen = Jono ("Aurinkoinen");
// Nämä if -lauseet verraavat saapuvaa säämuuttujaa tallennettuihin olosuhteisiin ja ohjaavat NeoPixeleitä sen mukaisesti.
// jos ennusteessa sataa jos ennuste tänään );
}
// jos ennusteessa on lunta if (prognoz.equalsIgnoreCase (lumi) || prognoz.equalsIgnoreCase (sademäärä) || prognoz.equalsIgnoreCase (snowshower)) {Serial.println ("sateet ennusteessa tänään");
}
// jos ennusteessa on aurinkoa if (prognoz.equalsIgnoreCase (kirkas) || prognoz.equalsIgnoreCase (fair) || prognoz.equalsIgnoreCase (aurinkoinen)) {Serial.println ("jonkinlainen aurinko ennusteessa tänään");
}
// jos ennusteessa on pilviä if (prognoz.equalsIgnoreCase (pilvinen) || prognoz.equalsIgnoreCase (enimmäkseen pilvistä) || prognoz.equalsIgnoreCase (osittain pilvistä)) {Serial.println ("pilvinen taivas ennusteessa tänään");
}
}
Vaihe 3: Luo säiliö / kuori
Kuoren osalta aloita määrittämällä, minkä koon haluat kehyksesi olevan, tai voit ladata tiedoston. Kun olet määrittänyt koon, voit luoda vektoritiedoston asettelun MakerCasen avulla.
Suorita tiedosto laserleikkurin läpi - sen pitäisi kestää noin 5 minuuttia. Laita kuori sen jälkeen yhteen.
En ottanut huomioon materiaalin leveyttä, mikä vaikeuttaa painikkeideni saavuttamista. Minun on vielä löydettävä tapa kiinnittää ne. Ne ovat myös hyvin pieniä, mikä vaikeuttaa niiden kanssa työskentelyä.
Suositeltava:
DIY Solar Tracker: 27 vaihetta (kuvilla)
DIY Solar Tracker: Johdanto Tavoitteenamme on esitellä nuorille opiskelijoille tekniikka ja opettaa heille aurinkoenergiaa. antamalla heidän rakentaa Helios osana opetussuunnitelmaansa. Suunnittelussa pyritään työntämään energiantuotanto pois fossiilisten polttoaineiden käytöstä
Task shakki: 4 vaihetta
Task shakki: Se on shakki! Taskussa. Tämän projektin tarkoituksena on luoda pieni laite, jolla voidaan ajaa pieniä pelejä, kuten käärme, pac-man, tetris ja jopa shakki
DIY Miniature Solar Tracker: 5 vaihetta (kuvilla)
DIY Miniature Solar Tracker: Tässä projektissa näytän sinulle, kuinka luoda aurinkokenno, joka nimensä mukaisesti voi seurata auringon liikettä koko päivän. Ja lopussa näytän sinulle energiankorjuun eron aurinkopaneeliin asennetun aurinkopaneelin välillä
Arduino Powered 'Scotch Mount' Star Tracker astrologiseen valokuvaukseen: 7 vaihetta (kuvilla)
Arduino Powered 'Scotch Mount' Star Tracker astrologiseen valokuvaukseen: Opin Scotch Mountista nuorempana ja tein yhden isäni kanssa 16 -vuotiaana. päästä monimutkaisiin kaukoputkiasioihin
Elokuvan seuranta - Raspberry Pi Powered Theatrical Release Tracker: 15 vaihetta (kuvilla)
Elokuvan seuranta - Raspberry Pi Powered Theatrical Release Tracker: Movie Tracker on klappilaudan muotoinen Raspberry Pi -julkaisujulkaisun seuranta. Se tulostaa TMDb -sovellusliittymän avulla julisteen, nimikkeen, julkaisupäivän ja yleiskatsauksen alueellasi tulevista elokuvista määrätyllä aikavälillä (esim. Tämän viikon elokuvien julkaisut)