Sadržaj:
Video: TOYL Track Task Tracker: 3 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:34
Ne mrzite li samo kad planirate raditi ili još gore, usred ste radnog vremena i na telefon vam stiže obavijest-"brza provjera" postaje nekoliko sati kasnije. Također, znate li koliko vremena radite na određenim zadacima u odnosu na vrijeme koje ste tjedno odvojili za posao?
Unesite TOYL Task Tracker. Omogućuje vam isključivanje telefona i fokusiranje na posao, a istovremeno vam omogućuje postavljanje vremena koje želite raditi tjedno-recimo 60 sati-i zadataka koje želite obaviti. Kad sjednete na sjednicu, steknete predodžbu o tome koliko vam je vremena ostalo za cjelokupni rad. Tracker ima dva načina rada: Mjerač vremena, gdje ste unaprijed postavili koliko vremena želite tjedno potrošiti po zadatku, i Štoperica, gdje možete jednostavno pokrenuti-zaustaviti mjerač vremena nakon odabira zadatka.
Pribor
Krug
- Adafruit pero Huzzah
- Adafruit FeatherWing
- Muške igle zaglavlja
- Ženske igle zaglavlja
- Baterija 500mAh
- 100K ohmski otpornici x2
- Izolacijska traka
- Nasukana žica
- Skidači žica
- Ventilator za lemljenje
Kućište
- Neprozirni akrilni list 24 "x18"
- Dvostrana traka
- Pristup laserskom rezaču
- Vektorski softver
Korak 1: Lemite svoj krug
Lemite igle ženskog zaglavlja na pero Huzzah. Ovaj je vodič koristan za postavljanje hardvera Feather Huzzah. Zatim lemite muške igle zaglavlja na FeatherWing. Lemljenje na ovaj način omogućuje vam spajanje i odvajanje krila od perja od perje po potrebi. Ovo je posebno zgodno kada trebate dodati otpornike u FeatherWing, što je sljedeći korak. Spojite otpornike od 100K ohma sa svakog pina 0 i 2, spojenih na 3V.
Postavite svoj Feather Huzzah hardver
Postavite svoj hardver za Feather Wing
Korak 2: Dodajte svoj kôd
Ovaj kôd je prilagodba koda Internet stvari Lekcije 5, dopušta li vrijeme, htio bih zamijeniti uslugu Preceptitaton s onom koja prati zadatke koji se dodaju putem ToDosit IFTTT apleta. Trenutno biste morali ručno unijeti skup zadataka i koristiti gumb A za njihovo kretanje. Osim toga, želio bih kodirati mjerač vremena za brojanje u minutama i zaustaviti se pri prelasku na sljedeći zadatak. Veliko hvala Becky Stern za stvaranje osnovnog koda za mjerač vremena i kretanje kroz zadatke. Ako ste zainteresirani za povezivanje projekta na internet, toplo preporučujem da prođete kroz ovaj skup klasa.
// Uzorci koda klase Interneta instrukcija koje se mogu uputiti // Krug prikazuje internetske podatke // Podaci o vremenu prikupljaju se u feedu // Više neo -piksela vizualizira vremenske uvjete // // izmijenilo Becky Stern 2017 // na temelju primjera pretplate na Adafruit IO
// Adafruit ulaže vrijeme i resurse pružajući ovaj otvoreni kod.
// Molimo vas da podržite Adafruit i hardver otvorenog koda kupnjom // proizvoda od Adafruit! // // Napisao Todd Treece za Adafruit Industries // Autorska prava (c) 2016 Adafruit Industries // Licencirano pod licencom MIT -a. // // Sav gornji tekst mora biti uključen u bilo kakvu preraspodjelu.
/************************ Adafruit IO konfiguracija ********************** *********
/ posjetite io.adafruit.com ako trebate stvoriti račun, // ili ako vam je potreban vaš Adafruit IO ključ. #define IO_USERNAME "YourUsernameHere" #define IO_KEY "YourIOKeyHere"
/******************************* WIFI konfiguracija **************** **********************/
#define WIFI_SSID "WifiName"
#define WIFI_PASS "WifiPassword"
#include "AdafruitIO_WiFi.h"
AdafruitIO_WiFi io (IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
/************************ Glavni program počinje ovdje ********************* **********/
#include #include #include #include
#uključi
#include #include #include
#define OLED_RESET 3
Zaslon Adafruit_SSD1306 (128, 32 i žica, OLED_RESET);
// ova konstanta se neće promijeniti:
const int buttonPinA = 0; // pinovi koje su tipke spojene na const int buttonPinB = 16; // ovaj već ima pullup otpornik, druga dva trebaju jedan const int buttonPinC = 2;
// Promjenjive će se promijeniti:
int buttonAPushCounter = 0; // brojač broja pritisaka tipki int buttonAState = 0; // trenutno stanje gumba int lastButtonAState = 0; // prethodno stanje gumba
// Promjenjive će se promijeniti:
int buttonBPushCounter = 0; // brojač broja pritisaka tipki int buttonBState = 0; // trenutno stanje gumba int lastButtonBState = 0; // prethodno stanje gumba
// Promjenjive će se promijeniti:
int buttonCPushCounter = 0; // brojač broja pritisaka gumba int buttonCState = 0; // trenutno stanje gumba int lastButtonCState = 0; // prethodno stanje gumba
String displayForecast = "nepoznato";
int timerVal = 0;
unsigned long lastStartTime = 0; bool timerEnabled = 0;
AdafruitIO_Feed *oborine = io.feed ("oborine"); // postavljanje feeda 'oborina'
// AdafruitIO_Feed *taskmanager = io.feed ("taskmanager"); // postavljanje feeda 'taskmanager'
void setup () {
pinMode (buttonPinA, INPUT); pinMode (buttonPinB, INPUT_PULLUP); pinMode (buttonPinC, INPUT);
// SSD1306_SWITCHCAPVCC = interno generirati napon prikaza od 3,3 V
display.begin (SSD1306_SWITCHCAPVCC, 0x3C); // Adresa 0x3C za 128x32
// Prikaz početnog sadržaja međuspremnika za prikaz na ekranu -
// knjižnica ovo inicijalizira Adapruit prskanjem. display.display (); odgoda (2000); // Pauza 2 sekunde
// Brisanje međuspremnika.
display.clearDisplay ();
// pokretanje serijske veze
Serial.begin (115200);
// povežite se na io.adafruit.com
Serial.print ("Spajanje na Adafruit IO"); io.connect (); // postavljanje rukovatelja porukama za feed 'oborina'. // funkcija handleMessage (definirana u nastavku) // bit će pozvana kad god se poruka // primi od adafruit io. oborine-> onMessage (handleMessage);
// čekati vezu
while (io.status () <AIO_CONNECTED) {Serial.print ("."); kašnjenje (500); }
// povezani smo
Serial.println (); Serial.println (io.statusText ());
}
void loop () {{100} {101}
// io.run (); je potrebno za sve skice.
// uvijek bi trebao biti na vrhu vaše petlje // funkcije. održava klijenta spojenim na // io.adafruit.com i obrađuje sve dolazne podatke. io.run ();
// pročitajte ulazni pin tipke:
buttonAState = digitalRead (buttonPinA); buttonBState = digitalRead (buttonPinB); buttonCState = digitalRead (buttonPinC);
// usporedimo buttonState s prijašnjim stanjem
if (buttonAState! = lastButtonAState || buttonBState! = lastButtonBState || buttonCState! = lastButtonCState) {// ako se stanje promijenilo, povećajte brojač if (buttonAState == LOW) {// ako je trenutno stanje LOW tada gumb pritisnuta je tipka APushCounter ++; Serial.print ("broj tipki A pritisnut:"); Serial.println (buttonAPushCounter); } if (buttonBState == LOW) {// ako je trenutno stanje LOW tada je pritisnuta tipka buttonBPushCounter ++; Serial.print ("broj pritiska tipke B:"); Serial.println (buttonBPushCounter); Serial.println ("Tajmer za pokretanje"); timerEnabled = 1; lastStartTime = millis (); } if (buttonCState == LOW) {// ako je trenutno stanje LOW tada je pritisnuta tipka buttonCPushCounter ++; Serial.print ("broj pritisnutih tipki C:"); Serial.println (buttonCPushCounter); Serial.println ("Mjerač zaustavljanja"); timerEnabled = 0; }} if (timerEnabled == 1) {// povećajte mjerač vremena samo kad je pokrenut timerVal = (millis () - lastStartTime)/1000; }
// prikaz pozicije 1 - prognoza
// if (buttonAPushCounter % 3 == 0) {// display.clearDisplay (); // display.setTextSize (1); // display.setTextColor (BIJELO); // display.setCursor (0, 0); // display.print ("Predviđanje:"); // display.println (displayForecast); // display.setCursor (0, 16); // display.println ("drugi redak"); // display.println ("primjer sadržaja"); // display.display (); // // kašnjenje (2000); //}
// prikaz položaja 1 - Zadatak 1
if (buttonAPushCounter % 3 == 0) {display.setTextSize (1); display.setTextColor (BIJELO); display.clearDisplay (); display.setCursor (0, 0); display.println ("Istraživanje - intervjui"); display.println (); display.print ("Tajmer:"); display.println (timerVal); display.display (); }
// prikaz položaja 2 - 2. zadatak
if (buttonAPushCounter % 3 == 1) {display.clearDisplay (); display.setCursor (0, 0); display.println ("Izrada studija - kôd"); display.println (); display.print ("Tajmer:"); display.println (timerVal); display.display (); }
// prikaz položaja 3 - Zadatak 3
if (buttonAPushCounter % 3 == 2) {display.clearDisplay (); display.setCursor (0, 0); display.println ("DSV - Skiciranje"); display.println (); display.print ("Tajmer:"); display.println (timerVal); display.display (); }
// spremanje trenutnog stanja kao posljednjeg stanja, // sljedeći put kroz petlju lastButtonAState = buttonAState; lastButtonBState = buttonBState; lastButtonCState = buttonCState;
}
// ova se funkcija poziva kad god se pojavi poruka
// prima se od Adafruit IO. bio je priključen na // feed u gornjoj funkciji setup (). void handleMessage (podaci AdafruitIO_Data *) {
Predviđanje niza = podaci-> toString (); // sprema podatke o dolaznom vremenu u niz
Serial.print ("primljeno <-"); Serial.println (prognoza); displayForecast = prognoza; // sljedeći nizovi spremaju različite riječi o izvješću o vremenskim izvještajima IFTTT koje sam dosad otkrio String task1 = String ("Task 1"); String rain = String ("Kiša"); String lightrain = String ("Svjetlosna kiša"); String rainshower = String ("Rain Shower"); Niz AMshowers = String ("AM tuševi"); String rainandsnow = String ("Kiša i snijeg"); String snow = String ("Snijeg"); String snowshower = String ("Snježni pljusak"); String cloudy = String ("Cloudy"); Niz uglavnom oblačno = String ("Pretežno oblačno"); Niz djelomično oblačno = String ("Djelomično oblačno"); String clearsky = String ("Clear"); String fair = String ("Fair"); String sunny = String ("Sunčano");
// Ove if naredbe uspoređuju dolaznu vremensku varijablu sa pohranjenim uvjetima i u skladu s tim kontroliraju NeoPixele.
// ako je u prognozi kiše if (prognoza.equalsIgnoreCase (kiša) || prognoza.equalsIgnoreCase (lightrain) || prognoza.equalsIgnoreCase (kišni pljusak) || prognoza.equalsIgnoreCase (AMshowers)) {Serial.println ("oborine u prognoza za danas ");
}
// ako ima snijega u prognozi if (prognoza.equalsIgnoreCase (snijeg) || prognoza.equalsIgnoreCase (rainandsnow) || prognoza.equalsIgnoreCase (snježni pljusak)) {Serial.println ("oborine u prognozi za danas");
}
// ako ima sunca u prognozi if (prognoza.equalsIgnoreCase (jasan)) || prognoza.equalsIgnoreCase (poštena) || prognoza.equalsIgnoreCase (sunčano)) {Serial.println ("neka vrsta sunca u prognozi za danas");
}
// ako ima oblaka u prognozi if (prognoza.equalsIgnoreCase (oblačno) || prognoza.equalsIgnoreCase (pretežno oblačno) || prognoza.equalsIgnoreCase (djelomično oblačno)) {Serial.println ("oblačno nebo u prognozi za danas");
}
}
Korak 3: Izradite spremnik / ljusku
Što se ljuske tiče, počnite tako što ćete odrediti veličinu vašeg okvira ili biste mogli preuzeti moju datoteku. Nakon što odredite veličinu, možete upotrijebiti MakerCase za izradu izgleda vektorske datoteke.
Pokrenite datoteku kroz laserski rezač - to bi trebalo potrajati oko 5 minuta. Nakon toga spojite ljusku.
Nisam uzeo u obzir širinu materijala zbog čega su mi gumbi teško dostupni. Još moram pronaći način da ih pričvrstim. Također su vrlo male što otežava rad s njima.
Preporučeni:
Desktop COVID19 Tracker sa satom! Raspberry Pi Powered Tracker: 6 koraka
Desktop COVID19 Tracker sa satom! Raspberry Pi Powered Tracker: Znamo da možemo umrijeti bilo kada, čak i ja mogu umrijeti dok pišem ovaj post, na kraju krajeva, ja, ja, svi smo smrtnici. Cijeli svijet se potresao zbog pandemije COVID19. Znamo kako to spriječiti, ali hej! znamo kako se moliti i zašto moliti, radimo li to
Arduino multi-track MIDI Loop Station: 6 koraka
Arduino multi-track MIDI Loop Station: Stanica s petljom ili petlja u osnovi je alat za reprodukciju vaših instrumentalnih rifova (petlji) u stvarnom vremenu. Nije zamišljen kao medij za snimanje, već instrument za oblikovanje inspiracije bez ometanja (i na kraju nastup uživo …)
Pumpkin Pi Tracker-or-Treat Tracker: 5 koraka
Pumpkin Pi Tracker-or-Treat Tracker: Tražite brzi projekt za Noć vještica koji je koristan na više načina? Želite li dobro iskoristiti taj Pi Zero WH? Želite li pomoću podataka odrediti koliko će vam bombona trebati za sljedeću godinu? Pripremite se za izradu Tramp-a-Track-a za praćenje bundeve
WalabotEye - Tracker Object Tracker sa haptičkom povratnom spregom: 11 koraka
WalabotEye - Tracker Object Tracker sa haptičkom povratnom spregom: Za osobe s slabim vidom, koristite ovo za bolje razumijevanje svijeta oko sebe
AstroTracker - Star Tracker Star Tracker: 10 koraka (sa slikama)
AstroTracker - Tracker Star Barry Door Starcker: Svatko može raditi astrofotografiju sve dok imate fotoaparat. Samo ga stavite na stativ, neka objektiv ostane otvoren što je dulje moguće i BAM! Prekrasne zvijezde, jata i magline. Ali što je to? Postoje li pruge na filmu umjesto točnih