Daftar Isi:
- Perlengkapan
- Langkah 1: Solder Sirkuit Anda
- Langkah 2: Tambahkan Kode Anda
- Langkah 3: Buat Wadah / Shell
Video: Pelacak Tugas TOYL: 3 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:55
Jangan Anda hanya membencinya ketika Anda berencana untuk bekerja atau lebih buruk, berada di tengah sesi kerja dan pemberitahuan masuk di ponsel Anda - "pemeriksaan cepat" menjadi beberapa jam kemudian. Juga, apakah Anda tahu berapa banyak waktu Anda mengerjakan tugas-tugas tertentu sehubungan dengan waktu yang Anda alokasikan untuk bekerja per minggu?
Masukkan Pelacak Tugas TOYL. Ini memungkinkan Anda untuk mematikan ponsel dan fokus pada pekerjaan, sekaligus memungkinkan Anda untuk mengatur jumlah waktu yang Anda inginkan untuk bekerja per minggu, katakanlah 60 jam, dan tugas yang ingin Anda selesaikan. Ketika Anda duduk untuk satu sesi, Anda mendapatkan gambaran tentang berapa banyak waktu yang tersisa untuk pekerjaan Anda secara keseluruhan. Pelacak memiliki dua mode: Timer, di mana Anda telah mengatur berapa banyak waktu yang ingin Anda habiskan per tugas per minggu, dan Stopwatch, di mana Anda cukup memulai-menghentikan timer setelah memilih tugas.
Perlengkapan
sirkuit
- Adafruit Feather Huzzah
- Adafruit Bulu Sayap
- Pin header pria
- Pin header wanita
- Baterai 500mAh
- Resistor 100K ohm x2
- Pita isolasi
- Kawat terdampar
- penari telanjang kawat
- kipas solder
Selubung
- Lembaran akrilik buram 24 "x 18"
- Pita dua sisi
- Akses ke pemotong laser
- Perangkat lunak vektor
Langkah 1: Solder Sirkuit Anda
Solder pin header wanita ke Feather Huzzah. Tutorial ini berguna untuk pengaturan perangkat keras Feather Huzzah. Kemudian, solder pin header laki-laki ke FeatherWing. Menyoldernya dengan cara ini memungkinkan Anda untuk menggabungkan dan memisahkan Sayap Bulu dari Bulu Huzzah bila diperlukan. Ini sangat berguna ketika Anda perlu menambahkan resistor ke FeatherWing Anda, yang merupakan langkah berikutnya. Hubungkan resistor 100K ohm dari setiap pin 0 dan 2, terhubung ke 3V.
Siapkan perangkat keras Feather Huzzah Anda
Siapkan perangkat keras Sayap Bulu Anda
Langkah 2: Tambahkan Kode Anda
Kode ini merupakan adaptasi dari pelajaran 5 kode Internet of Things, Waktu mengizinkan, saya ingin mengganti layanan Preceptitaton dengan yang melacak tugas yang ditambahkan melalui applet IFTTT ToDosit. Saat ini Anda harus memasukkan serangkaian tugas secara manual dan menggunakan Tombol A untuk menggilirnya. Selain itu, saya ingin mengkodekan penghitung waktu untuk menghitung dalam hitungan menit dan berhenti ketika beralih ke tugas berikutnya. Terima kasih yang sebesar-besarnya kepada Becky Stern karena telah membuat kode dasar untuk pengatur waktu dan menjalankan tugas. Jika Anda tertarik untuk menghubungkan proyek ke internet, saya sangat merekomendasikan untuk mengikuti rangkaian kelas ini.
// Kode sampel Kelas Internet of Things yang Dapat Diinstruksikan// Sirkuit Menampilkan Data Internet // Data cuaca dikumpulkan dalam umpan // Beberapa NeoPixels memvisualisasikan kondisi cuaca // // Dimodifikasi oleh Becky Stern 2017 // berdasarkan Contoh Berlangganan Adafruit IO
// Adafruit menginvestasikan waktu dan sumber daya untuk menyediakan kode sumber terbuka ini.
// Tolong dukung Adafruit dan perangkat keras open source dengan membeli // produk dari Adafruit! // // Ditulis oleh Todd Treece untuk Adafruit Industries // Hak Cipta (c) 2016 Adafruit Industries // Dilisensikan di bawah lisensi MIT. // // Semua teks di atas harus disertakan dalam redistribusi apa pun.
/************************ Konfigurasi Adafruit IO ********************** *********
/ kunjungi io.adafruit.com jika Anda perlu membuat akun, // atau jika Anda membutuhkan kunci IO Adafruit Anda. #define IO_USERNAME "NamaPenggunaAndaDi Sini" #define IO_KEY "IoKeyAndaDi Sini"
/******************************* Konfigurasi WIFI **************** *************************/
#define WIFI_SSID "NamaWifi"
#define WIFI_PASS "WifiPassword"
#sertakan "AdafruitIO_WiFi.h"
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
/*************************** Program Utama Dimulai Disini ********************* **********/
#sertakan #sertakan #sertakan #sertakan
#termasuk
#sertakan #sertakan #sertakan
#definisikan OLED_RESET 3
Tampilan Adafruit_SSD1306(128, 32, &Kabel, OLED_RESET);
// konstanta ini tidak akan berubah:
const int buttonPinA = 0; // pin yang dilampirkan tombol tekan ke const int buttonPinB = 16; // yang ini sudah memiliki resistor pullup, dua lainnya membutuhkan satu const int buttonPinC = 2;
// Variabel akan berubah:
int buttonAPushCounter = 0; // counter untuk jumlah penekanan tombol int buttonAState = 0; // status tombol saat ini int lastButtonAState = 0; // status tombol sebelumnya
// Variabel akan berubah:
int buttonBPushCounter = 0; // counter untuk jumlah penekanan tombol int buttonBState = 0; // status tombol saat ini int lastButtonBState = 0; // status tombol sebelumnya
// Variabel akan berubah:
int buttonCPushCounter = 0; // penghitung jumlah tombol yang ditekan int buttonCState = 0; // status tombol saat ini int lastButtonCState = 0; // status tombol sebelumnya
String displayForecast = "tidak diketahui";
int timerVal = 0;
unsigned long lastStartTime = 0; bool timerEnabled = 0;
AdafruitIO_Feed *curah hujan = io.feed("curah hujan"); // siapkan umpan 'curah hujan'
//AdafruitIO_Feed *taskmanager = io.feed("taskmanager"); // siapkan umpan 'taskmanager'
batalkan pengaturan() {
pinMode(tombolPinA, INPUT); pinMode(tombolPinB, INPUT_PULLUP); pinMode(tombolPinC, INPUT);
// SSD1306_SWITCHCAPVCC = menghasilkan tegangan tampilan dari 3.3V secara internal
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // Alamat 0x3C untuk 128x32
// Menampilkan konten buffer tampilan awal di layar --
// perpustakaan menginisialisasi ini dengan layar splash Adafruit. tampilan.tampilan(); penundaan(2000); // Jeda selama 2 detik
// Hapus buffer.
tampilan.clearDisplay();
// mulai koneksi serial
Serial.begin(115200);
// sambungkan ke io.adafruit.com
Serial.print("Menghubungkan ke Adafruit IO"); io.koneksi(); // siapkan pengendali pesan untuk umpan 'curah hujan'. // fungsi handleMessage (didefinisikan di bawah) // akan dipanggil setiap kali sebuah pesan diterima // dari adafruit io. presipitasi->onMessage(handleMessage);
// tunggu koneksi
while(io.status() < AIO_CONNECTED) { Serial.print("."); penundaan (500); }
// kita terhubung
Serial.println(); Serial.println(io.statusText());
}
lingkaran kosong() {
// io.run(); diperlukan untuk semua sketsa.
// itu harus selalu ada di bagian atas fungsi loop // Anda. itu membuat klien tetap terhubung ke // io.adafruit.com, dan memproses semua data yang masuk. io.run();
// baca pin input tombol tekan:
buttonAState = digitalRead(buttonPinA); buttonBState = digitalRead(buttonPinB); buttonCState = digitalRead(buttonPinC);
// bandingkan keadaan tombol dengan keadaan sebelumnya
if (buttonAState != lastButtonAState || buttonBState != lastButtonBState || buttonCState != lastButtonCState) { // jika state telah berubah, tambah counter if (buttonAState == LOW) { // jika state saat ini LOW maka button ditekan tombolAPushCounter++; Serial.print("Jumlah tombol A yang ditekan: "); Serial.println(buttonAPushCounter); } if (buttonBState == LOW) { // jika kondisi saat ini LOW maka tombol ditekan buttonBPushCounter++; Serial.print("Jumlah tombol B yang ditekan: "); Serial.println(buttonBPushCounter); Serial.println("Penghitung waktu mulai"); timerEnabled = 1; lastStartTime = milis(); } if (buttonCState == LOW) { // jika kondisi saat ini LOW maka tombol ditekan buttonCPushCounter++; Serial.print("Jumlah tombol C yang ditekan: "); Serial.println(buttonCPushCounter); Serial.println("Menghentikan pengatur waktu"); timerEnabled = 0; } } if (timerEnabled == 1){ // menambah timer hanya jika timerVal = (millis() - lastStartTime)/1000; }
//tampilkan posisi 1 - perkiraan
// if (buttonAPushCounter % 3 == 0) { // display.clearDisplay(); // display.setTextSize(1); // tampilan.setTeksWarna(PUTIH); // display.setCursor(0, 0); // display.print("Perkiraan: "); // display.println(displayForecast); // display.setCursor(0, 16); // display.println("baris kedua"); // display.println("Contoh Isi"); // tampilan.tampilan(); ///tunda(2000); // }
//menampilkan posisi 1 - Tugas 1
if (buttonAPushCounter % 3 == 0) { display.setTextSize(1); display.setTextColor(PUTIH); tampilan.clearDisplay(); display.setCursor(0, 0); display.println("Penelitian - Wawancara"); tampilan.println(); display.print("Pewaktu: "); display.println(timerVal); tampilan.tampilan(); }
//tampilkan posisi 2 - Tugas 2
if (buttonAPushCounter % 3 == 1) { display.clearDisplay(); display.setCursor(0, 0); display.println("Membuat Studio - Kode"); tampilan.println(); display.print("Pewaktu: "); display.println(timerVal); tampilan.tampilan(); }
//menampilkan posisi 3 - Tugas 3
if (buttonAPushCounter % 3 == 2) { display.clearDisplay(); display.setCursor(0, 0); display.println("DSV - Membuat Sketsa"); tampilan.println(); display.print("Pewaktu: "); display.println(timerVal); tampilan.tampilan(); }
// simpan status saat ini sebagai status terakhir, //untuk waktu berikutnya melalui loop lastButtonAState = buttonAState; lastButtonBState = buttonBState; lastButtonCState = buttonCState;
}
// fungsi ini dipanggil setiap kali ada pesan
// diterima dari Adafruit IO. itu dilampirkan ke // feed dalam fungsi setup() di atas. void handleMessage(AdafruitIO_Data *data) {
Perkiraan string = data->toString(); // menyimpan data cuaca yang masuk dalam sebuah string
Serial.print("diterima <- "); Serial.println(perkiraan); displayForecast = perkiraan; //string berikut menyimpan berbagai kata laporan cuaca IFTTT yang saya temukan sejauh ini String task1 = String("Tugas 1"); String hujan = String("Hujan"); String hujan ringan = String("Hujan Ringan"); String pancuran hujan = String("Hujan Pancuran"); String AMshowers = String("AM Showers"); String hujan dan salju = String("Hujan dan Salju"); String salju = String("Salju"); String hujan salju = String("Hujan Salju"); String mendung = String("Mendung"); String sebagian besar mendung = String("Sebagian Besar Berawan"); String partlycloudy = String("Sebagian Mendung"); String langit cerah = String("Hapus"); String adil = String("Adil"); String cerah = String("Cerah");
// Pernyataan if ini membandingkan variabel cuaca yang masuk dengan kondisi yang disimpan, dan mengontrol NeoPixels yang sesuai.
// jika ada hujan dalam ramalan if (forecast.equalsIgnoreCase(rain) || forecast.equalsIgnoreCase(lightrain) || forecast.equalsIgnoreCase(rainshower) || forecast.equalsIgnoreCase(AMshowers)){ Serial.println("presipitasi di ramalan hari ini");
}
// jika ada salju di prakiraan if (forecast.equalsIgnoreCase(snow) || forecast.equalsIgnoreCase(rainandsnow) || forecast.equalsIgnoreCase(snowshower)){ Serial.println("presipitasi di prakiraan hari ini");
}
// jika ada matahari di prakiraan if (forecast.equalsIgnoreCase(clearsky) || forecast.equalsIgnoreCase(fair) || forecast.equalsIgnoreCase(cerah)){ Serial.println("beberapa jenis matahari di prakiraan hari ini");
}
// jika ada awan di prakiraan if (forecast.equalsIgnoreCase(cloudy) || forecast.equalsIgnoreCase(mostlycloudy) || forecast.equalsIgnoreCase(partlycloudy)){ Serial.println("prakiraan langit hari ini mendung");
}
}
Langkah 3: Buat Wadah / Shell
Untuk shell, mulailah dengan menentukan ukuran bingkai yang Anda inginkan, atau Anda dapat mengunduh file saya. Setelah Anda menentukan ukurannya, Anda dapat menggunakan MakerCase untuk membuat tata letak untuk file vektor.
Jalankan file melalui pemotong laser - ini akan memakan waktu sekitar 5 menit. Setelah itu satukan cangkangnya.
Saya tidak memperhitungkan lebar bahan yang membuat tombol saya sulit dijangkau. Saya masih perlu menemukan cara untuk melampirkannya. Mereka juga sangat kecil yang membuat mereka sulit untuk diajak bekerja sama.
Direkomendasikan:
Pelacak COVID19 Desktop Dengan Jam! Pelacak Bertenaga Raspberry Pi: 6 Langkah
Pelacak COVID19 Desktop Dengan Jam! Raspberry Pi Powered Tracker: Kita tahu bahwa kita bisa mati kapan saja, bahkan saya bisa mati saat menulis posting ini, bagaimanapun juga, saya saya, Anda, kita semua adalah manusia. Seluruh dunia berguncang karena pandemi COVID19. Kami tahu cara mencegahnya, tapi hei! kita tahu bagaimana berdoa dan mengapa harus berdoa, apakah kita
Pelacak Film - Pelacak Rilis Teater Bertenaga Raspberry Pi: 15 Langkah (dengan Gambar)
Movie Tracker - Pelacak Rilis Teater Bertenaga Raspberry Pi: Pelacak Film adalah Pelacak Rilis bertenaga Raspberry Pi yang berbentuk clapperboard. Ini menggunakan TMDb API untuk mencetak poster, judul, tanggal rilis, dan ikhtisar film mendatang di wilayah Anda, dalam interval waktu tertentu (mis. rilis film minggu ini) pada
Tugas Akhir: 6 Langkah (dengan Gambar)
Tugas Akhir: Tugas akhir elektronik digital saya adalah logo Chevy yang dipotong dari Aluminium dengan neo-piksel yang berubah warna, yang dapat digantung di dinding
Menyimpan Gambar Anda untuk Tugas Anda: 4 Langkah (dengan Gambar)
Menyimpan Gambar Anda untuk Tugas Anda: 1. Buka dokumen Google baru dan gunakan halaman ini untuk mengamankan gambar Anda.2. Gunakan ctrl (kontrol) dan tombol "c" kunci untuk menyalin.3. Gunakan ctrl (kontrol) dan tombol "v" kunci untuk menempel
Tugas Nol: 7 Langkah (dengan Gambar)
Tugas Nol: Hidup dalam masyarakat yang menghargai efisiensi tinggi dan menekankan kesuksesan, seseorang mungkin cenderung melupakan ada kehidupan selain pekerjaan. Tugas Nol adalah tentang tugas sebelum yang pertama. Tugas 0: Hargai kehidupan pribadi Anda. Jangan tunda tugas-tugas yang memupuk