Tutorial kali ini akan membahas tentang contoh aplikasi alarm jam digital berbasis waktu yang presisi menggunakan Arduino. Anda dapat dengan mudah membuatnya dengan memanfaatkan library ‘TimeAlarms.h’. Pada artikel sebelumnya, “Membuat Alarm Berdasarkan Waktu dengan Arduino“, telah dijelaskan apa itu library ‘TimeAlarms.h’, apa fungsinya dan apa saja subrutin yang ada di dalamnya. Pada tutorial kali ini kita akan coba memanfaatkan library tersebut untuk membuat aplikasi alarm jam berbasis waktu dengan menggunakan Arduino. Perlu Anda ketahui, bahwa library ‘TimeAlarms.h’ menggunakan subrutin yang ada di library ‘Time.h’ sehingga deklarasi library wajib ada di setiap penggunaan library ‘TimeAlarms.h’. Sedangkan library ‘Time.h’ sendiri adalah library yang digunakan untuk membuat RTC dengan Arduino, jadi Anda sekarang tidak membutuhkan lagi hardware (IC) RTC (Real Time Clock) untuk membuat aplikasi berbasis waktu yang presisi.
Baiklah, untuk kumpulan subrutin (function dan method) yang ada di library ‘TimeAlarms.h’ dan penjelasannya sudah saya jelaskan pada artikel sebelumnya. Anda dapat membacanya terlebih dahulu jika belum mengetahuinya. Kini tiba saatnya untuk mempraktekkannya dalam sebuah program/sketch Arduino untuk lebih memantapkan pemahaman Anda tentang library ini. Sebagai gambaran, contoh aplikasi ini akan memanfaatkan Arduino untuk membuat sebuah ‘jam weker digital’ sederhana yang dapat memicu alarm pada jam yang sudah ditetapkan. Ketika alarmnya terpicu, Arduino akan menyalakan LED sebagai indikatornya.
Seperti biasa buka software IDE Arduino, dan salin sketch di bawah ini. Setelah itu simpan (Save As) dengan nama file sesuka Anda. Berikut sketch-nya
#include <Time.h> #include <TimeAlarms.h> int led = 13; void setup() { Serial.begin(9600); pinMode (led,OUTPUT); digitalWrite (led,LOW); setTime(8,0,0,26,6,15); Alarm.alarmRepeat(8,0,5, AlarmPagi); // alarm tiap 8:1 Alarm.alarmRepeat(dowSaturday,8,10,30,WeeklyAlarm); // alarm tiap hr Sabtu 8:30:30 } void loop(){ //tampilkan jam Serial.print(hour()); Serial.print(":"); Serial.print(minute()); Serial.print(":"); Serial.print(second()); Serial.println(); //delay 1 detik Alarm.delay(1000); } // subrutin yg dipanggil ketika alarm terpicu void AlarmPagi(){ Serial.println("Alarm Pagi terpicu"); digitalWrite (led,HIGH); Alarm.delay (3000); digitalWrite (led,LOW); } void WeeklyAlarm(){ Serial.println("Ini alarm mingguan"); }
Berikut penjelasan dari sketch di atas :
Baris [1 & 3] : deklarasi library yang dibutuhkan dalam Arduino
Baris [7] : deklarasi variabel untuk memudahkan saat mengakses pin ouput (pin 13). Seperti yang telah Anda ketahui pin 13 adalah pin yng telah terhubung dengan LED di papan Arduino. Jadi Anda tidak perlu menambahkan LED eksternal dalam percobaan ini.
Baris [15] : menginisialisasi port Serial. Digunakan untuk mengirim data serial ke laptop/PC sehingga kita dapat melihat data processing di Arduino melalui laptop.
Baris [17] : menginisialisasi port 13 (port LED) sebagai output. Untuk menyalakan/mematikan Anda harus mengeset mode pin ini sebagai OUTPUT.
Baris [19] : mematikan LED
Baris [21] : mengeset waktu saat Arduino pertama kali dinyalakan, dengan format parameter dari kiri ke kanan adalah jam, menit, detik, tanggal, bulan, tahun.
Baris [23 & 26] : mendefinisikan alarm. Untuk penjelasan format parameter dapat Anda baca di sini
Baris [35-45] : memanggil function hour, minute, second dan mengirimnya ke port serial sehingga dapat ditampilkan di jendela Serial Monitor
Baris [49] : delay 1 detik
Baris [57-67] : subrutin ‘AlarmPagi’ yang berisi penyalaan LED selama 3 detik dan pengiriman string ke jendela Serial Monitor. Subrutin ini dipanggil pada baris [23]
Baris [71-75] : subrutin ‘WeeklyAlarm’ yang dipanggil pada baris [25]. Subrutin ini dipanggil setiap hari Sabtu tiap minggunya.
Upload sketch di atas ke papan Arduino Anda (CTRL+U) dan lihatlah hasilnya di jendela Serial Monitor. Di bawah ini adalah tampilan jendela Serial Monitor berdasarkan sketch di atas. Anda dapat membuka jendela ini melalui menu Tools | Serial Monitor
Demikian sedikit contoh aplikasi alarm jam digital menggunakan Arduino. Semoga bermanfaat dan memicu kreativitas Anda untuk membuat aplikasi yang lebih kompleks. Jika ada yang ingin didiskusikan silahkan isi komentar di bawah.
a Technopreneur – writer – Enthusiastic about learning AI, IoT, Robotics, Raspberry Pi, Arduino, ESP8266, Delphi, Python, Javascript, PHP, etc. Founder of startup Indomaker.com
mas,,scema gambar nya bisa di share tidak ya??berikut perangkatnya..trima kasih
skema rangkaian cukup menggunakan board arduino aja. Perangkatnya ya itu aja ….board arduino, kalo contoh di atas pake arduino uno
mas itu gak ada output display ya,brati cuma kebaca di serial monitor aja klo mau cek jam-nya
kalo contoh di atas mmg ga ada output display-nya selain jendela serial monitor di laptop. Kalo mau nambahi display seperti 7 segment atau lcd juga bisa
Bagaimana dgn format waktunya, 24 jam atau 12 jam (am/pm) ?
Terima kasih mas,atas bantuannya.
bisa diatur lewat RTC-nya
mas bisa minta list kaki arduinonya terus ada ga yang bisa pake keypad sama pake rtc
kakinya bisa dipake semua mas kecuali pin 13 buat display led
saya udah pakai scrip yang ini buat alarm + jam digital dengan tampilan LCD, begitu waktunya sesuai dengan settingan alarm, tampilan di LCD tidak berubah, masih menunjukkan jam digitalnya, kira2 ada penambahan scrip kyk gmn mas…?
thank’s
Gan kalo mau nyimpen beberapa waktu di project android itu gimana apa perlu database?
tergantung kebutuhan, bisa pakai database, file config atau bisa memanfaatkan phone contact
misal kita pakai RTC buat timer motor servo gimana ya gan?
cara kerjanya seperti alarm ini
maksudnya gmn? RTC-nya buat bikin delay motor servo gitu?
supaya data tidak riset saat listrik padam bagaimana mas?
data disimpan di eeprom
ada no WA/ pin BB nya bosq supaya lebih mudah konsulatsi atau komunikasi
WA : 081910026910, tp chat japri via WA hanya melayani order, untuk konsultasi/pertanyaan silahkan diposting di kolom komentar, secepatnya saya reply
untuk pembuatan sistem alarm berdasarkan RTC DS1307 apa juga sama saja programnya??
kurang lebih sama mas
mas kalo set alrm nya pake android gmna caranya??
Yang paling mudah pake bluetooth mas.
Coba baca dulu artikel ini http://saptaji.com/2015/07/04/mengendalikan-led-arduino-dari-android-menggunakan-bluetooth/
Mas klo alarm diset tiap jam gmna sketchnya
pake AlarmRepeat aja mas, contohnya ada di artikel di atas
Ass. mas jadi sketch diatas fungsinya mereset arduino setiap hari sabtu jam 8 ya.. mohon maaf baru belajar arduino…
waalaikumsalam wr wb. Bukan mereset ya mas tapi memicu alarm tiap jam 8 tiap harinya.
catatan : di script di atas di define 2 pemicu alarm di jam 8 tiap harinya dan tiap hari sabtu jam 8.10
Asss. Mas jika sketch di atas di gunakan untuk pensaklaran lampu otomatis bisa ga ? Misal kan jam 6 pagi relay off . Sampai jam 6 sore on lagi cara nya bagai mana ya , mohon mf dan terimakasih.
waalaikum slm wr wb.
Q: Mas jika sketch di atas di gunakan untuk pensaklaran lampu otomatis bisa ga ?
A: bisa
Q: Misal kan jam 6 pagi relay off . Sampai jam 6 sore on lagi cara nya bagai mana ya
A: contoh: Alarm.alarmRepeat(6,0,0, AlarmPagi);Â
…. bla bla bla
void AlarmPagi(){
 Serial.println(“Alarm Pagi terpicu”);
 digitalWrite (relay,HIGH);
}
Cuma yang perlu saya tekankan, jika menggunakan sistem diatas, ketika power/tegangan arduino mati, jam digital akan reset kembali jam awal. Jadi lebih menurut saya lebih baik menggunakan tambahan modul RTC (Real Time Clock)
kalau membuat alarm yg menyala sebulan sekali bagaimana ?
bisa kombinasi antara alarmrepeat mingguan (baris 25) dikalikan 4
bisa kasih contoh mas??
pada subrutin yg dipanggil (WeeklyAlarm pada baris 71) tinggal ditambahi script yang menambahkan suatu variabel saat dipanggil. Habis itu tinggal dites, udah bernilai 4 belum? Jika sudah lakukan sesuai kebutuhan dan set variabel jadi 0 kembali, jika belum keluar dari subrutin
Mas mau tanya cara menggabungkan agar singkron rtclib.h dengan timeralarm.h
Soalnya dilihat tidak singkro di coba serial println ke serial monitor mas.terimakasih
ga paham dengan pertanyaannya?
Mas mau tanya cara menggabungkan agar singkron rtclib.h dengan timeralarm.h….
Soalnya dilihat tidak singkron di coba serial println ke serial monitor mas.terimakasih
mas saya tanya kalo kode alarm.alarmRepeat(8,0,5 Alarmagi); di perbanayak mas.. apa masih bisa mas. kemaren saya nyobak sampek 12 yang bisa hanya 6 itu mas.. ya apa mas…
kemungkinan SRAM nya ga mencukupi,coba upgrade ke arduino mega