Jam Alarm Pintar Tergerak Gerakan: Bangun untuk Baik
Komponen dan Perlengkapan
Arduino Nano Every
Mikrokontroler kecil dan hemat daya yang sempurna untuk proyek ini. Variasi Arduino mana pun berfungsi.
×
1
Modul Jam (DS3231)
×
1
Sensor Gerakan PIR HC-SR501
Sensor gerakan yang terpicu saat Anda bergerak di depannya.
×
1
Buzzer
×
1
Aplikasi dan Layanan Online
Arduino IDE
Tentang Proyek Ini
Keluar dari tempat tidur bisa menjadi tantangan nyata. Jam alarm pintar tergerak gerakan ini memastikan Anda tetap bangun dengan mendeteksi gerakan setelah Anda menekan snooze. Jika Anda kembali ke tempat tidur, alarm me-reset, memaksa Anda untuk tetap terjaga selama periode tertentu sebelum alarm berhenti.
Rangkaian
Kumpulkan komponen berikut:
Modul jam real-time DS3231
Sensor gerakan PIR HC-SR501
Buzzer (piezo 5V mana pun)
Tombol push momentary
Arduino Nano Every (atau papan Arduino kompatibel mana pun)
Rangkaikan komponen sebagai berikut:
Hubungkan pin negatif buzzer ke GND.
Hubungkan pin positif buzzer ke D11.
Hubungkan pin ground tombol ke GND.
Hubungkan pin sinyal tombol ke D9.
Hubungkan VCC HC-SR501 ke 5V.
Hubungkan output HC-SR501 ke D7.
Hubungkan GND HC-SR501 ke GND.
Hubungkan GND DS3231 ke GND.
Hubungkan VCC DS3231 ke 5V.
Hubungkan SDA DS3231 ke SDA (pin A4 pada Nano).
Hubungkan SCL DS3231 ke SCL (pin A5 pada Nano).
Kode
Unduh file ZIP library DS3231 dari bagian Kode dan tambahkan ke Arduino IDE melalui Sketch > Include Library > Add .ZIP Library.
Unggah sketsa berikut. Setelah unggah pertama, komentari baris yang mengatur tanggal dan waktu sehingga RTC mempertahankan waktu yang benar saat reset.
Atur HC-SR501 ke mode trigger berulang dengan menempatkan jumper pemilihan trigger sesuai.
Sesuaikan halus jeda dan sensitivitas. Sensitivitas maksimum dengan jeda minimal bekerja terbaik: ini memastikan sensor tetap aktif cukup lama untuk mendeteksi Anda, tetapi tidak terlalu lama sehingga mengabaikan kembali ke tempat tidur.
Rangkaian Kompak
Setelah menguji prototipe breadboard, las komponen langsung ke Arduino Nano Every untuk membuat alarm berukuran saku.
Buat casing ringan dari kayu balsa 3 mm (dimensi 55 mm × 35 mm × 40 mm). Casing mencakup pembukaan besar untuk sensor PIR, slot untuk kabel micro-USB, dan lubang untuk buzzer.
Produk akhir:
Kode
Kode Arduino Jam Alarm
Library Jam (DS3231)
Kode Arduino Jam AlarmArduino
#include <Wire.h> #include <DS3231.h> DS3231 clock; RTCDateTime dt; int button = 9; int pirPin = 7; // Input untuk HC-SR501 int pirValue; // Tempat untuk menyimpan nilai PIR yang dibaca //-------------------------------------- int set_hour = 7; int set_minute = 0; //-------------------------------------- void setup() { clock.begin(); pinMode(button, INPUT_PULLUP); pinMode(LED_BUILTIN, OUTPUT); //clock.setDateTime(__DATE__, __TIME__); // !!SETELAH UNGGAH PERTAMA ANDA HARUS MENGOMENTARI BARIS INI. LAINNYA ANDA AKAN MENDAPATKAN WAKTU SALAH!! pinMode(pirPin, INPUT); } void alarm(int minute){ bool button_pressed = false; bool awake = false; bool movement = false; while(!button_pressed){ //alarm menyala selama tombol tidak ditekan for(int i = 0; i < 4; i++){ tone(11, 523, 100); delay(100); tone(11, 784, 50); for(int i = 0; i < 20; i++){ if(digitalRead(button) == LOW){ button_pressed = true; awake = true; dt = clock.getDateTime(); minute = dt.minute; } delay(65); } } } dt = clock.getDateTime(); minute = dt.minute; while(awake){ movement = false; dt = clock.getDateTime(); for(int i = 0; i < 30; i++){ if(digitalRead(pirPin)){movement = true;} } digitalWrite(LED_BUILTIN, movement); if(!pirValue){ delay(5000); for(int i = 0; i < 40; i++){ if(digitalRead(pirPin)){movement = true;} } if(!movement){ alarm(minute); //jika tidak ada gerakan terdeteksi terlalu lama alarm me-reset } } if(abs(dt.minute - minute) >= 1){ //atur periode waktu di mana Anda harus di depan sensor tone(11, 698, 50); delay(100); tone(11, 698, 50); digitalWrite(LED_BUILTIN, 0); awake = false; } delay(100); } } void loop() { dt = clock.getDateTime(); if(set_minute == dt.minute && set_hour == dt.hour){ alarm(set_minute); } delay(10000); }
Library JamArduino
Ini adalah file ZIP untuk library DS3231. Unduh dan tambahkan ke library Anda melalui Arduino → Sketch → Include Library → Add .ZIP Library.
Tidak ada pratinjau (hanya unduhan).
Skematik
Hubungkan 5V pada Arduino ke rel positif dan GND ke rel negatif pada breadboard.