Talaan ng mga Nilalaman:
- Mga gamit
- Hakbang 1: Paghinang ng Iyong Circuit
- Hakbang 2: Idagdag ang Iyong Code
- Hakbang 3: Lumikha ng Container / Shell
Video: TOYL Task Tracker: 3 Mga Hakbang (na may Mga Larawan)
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:12
Hindi mo ba kinamumuhian ito kapag nagpaplano kang magtrabaho o mas masahol pa, nasa kalagitnaan ng isang sesyon sa trabaho at isang notification ang dumating sa iyong telepono-ang isang "mabilis na pagsusuri" ay nagiging oras mamaya. Gayundin, alam mo ba kung gaano karaming oras ang iyong pagtatrabaho sa ilang mga gawain na nauugnay sa oras na iyong inilalaan para sa trabaho bawat linggo?
Ipasok ang TOYL Task Tracker. Nagbibigay-daan ito sa iyo upang patayin ang iyong telepono at mag-focus sa trabaho, habang sabay na nagbibigay-daan sa iyo upang i-set up ang dami ng oras na nais mong gumana bawat linggo-sabihin 60 oras-at ang mga gawain na nais mong matapos. Kapag umupo ka para sa isang sesyon, nakakakuha ka ng ideya kung gaano karaming oras ang natitira para sa iyong pangkalahatang trabaho. Ang Tracker ay may dalawang mga mode: timer, kung saan mo naitakda ang kung gaano karaming oras ang nais mong gugulin bawat gawain bawat linggo, at Stopwatch, kung saan maaari mo lamang simulang ihinto ang timer pagkatapos pumili ng isang gawain.
Mga gamit
Circuit
- Adafruit Feather Huzzah
- Adafruit FeatherWing
- Mga male header pin
- Mga pin ng header ng babae
- 500mAh na baterya
- 100K ohm resistors x2
- Insulation tape
- Maiiwan tayo na kawad
- Mga striper ng wire
- Fan na Fan
Casing
- Opaque acrylic sheet 24 "x18"
- Double sided tape
- Pag-access sa isang pamutol ng laser
- Vector software
Hakbang 1: Paghinang ng Iyong Circuit
Paghinang ang mga babaeng pin ng header sa Feather Huzzah. Ang tutorial na ito ay kapaki-pakinabang para sa pag-setup ng hardware ng Feather Huzzah. Pagkatapos, paghihinang ang mga lalaking pin ng header sa FeatherWing. Ang paghihinang sa kanila sa ganitong pamamaraan ay nagbibigay-daan sa iyo upang sumali at paghiwalayin ang Feather Wing mula sa Feather Huzzah kung kinakailangan. Lalo na madaling gamiting ito kapag kailangan mong magdagdag ng mga resistors sa iyong FeatherWing, na kung saan ay ang susunod na hakbang. Ikonekta ang 100K ohm resistors mula sa bawat pin 0 at 2, na konektado sa 3V.
I-setup ang iyong hardware ng Feather Huzzah
I-setup ang iyong hardware ng Feather Wing
Hakbang 2: Idagdag ang Iyong Code
Ang code na ito ay isang pagbagay ng Aralin 5 Internet ng Mga bagay na code, Pinapayagan ang Oras, nais kong palitan ang serbisyo ng Preceptitaton ng isa na sumusubaybay sa mga gawain na idinagdag sa pamamagitan ng ToDosit IFTTT applet. Sa sandaling ito ay kailangan mong manu-manong mag-input ng isang hanay ng mga gawain at gamitin ang Button A upang paikutin ang mga ito. Bilang karagdagan, nais kong ma-code ang timer upang mabilang sa ilang minuto at huminto kapag lumilipat sa susunod na gawain. Isang malaking salamat sa Becky Stern para sa paglikha ng base code para sa timer at pagbibisikleta sa mga gawain. Kung interesado ka sa pagkonekta sa proyekto sa internet, lubos kong inirerekumenda ang pagdaan sa hanay ng mga klase na ito.
// Instructables Internet of Things Class sample code // Circuit Ipinapakita ang Data ng Internet // Ang data ng panahon ay nakolekta sa isang feed // Maramihang NeoPixels na nakikita ang kalagayan ng panahon // // Binago ni Becky Stern 2017 // batay sa Halimbawa ng Subscription ng Adafruit IO
// Namumuhunan ang Adafruit ng oras at mga mapagkukunan na nagbibigay ng bukas na source code na ito.
// Mangyaring suportahan ang Adafruit at buksan ang mapagkukunan ng hardware sa pamamagitan ng pagbili ng // mga produkto mula sa Adafruit! // // Sinulat ni Todd Treece para sa Adafruit Industries // Copyright (c) 2016 Adafruit Industries // Lisensyado sa ilalim ng lisensya ng MIT. // // Lahat ng teksto sa itaas ay dapat na isama sa anumang muling pamamahagi.
/ ***** *********
/ bisitahin ang io.adafruit.com kung kailangan mong lumikha ng isang account, // o kung kailangan mo ng iyong Adafruit IO key. #define IO_USERNAME "YourUsernameHere" #define IO_KEY "YourIOKeyHere"
/ ***** *****
# tukuyin ang WIFI_SSID "WifiName"
# tukuyin ang WIFI_PASS "WifiPassword"
# isama ang "AdafruitIO_WiFi.h"
AdafruitIO_WiFi io (IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
/ ***** ********* /
# isama # isama # isama # isama
# isama
# isama ang # isama ang # isama
# tukuyin ang OLED_RESET 3
Display ng Adafruit_SSD1306 (128, 32, & Wire, OLED_RESET);
// ang pare-pareho na ito ay hindi magbabago:
Const int buttonPinA = 0; // ang mga pin na ang mga pushbutton ay nakakabit sa const int buttonPinB = 16; // ang isang ito ay mayroon nang isang pullup risistor, ang iba pang dalawa ay nangangailangan ng isang const int buttonPinC = 2;
// Magbabago ang mga variable:
int buttonAPushCounter = 0; // counter for the number of button presses int buttonAState = 0; // kasalukuyang estado ng button na int last ButtonAState = 0; // nakaraang estado ng pindutan
// Magbabago ang mga variable:
int buttonBPushCounter = 0; // counter for the number of button presses int buttonBState = 0; // kasalukuyang estado ng pindutan int last ButtonBState = 0; // nakaraang estado ng pindutan
// Magbabago ang mga variable:
int buttonCPushCounter = 0; // counter for the number of button presses int buttonCState = 0; // kasalukuyang estado ng pindutan int last ButtonCState = 0; // nakaraang estado ng pindutan
String displayForecast = "hindi kilalang";
int timerVal = 0;
unsigned matagal lastStartTime = 0; bool timerEnified = 0;
AdafruitIO_Feed * ulan = io.feed ("pag-ulan"); // i-set up ang 'ulan' feed
// AdafruitIO_Feed * taskmanager = io.feed ("taskmanager"); // i-set up ang feed na 'taskmanager'
walang bisa ang pag-setup () {
pinMode (buttonPinA, INPUT); pinMode (buttonPinB, INPUT_PULLUP); pinMode (buttonPinC, INPUT);
// SSD1306_SWITCHCAPVCC = makabuo ng boltahe ng display mula sa 3.3V sa loob
display.begin (SSD1306_SWITCHCAPVCC, 0x3C); // Address 0x3C para sa 128x32
// Ipakita ang mga unang nilalaman ng buffer ng display sa screen -
// pinasimulan ito ng library gamit ang isang splash screen ng Adafruit. display.display (); pagkaantala (2000); // I-pause ng 2 segundo
// I-clear ang buffer.
display.clearDisplay ();
// simulan ang serial connection
Serial.begin (115200);
// kumonekta sa io.adafruit.com
Serial.print ("Pagkonekta sa Adafruit IO"); io.connect (); // mag-set up ng isang handler ng mensahe para sa feed na 'pag-ulan'. // ang function ng handleMessage (tinukoy sa ibaba) // ay tatawagan tuwing ang isang mensahe ay // natanggap mula sa adafruit io. pag-ulan-> onMessage (hawakanMessage);
// maghintay para sa isang koneksyon
habang (io.status () <AIO_CONNected) {Serial.print ("."); pagkaantala (500); }
// tayo ay konektado
Serial.println (); Serial.println (io.statusText ());
}
void loop () {
// io.run (); ay kinakailangan para sa lahat ng mga sketch.
// dapat itong palaging naroroon sa tuktok ng iyong loop // function. pinapanatili nitong nakakonekta ang kliyente sa // io.adafruit.com, at pinoproseso ang anumang papasok na data. io.run ();
// basahin ang pushbutton input pin:
buttonAState = digitalRead (buttonPinA); buttonBState = digitalRead (buttonPinB); buttonCState = digitalRead (buttonPinC);
// ihambing ang buttonState sa dating estado nito
kung (buttonAState! = last ButtonAState || buttonBState! = last ButtonBState || buttonCState! = last ButtonCState) {// kung ang estado ay nagbago, dagdagan ang counter kung (buttonAState == LOW) {// kung ang kasalukuyang estado ay LOW pagkatapos ng pindutan ay pinindot ang buttonAPushCounter ++; Serial.print ("bilang ng isang pindutan na itinutulak:"); Serial.println (buttonAPushCounter); } kung (buttonBState == LOW) {// kung ang kasalukuyang estado ay LOW pagkatapos ang pindutan ay pinindot ang buttonBPushCounter ++; Serial.print ("bilang ng mga pindutan ng B na itulak:"); Serial.println (buttonBPushCounter); Serial.println ("Panimulang timer"); timerEnified = 1; lastStartTime = millis (); } kung (buttonCState == LOW) {// kung ang kasalukuyang estado ay LOW pagkatapos ang pindutan ay pinindot buttonCPushCounter ++; Serial.print ("bilang ng mga pindutan ng C na itulak:"); Serial.println (buttonCPushCounter); Serial.println ("Natigil ang timer"); timerEnified = 0; }} kung (timerEn pinagana == 1) {// dagdagan ang timer lamang kapag nasimulan ito timerVal = (millis () - lastStartTime) / 1000; }
// display posisyon 1 - pagtataya
// if (buttonAPushCounter% 3 == 0) {// display.clearDisplay (); // display.setTextSize (1); // display.setTextColor (WHITE); // display.setCursor (0, 0); // display.print ("Pagtataya:"); // display.println (displayForecast); // display.setCursor (0, 16); // display.println ("pangalawang linya"); // display.println ("halimbawang nilalaman"); // display.display (); // // pagkaantala (2000); //}
// display posisyon 1 - Gawain 1
kung (buttonAPushCounter% 3 == 0) {display.setTextSize (1); display.setTextColor (PUTI); display.clearDisplay (); display.setCursor (0, 0); display.println ("Pananaliksik - Mga Panayam"); display.println (); display.print ("Timer:"); display.println (timerVal); display.display (); }
// display posisyon 2 - Gawain 2
kung (buttonAPushCounter% 3 == 1) {display.clearDisplay (); display.setCursor (0, 0); display.println ("Paggawa ng Studio - Code"); display.println (); display.print ("Timer:"); display.println (timerVal); display.display (); }
// display posisyon 3 - Gawain 3
kung (buttonAPushCounter% 3 == 2) {display.clearDisplay (); display.setCursor (0, 0); display.println ("DSV - Sketching"); display.println (); display.print ("Timer:"); display.println (timerVal); display.display (); }
// save the current state as the last state, // para sa susunod na oras sa pamamagitan ng loop lastButtonAState = buttonAState; lastButtonBState = buttonBState; lastButtonCState = buttonCState;
}
// ang pagpapaandar na ito ay tinatawag tuwing isang mensahe
// ay natanggap mula sa Adafruit IO. nakalakip ito sa // ang feed sa pag-setup () na pagpapaandar sa itaas. void handleMessage (AdafruitIO_Data * data) {
String forecast = data-> toString (); // iimbak ang papasok na data ng panahon sa isang string
Serial.print ("natanggap <-"); Serial.println (forecast); displayForecast = forecast; // the following strings store the varous IFTTT ulat ng panahon mga ulat na natuklasan ko sa ngayon String task1 = String ("Gawain 1"); String rain = String ("Rain"); String lightrain = String ("Light Rain"); String rainshower = String ("Rain Shower"); String AMshowers = String ("AM Showers"); String rainandsnow = String ("Rain and Snow"); String snow = String ("Snow"); String snowshower = String ("Snow Shower"); Maulap na string = String ("Maulap"); String mostcloudy = String ("Mostly Cloudy"); String partlycloudy = String ("Bahagyang Maulap"); String clearsky = String ("Malinaw"); String fair = String ("Makatarungang"); Maaraw na maaraw = String ("Maaraw");
// Ito kung ihinahambing ng mga pahayag ang papasok na variable ng panahon sa mga nakaimbak na kundisyon, at kontrolin ang mga NeoPixels nang naaayon.
// kung may ulan sa forecast kung (forecast.equalsIgnoreCase (rain) || forecast.equalsIgnoreCase (lightrain) || forecast.equalsIgnoreCase (rainshower) || forecast.equalsIgnoreCase (AMshowers)) {Serial.println ("pag-ulan sa forecast ngayon ");
}
// kung mayroong niyebe sa forecast kung (forecast.equalsIgnoreCase (snow) || forecast.equalsIgnoreCase (rainandsnow) || forecast.equalsIgnoreCase (snowshower)) {Serial.println ("pag-ulan sa forecast ngayon");
}
// kung mayroong araw sa pagtataya kung (forecast.equalsIgnoreCase (clearsky) || forecast.equalsIgnoreCase (fair) || forecast.equalsIgnoreCase (maaraw)) {Serial.println ("ilang uri ng araw sa forecast ngayon");
}
// kung may mga ulap sa forecast kung (forecast.equalsIgnoreCase (maulap) || forecast.equalsIgnoreCase (mostcloudy) || forecast.equalsIgnoreCase (partlycloudy)) {Serial.println ("maulap na langit sa tinatayang ngayon");
}
}
Hakbang 3: Lumikha ng Container / Shell
Para sa shell, magsimula sa pamamagitan ng pagtukoy kung anong laki ang nais mong maging iyong frame, o maaari mong i-download ang aking file. Kapag natukoy mo ang laki maaari mong gamitin ang MakerCase upang likhain ang layout para sa vector file.
Patakbuhin ang file sa pamamagitan ng pamutol ng laser - dapat itong tumagal ng halos 5 minuto. Pagkatapos ay pagsamahin ang shell.
Hindi ko inilahad ang lapad ng materyal na nagpapahirap maabot ang aking mga pindutan. Kailangan ko pa ring maghanap ng paraan upang ikabit ang mga ito. Ang mga ito ay napakaliit din na nagpapahirap sa kanila na magtrabaho.
Inirerekumendang:
May-ari ng Larawan Na May Built-in Speaker: 7 Hakbang (na may Mga Larawan)
May-ari ng Larawan Sa Built-in Speaker: Narito ang isang magandang proyekto na isasagawa sa katapusan ng linggo, kung nais mong gumawa ka ng sariling tagapagsalita na maaaring magkaroon ng mga larawan / post card o kahit na listahan ng dapat mong gawin. Bilang bahagi ng pagbuo gagamitin namin ang isang Raspberry Pi Zero W bilang sentro ng proyekto, at isang
Movie Tracker - Sinusuportahan ng Raspberry Pi ang Tracker ng Paglabas ng Theatrical: 15 Hakbang (na may Mga Larawan)
Movie Tracker - Sinusuportahan ng Raspberry Pi ang Tracker ng Paglabas ng Dula: Ang Tracker ng Pelikula ay isang hugis ng clapperboard, Tagapagawasak ng Paglabas na pinalalakas ng Raspberry Pi. Gumagamit ito ng TMDb API upang mai-print ang poster, pamagat, petsa ng paglabas at pangkalahatang ideya ng mga paparating na pelikula sa iyong rehiyon, sa isang tinukoy na agwat ng oras (hal. Ang paglabas ng pelikula sa linggong ito) sa
Task Manager - isang Sistema ng Pamamahala ng Pangangalaga sa Bahay: 5 Hakbang (na may Mga Larawan)
Task Manager - isang Sistema ng Pamamahala ng Bahay na Pang-sambahayan: Nais kong subukan na tugunan ang isang tunay na problema na kinakaharap sa aming sambahayan (at, sa palagay ko, ng marami pang ibang mga mambabasa), na kung paano ilalaan, uudyok, at gantimpalaan ang aking mga anak sa pagtulong may gawaing bahay. Hanggang ngayon, napanatili namin ang isang nakalamina na sheet
Paano Mag-disassemble ng isang Computer Na May Madaling Hakbang at Mga Larawan: 13 Hakbang (na may Mga Larawan)
Paano Mag-disassemble ng isang Computer Na May Madaling Mga Hakbang at Larawan: Ito ay isang tagubilin tungkol sa kung paano i-disassemble ang isang PC. Karamihan sa mga pangunahing sangkap ay modular at madaling matanggal. Gayunpaman mahalaga na maging maayos ka tungkol dito. Makakatulong ito upang maiwasan ka sa pagkawala ng mga bahagi, at sa paggawa din ng muling pagsasama
Task Zero: 7 Hakbang (na may Mga Larawan)
Task Zero: Ang pamumuhay sa lipunan na pinahahalagahan ang mataas na kahusayan at binibigyang diin ang tagumpay, maaaring kalimutan ng isa na mayroong buhay sa tabi ng trabaho. Ang Trabaho Zero ay tungkol sa gawain bago ang una. Gawain 0: Pahalagahan ang iyong personal na buhay. Huwag tanggalin ang mga gawaing iyon na nagsasaka