Daftar Isi:
- Langkah 1: Brainstorming Idenya
- Langkah 2: Sketsa dan Bahan
- Langkah 3: Membuat Casing Luar
- Langkah 4: Laser Memotong Casing Luar
- Langkah 5: Menyatukannya
- Langkah 6: Kode
- Langkah 7: Elektronik
- Langkah 8: Akhir
Video: Sobat Pagi: 8 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:56
Beberapa orang memiliki jadwal yang sangat sibuk, yang membuatnya mudah untuk melupakan satu atau dua hal. Dengan jam alarm ini Anda dapat mengatur beberapa alarm agar Anda tetap pada jadwal. Jam berjalan 24 waktu dan yang harus Anda lakukan adalah memprogramnya untuk berbunyi pada waktu yang berbeda dalam sehari yang sesuai dengan jadwal Anda. Saat Anda melakukan ini, waktu yang telah Anda atur akan muncul di layar LCD, sehingga Anda dapat memeriksa untuk memastikannya benar dan berfungsi sebagai pengingat tambahan.
Langkah 1: Brainstorming Idenya
Ketika kami mencoba memecahkan masalah, kami menggunakan metode tulang ikan untuk menghasilkan ide dan menghasilkan jam alarm kami.
Langkah 2: Sketsa dan Bahan
Selama langkah ini kami mencoba membuat daftar semua hal yang kami pikir kami perlukan untuk elektronik dan casing luar. Kemudian kami membuat sketsa seperti apa tampilan jam alarm yang kami inginkan dan bagaimana kami akan merakit casing luarnya.
Langkah 3: Membuat Casing Luar
Untuk prototipe pertama saya hanya ingin melihat bagaimana sambungan jari akan cocok satu sama lain, jadi saya menggunakan kotak sepatu dan tidak menggunakan ukuran yang tepat.
Langkah 4: Laser Memotong Casing Luar
Untuk prototipe kedua saya ingin mendapatkan pengukuran yang tepat dan harus membuat pdf untuk dikirim ke pemotong laser. Untuk melakukan ini, saya menggunakan situs web aplikasi pembuat kotak, https://boxdesigner.connectionlab.org. Di situs web itu saya kemudian memasukkan dimensi 3-D kotak, ketebalan bahan kami, unit pengukuran, dan jenis file apa yang saya ingin buat. Dimensi kotak adalah 7,5 inci x 3 inci x 5 inci dan saya menggunakan bahan akrilik tebal 1/8 inci. Pengukuran takik sambungan jari kemudian secara otomatis dikonfigurasi menjadi 0,46875 inci. Saya memilih versi pdf karena itu adalah jenis file yang dibaca oleh pemotong laser dan saya ingin membuat beberapa perubahan di adobe pada file tersebut. Saya mengubah warna garis menjadi merah, sehingga pemotong laser akan tahu untuk memotongnya alih-alih mengukir bentuknya, dan saya menambahkan kotak persegi panjang dengan dimensi 3,92 in kali 1,56 in pada apa yang akan menjadi bagian depan dari kotak. Saya juga menambahkan potongan persegi panjang dengan dimensi 1 inci kali 0,5 inci di bagian sisi kanan di bagian bawah untuk berfungsi sebagai lubang untuk kabel yang terhubung ke jam alarm. Terakhir saya menambahkan tiga bukaan melingkar di bagian atas untuk dua bel dan tombol. Bukaan bel memiliki diameter 0,5 in dan bukaan tombol 0,375 in.
Langkah 5: Menyatukannya
Ketika semua bagian dipotong, saya menggunakan jarum suntik dan lem akrilik untuk menyegelnya. Saya menyatukan potongan-potongan itu dan meneteskan lem di antara takik untuk membuat sisi-sisinya menyatu, tetapi bagian atasnya tidak direkatkan.
Langkah 6: Kode
Pengantar:
Proyek ini dikodekan menggunakan bahasa c++ pada software Arduino IDE. Mikrokontroler yang digunakan adalah NodeMCU dengan ESP8266. Untuk proyek ini, kita memerlukan cara untuk mengatur waktu secara akurat, bel berbunyi, sistem alarm untuk menyebabkan alarm berbunyi, dan layar untuk menampilkan semua waktu dan waktu alarm. Untuk kode lengkap lihat tautan ini
Mengimpor Perpustakaan
Hal pertama yang pertama, kita perlu mengimpor perpustakaan yang diperlukan.
#sertakan "RTClib.h"
#include "Wire.h" #include #include #include #include
Inisiasi Variabel
Selanjutnya kita perlu memulai variabel untuk nanti, menetapkan tata letak pin untuk tombol buzzer, mengatur RTC, dan mengatur alamat I2C layar LCD.
LiquidCrystal_I2C lcd (0x27, 20, 4);
const int buzzer1 = 12; const int buzzer2 = 0; tombol const int = 2; RTC_DS3231 rtc; char daysOfTheWeek[7][12] = {"Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu"} int waktu mulai; int waktu aktif; int waktu sebelumnya = 0; char ahours1[3]; char amin1[3]; int jam1 = 0; int min1 = 0; char ahours2[3]; char amin2[3]; int jam2 = 0; int min2 = 0; char ahours3[3]; char amin3[3]; int jam3 = 0; int min3 = 0; int alarm = 0; int ByteDiterima; char diterimaChar; const byte numChars = 32; char diterimaChars[numChars];
Mempersiapkan
Selanjutnya, kita perlu memiliki fungsi yang memulai semua proses yang diperlukan. Dalam fungsi ini, kita perlu menyalakan LCD dan mencetak waktu awal, membuat fungsi yang lebih kecil yang memberikan waktu nyata kepada RTC jika belum memilikinya, dan memulai monitor serial.
batalkan pengaturan() {
#ifndef ESP8266 while (!Serial); #endif if(! rtc.begin()) { Serial.println("Tidak dapat menemukan RTC"); sementara(1); } if (rtc.lostPower()) { Serial.println("RTC kehilangan daya, mari atur waktu!"); rtc.adjust(DateTime(F(_DATE_), F(_TIME_)))) } lcd.init(); lcd.lampu latar(); // membuat Baklight ON. lcd.clear(); // Membersihkan LCD lcd.print("00:00"); //tampilan di LCD setelah unggah kode lcd.setCursor(10, 0); lcd.print("00:00"); lcd.setCursor(0, 1); lcd.print("Waktu"); lcd.setCursor(10, 1); lcd.print("Alarm 1"); lcd.setCursor(0, 3); lcd.print("Alarm 2"); lcd.setCursor(0, 2); lcd.print("00:00"); lcd.setCursor(10, 3); lcd.print("Alarm 3"); lcd.setCursor(10, 2); lcd.print("00:00"); rtc.mulai(); pinMode(tombol, INPUT); //Menetapkan pin untuk tombol silent pinMode(buzzer1, OUTPUT); // set pin untuk output buzzer pinMode(buzzer2, OUTPUT); // set pin untuk keluaran buzzer Serial.begin(9600); Serial.println("Masukkan waktu alarm dalam format HHMM tanpa spasi di antara alarm"); waktu mulai = milis()/1000; }
Menerima data
Sekarang, kita harus dapat menerima waktu alarm. Untuk melakukan itu, kami membuat fungsi untuk menerima data dari monitor serial dan menyimpannya dalam array.
batal recvWithEndMarker() {
statis int ndx = 0; String waktu = Serial.readString(); for(ndx = 0; timein[ndx]; ndx++){ acceptChars[ndx] = timein[ndx]; } acceptChars[ndx] = '\0'; Serial.print(receivedChars); }
Mengatur Alarm
Langkah selanjutnya adalah dapat mengatur alarm. Berikut adalah kode untuk alarm 1. Untuk alarm 2 dan 3 proses yang sama diulang dengan beberapa perubahan angka.
/* Alarm 1*/
recvWithEndMarker(); int h, m; for (h = 0; h < 2; h++) { ahours1[h] = acceptChars[h]; } for (m = 2; m < 4; m++) { amins1[m-2] = acceptChars[m]; } ahours1[h] = '\0'; amins1[m-2] = '\0'; Serial.print(jam1); Serial.print(ams1); jam1 = atoi(jam1); min1 = atoi(amin1); Serial.print(jam1); Serial.print(min1);
Bel/Tombol
Setelah itu selesai, kita perlu membuat bel berbunyi ketika waktu nyata dan waktu alarm sama. Juga dalam langkah ini kami membuat tombol seperti snooze yang menghentikan bel saat Anda menahannya.
/* Tombol Diam */
dalam keheningan; int b; b = digitalBaca(2); if (b == RENDAH) { diam = 1; } else { diam = 0; } /* Mulai Alarm */ if (jam == jam1 && menit == menit1) { alarm = 1; } else if (jam == jam2 && menit == menit2) { alarm = 1; } else if (jam == jam3 && menit == menit3) { alarm = 1; } else { alarm = 0; diam = 0; } if (alarm == 1 && silence == 0) { nada(buzzer1, 4000, 1000); nada (buzzer2, 4000, 1000); penundaan (1000); tidakNada(buzzer1); tidakNada(buzzer2); penundaan (1000); }
Waktu Pencetakan
Terakhir, kita perlu mencetak waktu alarm dan waktu nyata ke layar LCD.
DateTime sekarang = rtc.now();
int jam = (sekarang.jam()); int menit = (sekarang.menit()); /* Waktu alarm dalam format 00:00 */ lcd.setCursor(10, 0); lcd.print(ahours1); lcd.setCursor(13, 0); lcd.print(amins1);lcd.setCursor(0, 2); lcd.print(jam2); lcd.setCursor(3, 2); lcd.print(amins2); lcd.setCursor(10, 2); lcd.print(jam3); lcd.setCursor(13, 2); lcd.print(amins3); /* Menampilkan Waktu dari RTC */ lcd.setCursor(0, 0); lcd.print(jam); lcd.print(":"); lcd.print(menit);
Langkah 7: Elektronik
Ada beberapa bagian elektronik dari proyek ini, seperti yang terlihat di bill of material. Gambar pertama adalah skema elektronik akhir proyek. Gambar kedua adalah desain elektronik terakhir kami. Gambar ketiga adalah proyek kami di tengah-tengah prototipe kedua.
Untuk mulai melampirkan NodeMCU Anda ke ujung papan tempat memotong roti Anda. Anda kemudian harus menghubungkan semua elektronik Anda yang lain ke NodeMCU dan papan tempat memotong roti. Mulailah dengan menghubungkan layar LCD Anda ke pin D1 untuk SCL dan D2 untuk SDA. LCD akan memungkinkan pengguna untuk melihat waktu saat ini dan waktu alarm yang disetel. Sekarang miliki kabel yang menghubungkan buzzer Anda ke pin D3 dan D6. Buzzer akan memungkinkan alarm untuk mengingatkan pengguna ketika waktu yang ditetapkan telah tercapai. Anda sekarang harus memasang tombol untuk memungkinkan alarm dihentikan. Pasang tombol ini ke pin D4. Sekarang Anda akan melampirkan jam Real-time Anda ke papan tempat memotong roti. Hubungkan jam Real-time sehingga menggunakan pin SDA dan SCL yang sama dengan yang digunakan untuk layar LCD.
Langkah 8: Akhir
Jika Anda telah mengikuti informasi yang diberikan proyek Anda mungkin terlihat seperti gambar di atas. Kami berharap Anda beruntung dalam upaya Anda untuk membuat ulang proyek ini dan ketika Anda telah menyelesaikan proyek Anda, kami mendorong Anda untuk berbagi gambar dan komentar dengan kami di komentar. Terima kasih dan semoga sukses rekan-rekan Pembuat.
Direkomendasikan:
Insinyur Sobat Bluetooth Kbd dan Mouse.: 3 Langkah
Engineers Buddy Bluetooth Kbd dan Mouse.: Modul emulator keyboard dan mouse USB Engineers Buddy. Perangkat kecil yang praktis ini, dengan koneksi gigi birunya, mengubah ponsel/tablet Android Anda menjadi remote control nirkabel untuk komputer mana pun. Ini memberi perangkat Android Anda kontrol atas semua perangkat HID
Membangun Sobat Robot Sosial Arduino Cetak 3D: 9 Langkah
Membangun Robot Sosial Arduino Cetak 3D Sobat: Sobat adalah robot sosial arduino Cetak 3D. Dia berinteraksi dengan dunia dengan menggunakan sensor ultrasonik untuk memetakan area terdekatnya. Ketika sesuatu berubah di lingkungannya dia bereaksi. Dia bisa terkejut atau ingin tahu dan terkadang sedikit agresif
Sobat Sirkuit: 14 Langkah (dengan Gambar)
Sobat Sirkuit: Pernahkah Anda bertanya-tanya bagaimana listrik bekerja? Seperti halnya pembuluh darah yang membawa darah ke seluruh tubuh, kabel-kabel dalam suatu rangkaian membawa arus listrik melalui berbagai bagian sistem elektronik. Apa itu sirkuit? Rangkaian adalah lintasan yang menggerakkan arus listrik
Sobat Bartender: Sakelar Kreatif @ Rumah: 6 Langkah
Bartender's Buddy: sebuah @Home Creative Switch: Pernahkah Anda berpikir sendiri saat menjamu tamu di rumah…"Wah - Saya berharap saya punya cara unik untuk menunjukkan kepada tamu saya ketika minuman mereka telah mencapai tingkat minum cangkir pesta yang optimal. .." ?Sekarang Anda bisa mewujudkan keinginan ini, dengan
Sobat Papan Roti Arduino: 12 Langkah
Sobat Papan Roti Arduino: Saya membangun semua sirkuit di papan roti; namun membangun sirkuit yang sama seratus, kali bisa menjadi monoton, jadi saya suka bagian modular untuk membangun prototipe. Sebagian besar sirkuit seperti catu daya 5 volt cukup standar. Papan Roti Arduino Budd