Anda di halaman 1dari 30

Bikin Sendiri Saklar Rumah dengan Timer

OLEH FEBRIANTO · DIPUBLIKASIKAN 13 DESEMBER 2018 · DI UPDATE 2 AGUSTUS 2020


Saklar teras rumah biasanya kita nyalakan malam hari, sekitar jam 6 sore sampai jam 6 pagi.

Atau ruang tamu ingin dinyalakan jam 5 sore sampai jam 10 malam saja, kemudian nyala lagi pagi jam 4 sampai jam 6.

Sebenarnya ada banyak produk saklar dengan timer yang dijual dipasaran, namun kalo kita bisa bikin sendiri kan keren.. :D selain itu bisa kita atur programnya semau kita

Daftar isi [sembunyikan]

 Komponen

 Rangkaian

 Software

 Instalasi

 Catatan

Komponen
Komponen-komponen yang kita butuhkan sebagai berikut

 Arduino Nano

 Modul TinyRTC

 Modul Relay DPDT 5v 220v

 Charger / power supply 5v

 Breadboard

 Kabel-kabel

Sebenarnya hanya 3 komponen utama saklar lampu dengan timer. RTC, Relay dan Timer
1. RTC Module
RTC atau Real Time Clock module ini berfungsi seperti jam, menyimpan dan penunjuk waktu. Module ini berikut baterainya, sehingga jika mikrokontrollernya kehilangan daya waktunya tidak tereset.
2. Relay
Relay ini fungsinya sebagai saklar elektronik. Sinyal dari tegangan rendah 5V digunakan untuk mengontrol lampu 220V
3. Mikrokontroller atau dalam hal ini Arduino
Mikrokontroller adalah otaknya, dimana sinyal INPUT dari modul RTC berupa waktu akan diolah disini. Dan OUTPUT berupa sinyal digital ke relay dikirimkan sesuai jadwal yang kita buat untuk

menyalakan dan mematikan lampu.

Supaya lebih mudah, mikrokontroller yang kita gunakan adalah Arduino, lebih mudah merangkainya dan lebih mudah memprogramnya.
Dan yang akan kita gunakan sekarang adalah Arduino Nano, baru denger ya? Secara fungsi sama, mirip dengan Uno. Memang tidak sepopuler Arduino Uno, tapi karena bentuknya yang lebih kecil,

harganyapun lebih hemat. 


4. Lain-lain
Komponen tambahan lain yang kita butuhkan adalah breadboard, kabel-kabel, serta power supply 5v untuk arduino bisa diambil dari charger hp yang tidak terpakai.
Breadboard Mini

kabel male-female
kabel jumper breadboard

Rangkaian
Dari komponen-komponen tersebut Kita rangkaikan sebagai berikut:
 RTC modul dihubungkan ke Arduino menggunakan I2C, yaitu pin SDA dan SCL, di Arduino Nano dan Arduino Uno pin SDA adalah A4, pin SCL adalah A5.

Untuk board Arduino yang lain mengikuti tabel dibawah

Board I2C / TWI pins


Uno, Ethernet, Nano A4 (SDA), A5 (SCL)
Mega2560 20 (SDA), 21 (SCL)
Leonardo 2 (SDA), 3 (SCL)
Due 20 (SDA), 21 (SCL), SDA1, SCL1

 Pilih satu pin digital sebagai OUTPUT, disini kita gunakan pin 11 (pastikan sesuai dengan codingan)

 Relay dihubungkan secara PARALEL dengan saklar LAMPU

(-) kelemahannya jika saklar lampu kita nyalakan, maka saklar otomatis ini tidak akan berjalan

(-) lampu tidak dapat dinyalakan secara manual

(+) kelebihan instalasi lebih mudah

(+) lampu masih dapat dinyalakan secara manual


Arduino & module TinyRTC yang sudah terhubung.
Rangkaian siap diinstall

Software
Untuk memprogram arduino dengan RTC ini langkah-langkahnya sebagai berikut:

1. Install Arduino IDE di PC kesayanganmu

2. Install driver Arduino supaya board bisa berkomunikasi dengan PC

3. Tambahkan Library RTC.lib di Arduino IDE, bisa didownload disini

4. Copy source code dibawah,

5. Upload ke Arduino

Berikut source code saklar lampu dengan timer pukul 18 sampai 6 pagi

1 /*
2   Program  : Lampu Teras Otomatis 18 - 6
3   https://ndoware.com
4 */
5  
6 #include <Wire.h>
7 #include <RTClib.h>
8  
9 RTC_DS1307 rtc;
10 const int pinRelay = 11;   // definisikan Relay pada pin digital 11
11  
12 void setup() {            // SETUP: dijalankan sekali.
13   rtc.begin();                   // aktifkan module RTC
14   pinMode(pinRelay, OUTPUT);     // definisikan pinRelay sebagai OUTPUT
15   //Serial.begin(9600);  // #debug, aktifkan komunikasi serial
16 }
17  
18 void loop() {             // LOOP: dijalankan berulang-ulang selama board hidup
19  
20   DateTime now = rtc.now();      // ambil waktu sekarang dari module RTC
21  
22   if ((now.hour() >= 18) || (now.hour() < 6)) {    // kondisi pukul 18 - 6
23     digitalWrite(pinRelay, HIGH);                   // relay HIGH, lampu nyala
24     //Serial.print("Lampu nyala");                  // #debug
25   } else {
26     digitalWrite(pinRelay, LOW);                   // relay LOW, lampu mati
27     //Serial.print("Lampu mati");                  // #debug
28   }
29  
30   /*  
31   // #debug, untuk debugging tampilkan data waktu melalui serial port
32   Serial.print(now.year(), DEC);
33   Serial.print('/');
34   Serial.print(now.month(), DEC);
35   Serial.print('/');
36   Serial.print(now.day(), DEC);
37   Serial.print("   ");
38   Serial.print(now.hour(), DEC);
39   Serial.print(':');
40   Serial.print(now.minute(), DEC);
41   Serial.print(':');
42   Serial.print(now.second(), DEC);
43   Serial.println();
44   */
45   delay(1000);                          // delay 1s
46 }
Copy dan paste program di atas ke Arduino IDE, hubungkan Arduino ke PC, lalu tekan tombol upload.

Jika belum pernah upload program dari Arduino IDE, cek cara uploadnya di project Arduino Flip-flop.
Penjelasan Program

Dari program di atas kita menggunakan library RTClib.h dan Wire.h untuk menghubungkan modul RTC dengan Arduino menggunakan I2C

SETUP

Pada setup() kita tidak perlu mendefine pin-pin untuk koneksi ke TinyRTC.  Menggunakan I2C default pin yang digunakan adalah pin SDA dan SCL, dimana di Arduino Nano ada di pin A4 dan A5.

Hanya perlu menjalankan rtc.begin().

Dan pastikan tidak salah memasang pin, kaki SDA modul TinyRTC ke pin A4 dan SCL ke A5.

Yang perlu diseting adalah pin yang akan kita gunakan sebagai OUTPUT ke relay. Di program ini kita gunakan pin 11. pinMode(pinRelay, OUTPUT); dan sebelumnya konstanta pinRelay ini didefine

sebagai 11, const int pinRelay = 11;

LOOP

Pada loop(), pertama ambil waktu sekarang dari RTC

DateTime now = rtc.now(); membuat object now yang berisi waktu sekarang. 

now.hour() berisi jam. Jam inilah yang kita pakai untuk pembandingan. output jam nya bernilai 0 sampai 24

if ((now.hour() >= 18) || (now.hour() < 6)) {

Kondisi ini dibaca jika jam sekarang lebih besar atau sama dengan jam 18, atau jam sekarang sebelum jam 6.

Artinya kondisi ini akan TRUE  pada pukul 18 – 24 dan 0 – 6

Kamu bisa variasikan kondisi ini tergantung kebutuhanmu, misal hanya pada pukul 4, now.hour() == 4, dan sebagainya.

Pada kondisi TRUE inilah kita hidupkan relay, dengan mengirim sinyal HIGH ke pin 11

digitalWrite(pinRelay, HIGH);

maka otomatis Lampu akan menyala.

sebaliknya jika kita kirim LOW ke pin 11, maka lampu akan mati.
Debugging

Terkadang program tidak berjalan sesuai keinginan, maka perlu dilakukan debug atas program tersebut.

Caranya matikan komentar dengan menghilangkan // atau /* di depan baris dengan tag #debug pada source diatas.

Sambungkan ke pc kemudan buka serial monitor di Arduino IDE untuk melihat apakah tanggal jam sudah benar atau belum.

Instalasi
Untuk instalasi kita pasangkan relay secara paralel dengan saklar lampu. Dan membutuhkan colokan untuk mensuply power Arduino.

Akan memudahkan jika saklar dan colokan berdekatan, seperti foto berikut
Saklar & colokan

Sebaiknya matikan terlebih dahulu sumber listrik dari PLN.

Hati-hati Tegangan Tinggi!!

220V

Buka sekrup saklar dan kendorkan.


Sambungkan kabel dari relay secara paralel ke saklar
Pasang kembali saklar ke rumahnya, dan colokkan Arduino.
Saklar timer sudah siap.

Catatan
Beberapa catatan dari project ini

 Hati-hati dengan tegangan tinggi. Bila tidak ditutup semua, minimal amankan kaki relay yang terhubung ke tegangan tinggi.

 Relay dihubungkan paralel dengan saklar

 kelebihan:

 saklar masih bisa digunakan manual (pada saat arduino OFF)

 lebih mudah uninstalasinya jika sudah tidak dipakai

 kekurangan:

 tidak bisa mematikan manual jika lampu dihidupkan oleh Arduino (solusinya dengan mematikan Arduino)

 saklar otomatis tidak bekerja jika saklar manual dalam keadaan close (selalu hidup)

 Rangkaian ini sangat sederhana, jauh dari sempurna dan masih sangat bisa ditingkatkan lagi kemampuannya. Beberapa ide untuk improvement:

 Tambahkan LCD untuk menampilkan waktu

 Tambahkan tombol untuk mengatur waktu

Demikian proyek lampu timer dengan arduino semoga bisa dicoba, jika kesulitan bisa hubungi di kolom komentar.

Dan semoga teman-teman bisa mendapatkan inspirasi untuk membut yang lebih baik lagi.

Selamat berkarya.

Anda mungkin juga menyukai