Sisukord:

TOYL Task Tracker: 3 sammu (piltidega)
TOYL Task Tracker: 3 sammu (piltidega)

Video: TOYL Task Tracker: 3 sammu (piltidega)

Video: TOYL Task Tracker: 3 sammu (piltidega)
Video: Смирняга – как пересобрать карьеру в юморе (Eng subs) 2024, November
Anonim
Image
Image
TOYL Task Tracker
TOYL Task Tracker
TOYL Task Tracker
TOYL Task Tracker

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 oma vooluahel
Jootke oma vooluahel
Jootke oma vooluring
Jootke oma vooluring
Jootke oma vooluring
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

Lisage oma kood
Lisage oma kood
Lisage oma kood
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

Looge konteiner / kest
Looge konteiner / kest
Looge konteiner / kest
Looge konteiner / kest
Looge konteiner / kest
Looge konteiner / kest
Looge konteiner / kest
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: