Sisukord:
Video: TOYL Task Tracker: 3 sammu (piltidega)
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:47
Kas te lihtsalt ei vihka seda, kui kavatsete töötada või mis veelgi hullem, olete keset töösessiooni ja teie telefonile tuleb märguanne-„kiire kontroll” muutub tundide pärast. Kas teate ka seda, kui palju aega teete teatud ülesannete täitmiseks, võrreldes ajaga, mille olete nädalas tööks eraldanud?
Sisestage TOYL Task Tracker. See võimaldab teil telefoni välja lülitada ja tööle keskenduda, võimaldades samal ajal seadistada nädalas töötamise aja (nt 60 tundi) ja ülesanded, mida soovite teha. Seansile istudes saate aimu, kui palju aega on teie üldiseks tööks jäänud. Jälgijal on kaks režiimi: taimer, kus olete eelnevalt määranud, kui palju aega soovite ühe ülesande jaoks nädalas kulutada, ja stopper, kus saate pärast ülesande valimist taimerit lihtsalt käivitada-peatada.
Tarvikud
Vooluring
- Adafruit Feather Huzzah
- Adafruit FeatherWing
- Isase päise tihvtid
- Naissoost päisepoldid
- 500mAh aku
- 100K oomi takistid x2
- Isolatsioonilint
- Keermestatud traat
- Traadi eemaldajad
- Jootmisventilaator
Korpus
- Läbipaistmatu akrüülleht 24 x 18 tolli
- Kahepoolne teip
- Juurdepääs laserlõikurile
- Vektoritarkvara
Samm: jootke oma vooluring
Jootke emase päise tihvtid sulgede Huzzah külge. See õpetus on kasulik Feather Huzzah riistvara häälestamiseks. Seejärel jootke isase päise tihvtid FeatherWingi külge. Sel viisil jootmine võimaldab teil vajaduse korral sulgede tiiva sulgede tiigist sulgeda ja eraldada. See on eriti mugav, kui peate FeatherWingile takistid lisama, mis on järgmine samm. Ühendage 100K oomi takistid igast tihvtist 0 ja 2, mis on ühendatud 3V -ga.
Seadistage oma Feather Huzzah riistvara
Seadistage oma Feather Wingi riistvara
Samm: lisage oma kood
See kood on 5. õppetunni asjade Interneti koodi kohandus. Kui aega lubab, oleksin soovinud asendada teenuse Preceptitaton teenusega, mis jälgib ToDosit IFTTT apleti kaudu lisatavaid ülesandeid. Praegu peate käsitsi sisestama teatud ülesannete komplekti ja kasutama nende vahel liikumiseks nuppu A. Lisaks oleksin tahtnud kodeerida taimerit, et see loeks minutites ja peatuks järgmisele ülesandele üleminekul. Suur aitäh Becky Sternile taimeri baaskoodi loomise ja ülesannete läbimise eest. Kui olete huvitatud projekti ühendamisest Internetiga, soovitan tungivalt seda klassikomplekti läbida.
// Instructables Asjade Interneti klassi näidiskood // Circuit Displays Internet Data // Ilmaandmed kogutakse voogu // Mitmed NeoPikslid visualiseerivad ilmastikutingimusi // // Muudetud Becky Stern 2017 // Adafruit IO tellimuse näite põhjal
// Adafruit investeerib selle avatud lähtekoodi pakkumiseks aega ja ressursse.
// Palun toetage Adafruit'i ja avatud lähtekoodiga riistvara, ostes // tooteid Adafruitilt! // // Kirjutas Todd Treece Adafruit Industriesile // Autoriõigus (c) 2016 Adafruit Industries // Litsentsitud MIT litsentsi alusel. // // Kõik ülaltoodud tekstid peavad sisalduma mis tahes ümberjaotamises.
/************************ Adafruit IO konfiguratsioon ********************** *********
/ kui soovite konto luua, külastage veebisaiti io.adafruit.com, // või kui vajate oma Adafruit IO võtit. #define IO_USERNAME "YourUsernameHere" #define IO_KEY "YourIOKeyHere"
/******************************* WIFI konfiguratsioon **************** **********************/
#define WIFI_SSID "WifiName"
#define WIFI_PASS "WifiPassword"
#include "AdafruitIO_WiFi.h"
AdafruitIO_WiFi io (IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
/************************ Põhiprogramm algab siit ********************* **********/
#kaasamine #kaasamine #kaasamine #kaasamine
#kaasake
#kaasama #kaasama #kaasama
#define OLED_RESET 3
Adafruit_SSD1306 ekraan (128, 32, & Wire, OLED_RESET);
// see konstant ei muutu:
const int nuppPinA = 0; // nööpnõelad, mille nupud on kinnitatud const int nupulePinB = 16; // sellel on juba tõmbetakistus, ülejäänud kaks vajavad ühte const int nuppuPinC = 2;
// Muutujad muutuvad:
int nuppPushCounter = 0; // nupuvajutuste arvu loendur int buttonAState = 0; // nupu hetkeolek int lastButtonAState = 0; // nupu eelmine olek
// Muutujad muutuvad:
int nuppBPushCounter = 0; // nupuvajutuste arvu loendur int buttonBState = 0; // nupu hetkeolek int lastButtonBState = 0; // nupu eelmine olek
// Muutujad muutuvad:
int nuppCPushCounter = 0; // nupuvajutuste arvu loendur int buttonCState = 0; // nupu hetkeolek int lastButtonCState = 0; // nupu eelmine olek
String displayForecast = "teadmata";
int timerVal = 0;
allkirjastamata pikk lastStartTime = 0; bool timerEnabled = 0;
AdafruitIO_Feed *sademed = io.feed ("sademed"); // seadistage "sademete" voog
// AdafruitIO_Feed *tegumihaldur = io.feed ("taskmanager"); // ülesande 'tegumihaldur' seadistamine
tühine seadistus () {
pinMode (buttonPinA, INPUT); pinMode (buttonPinB, INPUT_PULLUP); pinMode (buttonPinC, INPUT);
// SSD1306_SWITCHCAPVCC = tekitab ekraanipinget 3.3V sisemiselt
display.begin (SSD1306_SWITCHCAPVCC, 0x3C); // Aadress 0x3C 128x32 jaoks
// Kuva ekraanil esialgne puhvri sisu -
// raamatukogu lähtestab selle Adafruiti pritsimisekraaniga. display.display (); viivitus (2000); // Paus 2 sekundiks
// Puhvri kustutamine.
display.clearDisplay ();
// jadaühenduse käivitamine
Seriaalne algus (115200);
// ühenduse loomine saidiga io.adafruit.com
Serial.print ("Ühendamine Adafruit IO -ga"); io.connect (); // seadistage "sademete" voo jaoks sõnumikäitleja. // funktsiooni handleMessage (määratletud allpool) // helistatakse iga kord, kui adafruit io -lt // võetakse vastu teade. sademed-> onMessage (handleMessage);
// oodake ühendust
while (io.status () <AIO_CONNECTED) {Serial.print ("."); viivitus (500); }
// oleme ühendatud
Serial.println (); Serial.println (io.statusText ());
}
void loop () {
// io.run (); on vajalik kõikide visandite jaoks.
// see peaks alati olema silmus // funktsiooni ülaosas. see hoiab kliendi ühenduses saidiga // io.adafruit.com ja töötleb sissetulevaid andmeid. io.run ();
// lugege nupu sisendnõela:
buttonAState = digitalRead (buttonPinA); buttonBState = digitalRead (buttonPinB); buttonCState = digitalRead (buttonPinC);
// võrrelda buttonState'i oma eelmise olekuga
if (buttonAState! = lastButtonAState || buttonBState! = lastButtonBState || buttonCState! = lastButtonCState) {// kui olek on muutunud, suurendage loendurit, kui (buttonAState == LOW) {// kui praegune olek on LOW, siis nupp vajutati nuppuAPushCounter ++; Serial.print ("nupu A vajutuste arv:"); Serial.println (buttonAPushCounter); } if (buttonBState == LOW) {// kui praegune olek on LOW, siis vajutati nuppu buttonBPushCounter ++; Serial.print ("nupu B vajutuste arv:"); Serial.println (buttonBPushCounter); Serial.println ("Taimeri käivitamine"); taimerLubatud = 1; lastStartTime = millis (); } if (buttonCState == LOW) {// kui praegune olek on LOW, siis vajutati nuppu buttonCPushCounter ++; Serial.print ("nupu C vajutuste arv:"); Serial.println (buttonCPushCounter); Serial.println ("Seiskamise taimer"); timerEnabled = 0; }} if (timerEnabled == 1) {// suurendage taimerit ainult selle käivitamisel timerVal = (millis () - lastStartTime)/1000; }
// kuva asukoht 1 - prognoos
// if (buttonAPushCounter % 3 == 0) {// display.clearDisplay (); // display.setTextSize (1); // display.setTextColor (VALGE); // display.setCursor (0, 0); // display.print ("Prognoos:"); // display.println (displayForecast); // display.setCursor (0, 16); // display.println ("teine rida"); // display.println ("näitesisu"); // display.display (); // // delay (2000); //}
// kuva asukoht 1 - 1. ülesanne
if (buttonAPushCounter % 3 == 0) {display.setTextSize (1); display.setTextColor (VALGE); display.clearDisplay (); display.setCursor (0, 0); display.println ("Uuringud - intervjuud"); display.println (); display.print ("Taimer:"); display.println (timerVal); display.display (); }
// kuva asukoht 2 - ülesanne 2
if (buttonAPushCounter % 3 == 1) {display.clearDisplay (); display.setCursor (0, 0); display.println ("Stuudio tegemine - kood"); display.println (); display.print ("Taimer:"); display.println (timerVal); display.display (); }
// kuva asukoht 3 - ülesanne 3
if (buttonAPushCounter % 3 == 2) {display.clearDisplay (); display.setCursor (0, 0); display.println ("DSV - visandamine"); display.println (); display.print ("Taimer:"); display.println (timerVal); display.display (); }
// salvesta praegune olek viimaseks olekuks, // järgmine kord silmuse kaudu lastButtonAState = buttonAState; lastButtonBState = buttonBState; lastButtonCState = buttonCState;
}
// seda funktsiooni kutsutakse alati sõnumi korral
// saadakse Adafruit IO -lt. see lisati // voole ülaltoodud setup () funktsioonis. void handleMessage (AdafruitIO_Data *andmed) {
Stringiprognoos = andmed-> toString (); // salvesta saabuva ilma andmed stringina
Serial.print ("sai <-"); Serial.println (prognoos); displayForecast = prognoos; // järgmised stringid talletavad erinevaid IFTTT ilmateate sõnu, mida olen seni avastanud String task1 = String ("Ülesanne 1"); String rain = String ("Vihm"); String lightrain = String ("Kerge vihm"); String vihmasuhk = String ("Vihmasahk"); String AMshowers = String ("AM dušid"); String rainandsnow = String ("Vihm ja lumi"); String lumi = String ("Lumi"); Stringi lumesahk = String ("Lumesadu"); String cloudy = String ("Pilvine"); String Mostcloudy = String ("Enamasti pilves"); String osaliselt pilves = String ("Osaliselt pilves"); String clearsky = String ("Selge"); String fair = String ("Õiglane"); String sunny = String ("Sunny");
// Need, kui avaldused võrdlevad sissetuleva ilma muutujat salvestatud tingimustega ja juhivad vastavalt NeoPiksleid.
// kui prognoosis sajab vihma prognoos täna );
}
// kui prognoosis on lund if (prognoz.equalsIgnoreCase (lumi) || prognoz.equalsIgnoreCase (vihmasadu) || prognoz.equalsIgnoreCase (lumesadu)) {Serial.println ("sademed prognoosis täna");
}
// kui prognoosis on päike if (prognoz.equalsIgnoreCase (selge)) || prognoz.equalsIgnoreCase (õiglane) || prognoz.equalsIgnoreCase (päikesepaisteline)) {Serial.println ("mingi päike täna prognoosis");
}
// kui prognoosis on pilvi if (prognoz.equalsIgnoreCase (pilvine) || prognoz.equalsIgnoreCase (enamasti pilves) || prognoz.equalsIgnoreCase (osaliselt pilvine)) {Serial.println ("pilves taevas prognoosis täna");
}
}
Samm: looge konteiner / kest
Kesta jaoks alustage sellest, et määrata, millise suurusega raami soovite, muidu saate minu faili alla laadida. Kui olete määranud suuruse, saate MakerCase'i abil luua vektorfaili paigutuse.
Viige fail läbi laserlõikuri - see peaks võtma umbes 5 minutit. Seejärel pange kest kokku.
Ma ei võtnud arvesse materjali laiust, mis muudab mu nuppude kättesaamise keeruliseks. Pean veel leidma viisi nende kinnitamiseks. Need on ka väga väikesed, mistõttu on nendega raske töötada.
Soovitan:
DIY Solar Tracker: 27 sammu (piltidega)
DIY Solar Tracker: Sissejuhatus Meie eesmärk on tutvustada noortele õpilastele inseneriteadust ja õpetada neile päikeseenergiat; lastes neil oma õppekava osana Heliose ehitada. Inseneritegevuses on püütud energia tootmine fossiilkütuste kasutamisest eemale tõrjuda
DIY Miniature Solar Tracker: 5 sammu (piltidega)
DIY Miniature Solar Tracker: Selles projektis näitan teile, kuidas luua päikesejälgija, mis nagu nimigi ütleb, võib jälgida päikese liikumist kogu päeva jooksul. Ja lõpuks näitan teile päikesepaneelile paigaldatud päikesepaneeli vahelist energiasaagi erinevust
Filmi jälgija - Raspberry Pi Powered Theatrical Release Tracker: 15 sammu (koos piltidega)
Movie Tracker - Raspberry Pi Powered Theatrical Release Tracker: Movie Tracker on klahvikujuline Raspberry Pi -toega väljalaskejälgija. See kasutab TMDb API -d, et printida plakat, pealkiri, väljalaskekuupäev ja ülevaade teie regiooni eelseisvatest filmidest kindla ajavahemiku jooksul (nt sel nädalal ilmuvad filmid)
Aeroobne Arduino - 15 -dollarine Fitness Tracker Power Arduino poolt: 9 sammu (piltidega)
Aeroobne Arduino - Arduino 15 dollari suurune Fitness Tracker Power: palun hääletage selle eest Fitbit või nutikella asemel fitnessi väljakutses, saate ehitada Arduino jõul töötava treeningseadme vaid 15 dollari eest! See jälgib teie käte pumpavat liikumist jooksmise ajal ja kasutab selle tuvastamiseks kiirendusmõõturit. See on
IOT123 - SOLAR TRACKER DOME: 7 sammu (piltidega)
IOT123 - SOLAR TRACKER DOME: Päikesejälgija laadijate jaoks on palju DIY disainilahendusi, kuid enamik neist pole ilmastikukindlad. See on suur probleem, sest enamasti tähendab päikese käes viibimine ilmastikutingimusi. See juhendab teid ehitusprotsessis