Daftar Isi:

Sobat Pagi: 8 Langkah
Sobat Pagi: 8 Langkah

Video: Sobat Pagi: 8 Langkah

Video: Sobat Pagi: 8 Langkah
Video: Perasaan Lucinta Luna Setelah Lakukan Operasi Kembali | PAGI PAGI AMBYAR (18/8/22) P1 2024, Juli
Anonim
Image
Image

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

Sketsa dan Bahan
Sketsa dan Bahan

Ketika kami mencoba memecahkan masalah, kami menggunakan metode tulang ikan untuk menghasilkan ide dan menghasilkan jam alarm kami.

Langkah 2: Sketsa dan Bahan

Sketsa dan Bahan
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

Membuat Casing Luar
Membuat Casing Luar
Membuat Casing Luar
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

Laser Memotong Casing Luar
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

Menyatukannya
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

Elektronik
Elektronik
Elektronik
Elektronik
Elektronik
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

Terakhir
Terakhir

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: