Isi kandungan:
- Bekalan
- Langkah 1: Selesaikan Litar Anda
- Langkah 2: Tambahkan Kod Anda
- Langkah 3: Buat Container / Shell
Video: Penjejak Tugas TOYL: 3 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:08
Jangan hanya membencinya ketika anda berencana untuk bekerja atau lebih buruk lagi, berada di tengah-tengah sesi kerja dan pemberitahuan masuk di telefon anda - "cek cepat" menjadi beberapa jam kemudian. Juga, adakah anda tahu berapa banyak masa anda bekerja pada tugas-tugas tertentu berkaitan dengan masa yang anda peruntukkan untuk bekerja setiap minggu?
Masukkan Penjejak Tugas TOYL. Ini membolehkan anda mematikan telefon dan fokus pada kerja, sekaligus membolehkan anda mengatur jumlah masa yang anda mahu bekerja setiap minggu-katakanlah 60 jam-dan tugas-tugas yang ingin anda selesaikan. Apabila anda duduk untuk sesi, anda mendapat idea tentang berapa banyak masa yang anda ada untuk keseluruhan kerja anda. Tracker mempunyai dua mod: Pemasa, di mana anda telah menetapkan berapa banyak masa yang anda ingin habiskan setiap tugas setiap minggu, dan Jam Randik, di mana anda hanya boleh memulakan-menghentikan pemasa setelah memilih tugas.
Bekalan
Litar
- Adafruit Feather Huzzah
- Adafruit FeatherWing
- Pin pengepala lelaki
- Pin pengepala wanita
- Bateri 500mAh
- Perintang 100K ohm x2
- Pita penebat
- Kawat terdampar
- Pelucut wayar
- Kipas Pateri
Selongsong
- Lembaran akrilik buram 24 "x18"
- Pita dua sisi
- Akses ke pemotong laser
- Perisian vektor
Langkah 1: Selesaikan Litar Anda
Solder pin header wanita ke Feather Huzzah. Tutorial ini berguna untuk penyediaan perkakasan Feather Huzzah. Kemudian, pasangkan pin header lelaki ke FeatherWing. Memateri mereka dengan cara ini membolehkan anda bergabung dan memisahkan Feather Wing dari Feather Huzzah apabila diperlukan. Ini sangat berguna apabila anda perlu menambahkan perintang ke FeatherWing anda, yang merupakan langkah seterusnya. Sambungkan perintang 100K ohm dari setiap pin 0 dan 2, disambungkan ke 3V.
Siapkan perkakasan Feather Huzzah anda
Siapkan perkakasan Feather Wing anda
Langkah 2: Tambahkan Kod Anda
Kod ini adalah penyesuaian dari kod Pelajaran 5 Internet of Things, Jika memungkinkan, saya ingin mengganti perkhidmatan Preceptitaton dengan yang menjejaki tugas yang ditambahkan melalui applet ToDosit IFTTT. Pada masa ini anda perlu memasukkan sekumpulan tugas secara manual dan menggunakan Butang A untuk menelusurinya. Sebagai tambahan, saya ingin mengkodkan pemasa untuk dihitung dalam beberapa minit dan berhenti ketika beralih ke tugas seterusnya. Terima kasih banyak kepada Becky Stern kerana membuat kod asas untuk pemasa dan berbasikal melalui tugas. Sekiranya anda berminat untuk menyambungkan projek ke internet, saya sangat mengesyorkan mengikuti kelas ini.
// Instructables Internet of Things Kelas kod contoh // Circuit Display Data Internet // Data cuaca dikumpulkan dalam feed // Multiple NeoPixels menggambarkan keadaan cuaca // // Diubah suai oleh Becky Stern 2017 // berdasarkan Contoh Langganan Adafruit IO
// Adafruit melaburkan masa dan sumber yang menyediakan kod sumber terbuka ini.
// Tolong sokong Adafruit dan perkakasan sumber terbuka dengan membeli // produk dari Adafruit! // // Ditulis oleh Todd Treece untuk Adafruit Industries // Hak Cipta (c) 2016 Adafruit Industries // Berlesen di bawah lesen MIT. // // Semua teks di atas mesti disertakan dalam pengagihan semula.
/ ************************ Adafruit IO Configuration ********************** *********
/ lawati io.adafruit.com jika anda perlu membuat akaun, // atau jika anda memerlukan kunci Adafruit IO anda. #define IO_USERNAME "YourUsername Here" #define IO_KEY "YourIOKeyHere"
/ ******************************* Konfigurasi WIFI **************** ********************** /
#tentukan WIFI_SSID "WifiName"
#tentukan WIFI_PASS "Kata Laluan Wifi"
#sertakan "AdafruitIO_WiFi.h"
AdafruitIO_WiFi io (IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
/ ************************ Program Utama Bermula Di Sini ********************* ********** /
#sertakan #sertakan #sertakan #sertakan
#sertakan
#sertakan #sertakan #sertakan
#tentukan OLED_RESET 3
Paparan Adafruit_SSD1306 (128, 32, & Wire, OLED_RESET);
// pemalar ini tidak akan berubah:
butang const intPinA = 0; // pin yang dilekatkan pada butang tekan int constPinB = 16; // yang ini sudah mempunyai perintang penarik, dua yang lain memerlukan satu butang int intPinC = 2;
// Pemboleh ubah akan berubah:
butang intAPushCounter = 0; // kaunter untuk bilangan butang menekan int buttonAState = 0; // keadaan semasa butang int lastButtonAState = 0; // keadaan butang sebelumnya
// Pemboleh ubah akan berubah:
butang intBPushCounter = 0; // kaunter untuk bilangan tekan butang int buttonBState = 0; // keadaan semasa butang int lastButtonBState = 0; // keadaan butang sebelumnya
// Pemboleh ubah akan berubah:
int buttonCPushCounter = 0; // kaunter untuk bilangan butang menekan int buttonCState = 0; // keadaan semasa butang int lastButtonCState = 0; // keadaan butang sebelumnya
String displayForecast = "tidak diketahui";
int timerVal = 0;
lama terakhir tidak ditandatanganiStartTime = 0; pemasa boolEnabled = 0;
AdafruitIO_Feed * pemendakan = io.feed ("pemendakan"); // sediakan suapan 'pemendakan'
// AdafruitIO_Feed * taskmanager = io.feed ("taskmanager"); // sediakan suapan 'taskmanager'
batal persediaan () {
pinMode (buttonPinA, INPUT); pinMode (buttonPinB, INPUT_PULLUP); pinMode (buttonPinC, INPUT);
// SSD1306_SWITCHCAPVCC = menjana voltan paparan dari 3.3V secara dalaman
display.begin (SSD1306_SWITCHCAPVCC, 0x3C); // Alamat 0x3C untuk 128x32
// Tunjukkan kandungan penyangga paparan awal di skrin -
// perpustakaan menginisialisasi ini dengan layar percikan Adafruit. paparan.display (); kelewatan (2000); // Jeda selama 2 saat
// Kosongkan penyangga.
display.clearDisplay ();
// mulakan sambungan bersiri
Serial.begin (115200);
// sambung ke io.adafruit.com
Serial.print ("Menyambung ke Adafruit IO"); io.connect (); // sediakan pengendali mesej untuk umpan 'curah hujan'. // fungsi handleMessage (ditakrifkan di bawah) // akan dipanggil setiap kali mesej // diterima dari adafruit io. pemendakan-> onMessage (handleMessage);
// tunggu sambungan
sementara (io.status () <AIO_CONNECTED) {Serial.print ("."); kelewatan (500); }
// kami berhubung
Bersiri.println (); Serial.println (io.statusText ());
}
gelung kosong () {
// io.run (); diperlukan untuk semua lakaran.
// semestinya selalu ada di bahagian atas fungsi // loop anda. ia memastikan klien tetap terhubung ke // io.adafruit.com, dan memproses data yang masuk. io.run ();
// baca pin input butang tekan:
buttonAState = digitalRead (buttonPinA); buttonBState = digitalRead (buttonPinB); buttonCState = digitalRead (buttonPinC);
// bandingkan butangState dengan keadaan sebelumnya
if (buttonAState! = lastButtonAState || buttonBState! = lastButtonBState || buttonCState! = lastButtonCState) {// jika keadaan telah berubah, tingkatkan pembilang jika (buttonAState == LOW) {// jika keadaan semasa RENDAH maka butang ditekan butangAPushCounter ++; Serial.print ("bilangan butang A menekan:"); Serial.println (buttonAPushCounter); } if (buttonBState == LOW) {// jika keadaan semasa RENDAH maka butang ditekan butangBPushCounter ++; Serial.print ("bilangan butang B menekan:"); Serial.println (buttonBPushCounter); Serial.println ("Pemasa permulaan"); timerEnabled = 1; lastStartTime = milis (); } if (buttonCState == LOW) {// jika keadaan semasa RENDAH maka butang ditekan butangCPushCounter ++; Serial.print ("bilangan butang C menekan:"); Serial.println (buttonCPushCounter); Serial.println ("Menghentikan pemasa"); timerEnabled = 0; }} if (timerEnabled == 1) {// tambahkan pemasa hanya apabila sudah dimulakan timerVal = (millis () - lastStartTime) / 1000; }
// kedudukan paparan 1 - ramalan
// if (buttonAPushCounter% 3 == 0) {// display.clearDisplay (); // display.setTextSize (1); // display.setTextColor (PUTIH); // display.setCursor (0, 0); // display.print ("Ramalan:"); // display.println (displayForecast); // display.setCursor (0, 16); // display.println ("baris kedua"); // display.println ("contoh kandungan"); // paparan.display (); // // kelewatan (2000); //}
// kedudukan paparan 1 - Tugas 1
jika (buttonAPushCounter% 3 == 0) {display.setTextSize (1); display.setTextColor (PUTIH); display.clearDisplay (); display.setCursor (0, 0); display.println ("Penyelidikan - Temu ramah"); display.println (); display.print ("Pemasa:"); display.println (timerVal); paparan.display (); }
// kedudukan paparan 2 - Tugas 2
jika (buttonAPushCounter% 3 == 1) {display.clearDisplay (); display.setCursor (0, 0); display.println ("Membuat Studio - Kod"); display.println (); display.print ("Pemasa:"); display.println (timerVal); paparan.display (); }
// kedudukan paparan 3 - Tugasan 3
jika (buttonAPushCounter% 3 == 2) {display.clearDisplay (); display.setCursor (0, 0); display.println ("DSV - Membuat Sketsa"); display.println (); display.print ("Pemasa:"); display.println (timerVal); paparan.display (); }
// simpan keadaan semasa sebagai keadaan terakhir, // untuk kali seterusnya melalui gelung lastButtonAState = buttonAState; lastButtonBState = butangBState; lastButtonCState = butangCState;
}
// fungsi ini dipanggil setiap kali mesej
// diterima dari Adafruit IO. ia dilampirkan ke // feed dalam fungsi setup () di atas. void handleMessage (AdafruitIO_Data * data) {
Ramalan rentetan = data-> toString (); // simpan data cuaca masuk dalam rentetan
Serial.print ("diterima <-"); Serial.println (ramalan); displayForecast = ramalan; // rentetan berikut menyimpan perkataan laporan cuaca IFTTT yang bervariasi yang saya temui setakat ini String task1 = String ("Task 1"); Hujan rentetan = Rentetan ("Hujan"); Strain lightrain = String ("Hujan Ringan"); String rainhower = Rentetan ("Rain Shower"); String AMshower = String ("AM Showers"); String rainandsnow = Rentetan ("Hujan dan Salji"); Salji salji = Rentetan ("Salji"); Strows snowshower = String ("Pancuran Salji"); Rentetan berawan = Rentetan ("Mendung"); String mostcloudy = String ("Sebilangan besar Mendung"); String partlycloudy = String ("Sebagian Mendung"); String clearsky = String ("Clear"); String fair = String ("Adil"); Rentetan cerah = Rentetan ("Cerah");
// Ini jika pernyataan membandingkan pemboleh ubah cuaca masuk dengan keadaan yang tersimpan, dan mengawal NeoPixels dengan sewajarnya.
// jika ada hujan dalam ramalan jika (forecast.equalsIgnoreCase (rain) || forecast.equalsIgnoreCase (lightrain) || forecast.equalsIgnoreCase (rainhower) || forecast.equalsIgnoreCase (AMshowers)) {Serial.println ("curah hujan di ramalan hari ini ");
}
// jika terdapat salji dalam ramalan jika (forecast.equalsIgnoreCase (salji) || forecast.equalsIgnoreCase (rainandsnow) || forecast.equalsIgnoreCase (snowshower)) {Serial.println ("curah hujan dalam ramalan hari ini");
}
// jika ada cahaya matahari dalam ramalan jika (forecast.equalsIgnoreCase (clearsky) || forecast.equalsIgnoreCase (adil) || forecast.equalsIgnoreCase (cerah)) {Serial.println ("semacam matahari dalam ramalan hari ini");
}
// jika terdapat awan dalam ramalan jika (forecast.equalsIgnoreCase (cloudy) || forecast.equalsIgnoreCase (mostcloudy) || forecast.equalsIgnoreCase (partlycloudy)) {Serial.println ("langit mendung dalam ramalan hari ini");
}
}
Langkah 3: Buat Container / Shell
Untuk cangkangnya, mulakan dengan menentukan ukuran apa yang anda mahukan bingkai anda, atau anda boleh memuat turun fail saya. Setelah menentukan ukuran anda boleh menggunakan MakerCase untuk membuat susun atur untuk fail vektor.
Jalankan fail melalui pemotong laser - perlu sekitar 5 minit. Selepas itu pasangkan cengkerang.
Saya tidak menjelaskan lebar bahan yang menjadikan butang saya sukar dijangkau. Saya masih perlu mencari jalan untuk melekatkannya. Mereka juga sangat kecil yang membuat mereka sukar untuk bekerja.
Disyorkan:
Kerusi Roda Kendali Joystick Dibantu Dengan Penjejak Halangan: 3 Langkah (dengan Gambar)
Kerusi Roda Joystick Terkawal Dibantu Dengan Penjejak Halangan: Untuk memudahkan orang kurang upaya fizikal dengan selamat menunggang sensor ultrasonik digunakan untuk mengesan rintangan yang ada dalam perjalanan. Berdasarkan pergerakan kayu bedik motor akan memandu kerusi roda dalam empat arah dan kelajuan pada setiap
Membina Penjejak Solar Automatik Dengan Arduino Nano V2: 17 Langkah (dengan Gambar)
Membina Penjejak Solar Automatik Dengan Arduino Nano V2: Hai! Instructable ini dimaksudkan untuk menjadi bahagian kedua dari projek Solar Tracker saya. Untuk penjelasan mengenai bagaimana pelacak solar berfungsi dan bagaimana saya merancang pelacak pertama saya, gunakan pautan di bawah. Ini akan menawarkan konteks untuk projek ini.https: //www.instructables.co
Penjejak Kereta GPS Dengan Pemberitahuan SMS dan Muat Naik Data Perkara, Berbasis Arduino, Automasi Rumah: 5 Langkah (dengan Gambar)
Penjejak Kereta GPS Dengan Pemberitahuan SMS dan Muat Naik Data Thingspeak, Berasaskan Arduino, Automasi Rumah: Saya membuat pelacak GPS ini tahun lalu dan kerana ia berfungsi dengan baik, saya menerbitkannya sekarang di Instructable. Ia disambungkan ke palam aksesori di bagasi saya. Penjejak GPS memuat naik kedudukan kereta, kelajuan, arah dan suhu yang diukur melalui data mudah alih
Pengurus Tugas - Sistem Pengurusan Kerja Rumah Tangga: 5 Langkah (dengan Gambar)
Pengurus Tugas - Sistem Pengurusan Kerja Rumah Tangga: Saya ingin mencuba menangani masalah sebenar yang dihadapi dalam rumah tangga kami (dan, saya membayangkan, banyak pembaca lain), iaitu bagaimana memperuntukkan, memotivasi, dan memberi penghargaan kepada anak-anak saya kerana membantu dengan kerja rumah tangga. Hingga kini, kami menyimpan kepingan berlapis
Menyimpan Imej Anda untuk Tugas Anda: 4 Langkah (dengan Gambar)
Menyimpan Imej Anda untuk Tugas Anda: 1. Buka dokumen Google baru dan gunakan halaman ini untuk menyimpan gambar anda.2. Gunakan ctrl (kawalan) dan " c " kunci untuk disalin.3. Gunakan ctrl (kawalan) dan " v " kunci untuk ditampal