Mündəricat:
- Təchizat
- Addım 1: Dövrənizi lehimləyin
- Addım 2: Kodunuzu əlavə edin
- Addım 3: Konteyner / Qabıq yaradın
Video: TOYL Task Tracker: 3 Addım (Şəkillərlə birlikdə)
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:45
İşləməyi planlaşdıranda və ya daha da pisləşdiyiniz zaman nifrət etməyin, bir iş seansının ortasındayıq və telefonunuza bir bildiriş gəlir-bir saat sonra "sürətli yoxlama" olacaq. Ayrıca, həftədə bir iş üçün ayırdığınız vaxtla əlaqədar olaraq müəyyən vəzifələr üzərində nə qədər vaxt işlədiyinizi bilirsinizmi?
TOYL Tapşırıq İzləyicisinə daxil olun. Telefonunuzu söndürə və işə diqqət yetirməyinizə imkan verir, eyni zamanda həftədə 60 saat işləmək istədiyiniz vaxtın miqdarını və yerinə yetirmək istədiyiniz vəzifələri təyin etməyə imkan verir. Bir iclas üçün oturduğunuzda, ümumi işiniz üçün nə qədər vaxtınız qaldığını təsəvvür edirsiniz. İzləyicinin iki rejimi var: Taymer, həftədə bir iş üçün nə qədər vaxt sərf etmək istədiyinizi əvvəlcədən təyin edirsiniz və bir işi seçdikdən sonra sadəcə taymeri işə sala biləcəyiniz Saniyəölçən.
Təchizat
Dövrə
- Adafruit Lələk Huzzah
- Adafruit FeatherWing
- Kişi başlıq sancaqları
- Qadın başlıq pinləri
- 500 mAh batareya
- 100K ohm rezistorlar x2
- İzolyasiya lenti
- Bükülmüş tel
- Tel çıxarıcılar
- Lehim Fanı
Korpus
- Şəffaf akril təbəqə 24 "x18"
- İki tərəfli lent
- Lazer kəsiciyə giriş
- Vektor proqram
Addım 1: Dövrənizi lehimləyin
Dişi başlıq çubuqlarını Lələk Hüzzaha bağlayın. Bu təlimat Feather Huzzah hardware qurğusu üçün faydalıdır. Sonra, kişi başlıq sancaqlarını FeatherWing -ə lehimləyin. Onları bu şəkildə lehimləmək, lazım olduqda Lələk Qanadını Tüy Hüzzasından birləşdirməyə və ayırmağa imkan verir. Növbəti addım olan FeatherWing -ə rezistorlar əlavə etməyiniz lazım olduqda bu xüsusilə faydalıdır. 3V -ə qoşulmuş hər 0 və 2 pinlərindən 100K ohm rezistorları bağlayın.
Feather Huzzah cihazınızı qurun
Feather Wing cihazınızı qurun
Addım 2: Kodunuzu əlavə edin
Bu kod, 5 -ci Dərslik İnterneti kodunun uyğunlaşmasıdır, vaxt imkan verir, mən Preceptitaton xidmətini ToDosit IFTTT proqramı vasitəsilə əlavə olunan vəzifələri izləyən bir xidmətlə əvəz etmək istərdim. Hal -hazırda bir sıra tapşırıqları əl ilə daxil etməli və onları keçmək üçün A düyməsini istifadə etməlisiniz. Əlavə olaraq, bir neçə dəqiqəyə saymaq və növbəti işə keçərkən dayanmaq üçün taymeri kodlaşdırmaq istərdim. Taymeri üçün baza kodu yaratdığınıza və tapşırıqlar arasında velosiped sürdüyünüzə görə Becky Stern -ə çox təşəkkür edirəm. Layihəni internetə bağlamaqla maraqlanırsınızsa, bu dərslər qrupundan keçməyi çox tövsiyə edərdim.
// Əşyaların İnterneti Sinifinin nümunə kodu // Dövrə İnternet Verilərini Göstərir // Hava məlumatları bir lentdə toplanır // Birdən çox NeoPiksel hava şəraitini görüntüləyir // // Becky Stern 2017 tərəfindən dəyişdirilmişdir // Adafruit IO Abunə Nümunəsinə əsaslanaraq.
// Adafruit, bu açıq mənbə kodunu təmin etmək üçün vaxt və resurslar qoyur.
// Zəhmət olmasa Adafruit -dən // məhsulları alaraq Adafruit və açıq mənbə aparatlarına dəstək olun! // // Adafruit Industries üçün Todd Treece tərəfindən yazılmışdır // Müəlliflik hüququ (c) 2016 Adafruit Industries // MIT lisenziyası altında lisenziyalıdır. // // Yuxarıdakı bütün mətnlər hər hansı bir yenidən paylamaya daxil edilməlidir.
/************************ Adafruit IO Konfiqurasiyası ********************** *********
/ Bir hesab yaratmaq lazımdırsa io.adafruit.com saytına daxil olun, // və ya Adafruit IO açarınıza ehtiyacınız varsa. #IO_USERNAME "İstifadəçi Adın Burda" #IO_KEY "SəninKeyim Buradadır" ı təyin et
/******************************* WIFI Konfiqurasiyası **************** **********************/
#define WIFI_SSID "WifiName"
#WIFI_PASS "WifiPassword" təyin edin
#"AdafruitIO_WiFi.h" daxil edin
AdafruitIO_WiFi io (IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
/************************ Əsas Proqram Buradan Başlar ********************* **********/
#daxil edin #əlavə edin #daxil edin
#daxil edin
#daxil edin #daxil edin #daxil edin
#OLED_RESETini təyin edin 3
Adafruit_SSD1306 ekran (128, 32, & Wire, OLED_RESET);
// bu sabit dəyişməyəcək:
const int buttonPinA = 0; // düymələrin const int düyməsinə bağlandığı sancaqlarPinB = 16; // bunun artıq çəkmə rezistoru var, digər ikisinin bir const int buttonPinC = 2 ehtiyacı var;
// Dəyişənlər dəyişəcək:
int buttonAPushCounter = 0; // düymə basma sayının sayğacı int buttonAState = 0; // düymənin indiki vəziyyəti int lastButtonAState = 0; // düymənin əvvəlki vəziyyəti
// Dəyişənlər dəyişəcək:
int düyməsiBPushCounter = 0; // düymə basma sayının sayğacı int buttonBState = 0; // düymənin indiki vəziyyəti int lastButtonBState = 0; // düymənin əvvəlki vəziyyəti
// Dəyişənlər dəyişəcək:
int buttonCPushCounter = 0; // düymə basma sayına görə sayğac int buttonCState = 0; // düymənin indiki vəziyyəti int lastButtonCState = 0; // düymənin əvvəlki vəziyyəti
String displayForecast = "naməlum";
int timerVal = 0;
imzasız uzun lastStartTime = 0; bool timerEnabled = 0;
AdafruitIO_Feed *yağış = io.feed ("yağış"); // 'yağış' yemini qurun
// AdafruitIO_Feed *taskmanager = io.feed ("taskmanager"); // 'taskmanager' lentini qurun
boş quraşdırma () {
pinMode (düyməPinA, GİRİŞ); pinMode (buttonPinB, INPUT_PULLUP); pinMode (buttonPinC, GİRİŞ);
// SSD1306_SWITCHCAPVCC = daxili 3.3V -dən ekran gərginliyi yaradır
display.begin (SSD1306_SWITCHCAPVCC, 0x3C); // 128x32 üçün 0x3C ünvanı
// Ekranda ilkin ekran buferinin məzmununu göstər -
// kitabxana bunu Adafruit sıçrayış ekranı ilə işə salır. display.display (); gecikmə (2000); // 2 saniyə ara verin
// Tamponu silin.
display.clearDisplay ();
// serial bağlantısına başlayın
Serial.begin (115200);
// io.adafruit.com saytına qoşulun
Serial.print ("Adafruit IO -ya qoşulma"); io.connect (); // 'yağış' lenti üçün bir mesaj işləyicisi qurun. // handleMessage funksiyası (aşağıda müəyyən edilmişdir) // adafruit io -dan bir mesaj alındıqda // çağırılacaq. yağış-> onMessage (handleMessage);
// əlaqə gözləyin
while (io.status () <AIO_CONNECTED) {Serial.print ("."); gecikmə (500); }
// bağlıyıq
Serial.println (); Serial.println (io.statusText ());
}
boşluq döngəsi () {
// io.run (); bütün eskizlər üçün tələb olunur.
// həmişə loop // funksiyanızın üstündə olmalıdır. müştərini // io.adafruit.com ilə əlaqəli saxlayır və gələn məlumatları emal edir. io.run ();
// düymə giriş pinini oxuyun:
buttonAState = digitalRead (buttonPinA); buttonBState = digitalRead (buttonPinB); buttonCState = digitalRead (buttonPinC);
// Status düyməsini əvvəlki vəziyyətlə müqayisə edin
əgər (buttonAState! = lastButtonAState || buttonBState! = lastButtonBState || buttonCState! = lastButtonCState) {// vəziyyət dəyişibsə, sayacı artırın (buttonAState == LOW) {// əgər cari vəziyyət LOW olarsa düyməni APushCounter ++ düyməsinə basıldı; Serial.print ("A düyməsinin sayı itələyir:"); Serial.println (buttonAPushCounter); } if (buttonBState == LOW) {// cari vəziyyət LOW olarsa, düyməyə basıldı buttonBPushCounter ++; Serial.print ("B düyməsinin sayı:"); Serial.println (buttonBPushCounter); Serial.println ("Başlanğıc taymeri"); timerEnabled = 1; lastStartTime = milis (); } if (buttonCState == LOW) {// cari vəziyyət LOW olarsa düyməyə basıldı buttonCPushCounter ++; Serial.print ("C düyməsinin sayı:"); Serial.println (buttonCPushCounter); Serial.println ("Taymeri dayandırmaq"); timerEnabled = 0; }} if (timerEnabled == 1) {// timerVal = (millis () - lastStartTime)/1000 işə salındıqda sayğacı artırın; }
// ekran mövqeyi 1 - proqnoz
// if (buttonAPushCounter % 3 == 0) {// display.clearDisplay (); // display.setTextSize (1); // display.setTextColor (BEYAZ); // display.setCursor (0, 0); // display.print ("Proqnoz:"); // display.println (displayForecast); // display.setCursor (0, 16); // display.println ("ikinci sətir"); // display.println ("nümunə məzmun"); // display.display (); // // gecikmə (2000); //}
// ekran mövqeyi 1 - Tapşırıq 1
əgər (buttonAPushCounter % 3 == 0) {display.setTextSize (1); display.setTextColor (BEYAZ); display.clearDisplay (); display.setCursor (0, 0); display.println ("Araşdırma - Müsahibələr"); display.println (); display.print ("Taymer:"); display.println (timerVal); display.display (); }
// ekran mövqeyi 2 - Tapşırıq 2
if (buttonAPushCounter % 3 == 1) {display.clearDisplay (); display.setCursor (0, 0); display.println ("Making Studio - Kod"); display.println (); display.print ("Taymer:"); display.println (timerVal); display.display (); }
// ekran mövqeyi 3 - Tapşırıq 3
if (buttonAPushCounter % 3 == 2) {display.clearDisplay (); display.setCursor (0, 0); display.println ("DSV - Eskiz"); display.println (); display.print ("Taymer:"); display.println (timerVal); display.display (); }
// cari vəziyyəti son vəziyyət kimi qeyd edin, // növbəti dəfə loop vasitəsilə lastButtonAState = buttonAState; lastButtonBState = buttonBState; lastButtonCState = buttonCState;
}
// bu funksiya bir mesaj gəldikdə çağırılır
// Adafruit IO -dan alınmışdır. yuxarıdakı setup () funksiyasındakı // yemə qoşuldu. void handleMessage (AdafruitIO_Data *data) {
String proqnozu = data-> toString (); // daxil olan hava məlumatlarını bir sətirdə saxlayın
Serial.print ("alındı <-"); Serial.println (proqnoz); displayForecast = proqnoz; // aşağıdakı sətirlər indiyə qədər kəşf etdiyim müxtəlif IFTTT hava hesabatı sözlərini saxlayır String task1 = String ("Tapşırıq 1"); Simli yağış = Simli ("Yağış"); String lightrain = String ("Yüngül Yağış"); Yağış duşu = String ("Yağış duşu"); String AMshowers = String ("AM Duşları"); String rainandsnow = String ("Yağış və Qar"); Simli qar = String ("Qar"); String snowshower = String ("Qar duşu"); Buludlu simli = String ("Buludlu"); String əsasəncloudy = String ("Çox Buludlu"); String partlycloudy = String ("Qismən Buludlu"); String clearsky = String ("Sil"); String fair = String ("Ədalətli"); Günəşli tel = String ("Günəşli");
// Bunlar ifadələr daxil olan hava dəyişənini saxlanılan şərtlərlə müqayisə edir və buna uyğun olaraq NeoPixelləri idarə edir.
// əgər proqnozda yağış varsa if (proqnoz.equalsIgnoreCase (yağış) || proqnoz.equalsIgnoreCase (lightrain) || proqnoz.equalsIgnoreCase (yağış yağışı) || proqnoz.equalsIgnoreCase (AMshowers)) {Serial.println ("yağış bu gün üçün proqnoz ");
}
// əgər proqnozda qar varsa if (proqnoz.equalsIgnoreCase (qar) || proqnoz.equalsIgnoreCase (yağış və qar) || proqnoz.equalsIgnoreCase (qar yağışı)) {Serial.println ("bu gün proqnozda yağış");
}
// əgər proqnozda günəş varsa if (proqnoz.equalsIgnoreCase (clearsky) || proqnoz.equalsIgnoreCase (ədalətli) || proqnoz.equalsIgnoreCase (günəşli)) {Serial.println ("bu gün hava proqnozunda bir növ günəş");
}
// əgər proqnozda bulud varsa if (proqnoz.equalsIgnoreCase (buludlu) || proqnoz.equalsIgnoreCase (əsasən buludlu) || proqnoz.equalsIgnoreCase (qismən buludlu)) {Serial.println ("bu gün hava proqnozunda buludlu səma");
}
}
Addım 3: Konteyner / Qabıq yaradın
Qabıq üçün, çərçivənizin hansı ölçüdə olmasını istədiyinizi təyin edərək başlayın və ya faylımı yükləyə bilərsiniz. Ölçüsü təyin etdikdən sonra, vektor faylının düzülüşünü yaratmaq üçün MakerCase -dən istifadə edə bilərsiniz.
Dosyanı lazer kəsicidən keçirin - təxminən 5 dəqiqə çəkəcək. Bundan sonra qabığı bir yerə qoyun.
Düymələrimə çatmağı çətinləşdirən materialın genişliyini nəzərə almadım. Onları bağlamaq üçün hələ bir yol tapmalıyam. Həm də çox kiçikdirlər ki, bu da onlarla işləməyi çətinləşdirir.
Tövsiyə:
Vive Tracker üçün Etextile VR Əlcəkləri: 13 Addım (Şəkillərlə birlikdə)
Vive Tracker üçün Etextile VR Əlcəkləri: Bu dərslik, Vive tracker ilə VR -də istifadə üçün tekstil əlcəklərin necə hazırlanacağını göstərir. Vive qarşılıqlı əlaqələrini daha toxunma və insan hala gətirən Vive üçün hazırlanmış joystickləri əvəz edirlər
Film İzləyicisi - Raspberry Pi Powered Theatre Release Tracker: 15 Addım (Şəkillərlə birlikdə)
Movie Tracker - Raspberry Pi Powered Theatre Release Tracker: Movie Tracker, clapperboard formalı, Moruq Pi ilə işləyən Release Tracker -dir. TMDb API -dən istifadə edərək bölgənizdə gələcək filmlərin afişasını, adını, buraxılış tarixini və ümumi görünüşünü müəyyən bir vaxt aralığında (məsələn, bu həftə film buraxılışları) çap etmək üçün istifadə edin
Aerobik Arduino - Arduino tərəfindən 15 dollarlıq Fitness Tracker Gücü: 9 Addım (Şəkillərlə birlikdə)
Aerobik Arduino - bir Arduino tərəfindən 15 dollarlıq Fitness Tracker Gücü: Buna Fitbit və ya ağıllı saat əvəzinə fitnes meydançasında səs verin, Arduino ilə işləyən fitness izləyicisini cəmi 15 dollara qura bilərsiniz! Qaçarkən qollarınızın nasos hərəkətini izləyir və bunu müəyyən etmək üçün bir akselerometrdən istifadə edir. Bu
Dual Axis Tracker V2.0: 15 Addım (Şəkillərlə birlikdə)
Dual Axis Tracker V2.0: 2015 -ci ildə, əyləncəli bir tələbə və ya hobbi layihəsi olaraq istifadə etmək üçün Sadə İkili Eksen İzləyicisi hazırladıq. Kiçik, səs -küylü, bir az mürəkkəb idi və bir çox həqiqətən qəribə cəmiyyət şərhlərinə səbəb oldu. Deyilənə görə, üç il yarım sonra
Star Track - Arduino Powered Star Pointer və Tracker: 11 Addım (Şəkillərlə birlikdə)
Star Track - Arduino Powered Star Pointer və Tracker: Star track, Arduino əsaslı, GoTo -mountdan ilhamlanan ulduz izləmə sistemidir. Göydəki hər hansı bir obyekti (Göy koordinatları giriş olaraq verilir) 2 Arduino, bir girro, RTC modulu, iki aşağı qiymətli pilləli mühərrik və 3D çaplı quruluşla göstərə və izləyə bilər