Sisällysluettelo:

TOYL Task Tracker: 3 vaihetta (kuvilla)
TOYL Task Tracker: 3 vaihetta (kuvilla)

Video: TOYL Task Tracker: 3 vaihetta (kuvilla)

Video: TOYL Task Tracker: 3 vaihetta (kuvilla)
Video: Работа с крупноформатной плиткой. Оборудование. Бесшовная укладка. Клей. 2024, Marraskuu
Anonim
Image
Image
TOYL -tehtävien seuranta
TOYL -tehtävien seuranta
TOYL -tehtävien seuranta
TOYL -tehtävien seuranta

Ä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

Juotospiiri
Juotospiiri
Juotospiiri
Juotospiiri
Juotospiiri
Juotospiiri

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

Lisää koodi
Lisää koodi
Lisää koodi
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

Luo säiliö / kuori
Luo säiliö / kuori
Luo säiliö / kuori
Luo säiliö / kuori
Luo säiliö / kuori
Luo säiliö / kuori
Luo säiliö / kuori
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: