Dalam postingan kali ini akan dibahas bagaimana membuat jam alarm berbasis Arduino. Menyambung postingan sebelumnya bagaimana kita mekangses RTC dam menampilkan jam pada serial monitor.
Sebagai referensi waktu untuk jam alarm ini tentunya kita menggunakan RTC (RTC DS3231), dan sebagai penanda alarm kita menggunakan buzzer.
Apa saja komponen / modul yang digunakan?
- Arduino Board (UNO / NANO)
- RTC DS3231
- BUZZER
- Transistor BC547
- Dioda 1N4007
- Resistor 1K
- Bread Board
- Kabel Jumper
Sebelum melakukan proses pemrograman, silahkan membuat rangkaian seperti gambar berikut :
Untuk membulai pemrograman, tentunya kita siapkan library Arduino yang berhubungan dengan program yang kita buat, berikut library yang digunakan :
RTClib.h (Download)
Easybuzzer.h (Download)
Pastikan library tersebut sudah ter-Install pada software Arduino IDE, dan upload sketch program berikut:
#include "RTClib.h"
#include
RTC_DS3231 rtc;
char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
int Buzzer = 6;
int Tombol = 7;
int Alarm = 0;
//SET ALARAM(24 HOUR FORMAT):
const int Jam = 5;
const int Menit = 0;
const int Detik = 0;
unsigned long WaktuMillis = 0;
void setup() {
Serial.begin(9600);
rtc.begin();
EasyBuzzer.setPin(Buzzer);
pinMode (Tombol, INPUT);
digitalWrite (Tombol, LOW);
}
void loop() {
EasyBuzzer.update();
DateTime now = rtc.now();
if (millis() - WaktuMillis >= 1000){
WaktuMillis = millis();
Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
Serial.print(" (");
Serial.print(daysOfTheWeek[now.dayOfTheWeek()]);
Serial.print(") ");
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();
}
switch (Alarm){
case 0:
//
break;
case 1:
tone1();
delay(50);
tone2();
delay(50);
break;
}
if (now.hour() == Jam && now.minute() == Menit && now.second()== Detik){
Alarm = 1;
Serial.println("ALARM ON!!");
}
if(digitalRead(Tombol) == HIGH){
Alarm = 0;
}
}
void tone1(){
EasyBuzzer.singleBeep(3000, 50);
delay(50);
EasyBuzzer.stopBeep();
}
void tone2(){
EasyBuzzer.singleBeep(5000, 50);
delay(50);
EasyBuzzer.stopBeep();
}
Untuk melakukan seting waktu alaram yang kita inginkan, silahkan ubah nilai pada baris program berikut:
//SET TIME (24 HOUR FORMAT):
const int Jam = 5; << Ganti 5 dengan jam yang diinginkan
const int Menit = 0; << begitu juga dengan menit, dan
const int Detik = 0; << detik
const int Jam = 5; << Ganti 5 dengan jam yang diinginkan
const int Menit = 0; << begitu juga dengan menit, dan
const int Detik = 0; << detik
Setelah mekakukan seting waktu alarm dan upload sketch program, silahkan buka serial monitor untuk menampilkan waktu dan informasi alarm jika alarm on.
Sekian....Semoga bermabfaat.
0 comments:
Posting Komentar