Interfacing Saklar Digital/Relay di Raspberry Pi Menggunakan Python 3
Aditya Suranata - 30 Mei 2016 15:39:11 5
Apa Itu Relay?
Relay adalah saklar yang dioperasikan secara elektronik/digital. Bedanya dengan saklar biasa adalah, jika saklar biasa dioperasikan dengan cara ditekan dengan tangan, relay dioperasikan dengan memberikan sebuah tegangan pemicu.
Relay digunakan ketika kita ingin mengontrol sebuah sirkuit/rangkaian elektronik yang memiliki arus lebih besar, seperti misalnya arus PLN di rumah kita. Contohnya, pada mikrokontroler yang beroperasi pada tegangan searah yang sangat kecil sekitar 3Volt hingga 5Volt, ketika kita ingin menghidupkan dan mematikan lampu yang menggunakan tegangan PLN 220Volt AC maka kita gunakan relay.
Bagaimana cara kerja Relay?
Ada banyak jenis relay, namun yang kita bicarakan disini adalah salah satu relay yang sering digunakan pada proyek elektronika arus rendah seperti mikrokontroler, single-board computer dan sebagainya.
Relay pada jenis ini bekerja dengan cara memanfaatkan sinyal input dari rangkaian pengontrol. Misalnya Arduino, ketika Arduino ingin menyalakan lampu, maka Arduino akan mengirim sinyal HIGH (5Volt) ke Pin kontrol relay, dan ketika relay menerima sinyal HIGH maka dia akan menutup sirkuit dari rangkaian terkontrol (dalam hal ini adalah berfungsi sebagai saklar lampu) dan hasilnya lampu pun akan menyala. Ketika Arduino ingin lampunya mati, maka pinnya akan diset ke sinyal LOW (0Volt), dan sebaliknya relay pun akan membuka rangkaian terkontrol yang artinya lampu akan mati.
Gambar diatas adalah salah satu contoh module relay yang banyak digunakan pada proyek berbasis mikrokontroler dan single-board computer. Modul tersebut memiliki dua relay (kotak warna biru).
Interfacing Relay di Raspberry Pi Menggunakan Python 3
Karena relay hanya mengerti dua jenis sinyal, yaitu sinyal HIGH dan sinyal LOW, maka untuk mengontrolnya sangatlah mudah. Pada tulisan ini kita akan menggunakan Raspberry Pi dengan Python 3 untuk mengontrollnya.
Pengkabelan Relay di Raspberry Pi
Pada contoh ini, saya menggunakan dua relay dalam satu modul, yang artinya saya memerlukan total empat pin pada Raspberry:
1. Pin kontrol Relay 1 di GPIO 17
2. Pin kontrol Relay 2 di GPIO 18
3. VCC (5Volt)
4. GND (Ground)
2. Pin kontrol Relay 2 di GPIO 18
3. VCC (5Volt)
4. GND (Ground)
Letak masing-masing pin bisa dilihat di bagan GPIO Raspberry Pi dibawah ini:
Berikut adalah gampar Raspberry Pi saya yang telah terpasang modul relay tersebut, dan sebuah sensor suhu digital type DS18B20.
Kode Program Modul Relay di Raspberry dengan Python 3
Pertama pastikan kita telah memiliki library GPIO terbaru di Python 3. Install/Update dengan perintah berikut:
$ sudo apt-get install python3-rpi.gpio -y
Kemudian buka Python 3 untuk memastikan relay telah terhubung dengan baik:
$ sudo python 3
Kemudian ketik perintah berikut:
>>> import RPi.GPIO as GPIO
>>> GPIO.setmode(GPIO.BCM)
>>> GPIO.setup(17, GPIO.OUT)
>>> GPIO.setup(18, GPIO.OUT)
>>> GPIO.output(17,GPIO.HIGH) #Relay 17 akan menyala
>>> GPIO.output(18,GPIO.HIGH) #Relay 18 akan menyala
>>> GPIO.output(17,GPIO.LOW) #Relay 17 akan padam
>>> GPIO.output(18,GPIO.LOW) #Relay 18 akan padam
>>> GPIO.setmode(GPIO.BCM)
>>> GPIO.setup(17, GPIO.OUT)
>>> GPIO.setup(18, GPIO.OUT)
>>> GPIO.output(17,GPIO.HIGH) #Relay 17 akan menyala
>>> GPIO.output(18,GPIO.HIGH) #Relay 18 akan menyala
>>> GPIO.output(17,GPIO.LOW) #Relay 17 akan padam
>>> GPIO.output(18,GPIO.LOW) #Relay 18 akan padam
Bagaimana jika kita ingin membaca relay, atau membaca kondisi relay apakah relay dalam kondisi hidup atau dalam kondisi mati?
Caranya adalah sebaliknya, ketika kita menulis perintah ke relay kita menggunakan method output, maka untuk membaca kita menggunakan method input, sehingga perintahnya menjadi
>>> statusRelay17 = GPIO.input(17)
>>> print("Status dari relay 17 adalah ".format(statusRelay17)) #0 = mati 1 = hidup
Status dari relay 17 adalah 0
>>> print("Status dari relay 17 adalah ".format(statusRelay17)) #0 = mati 1 = hidup
Status dari relay 17 adalah 0
Demikian, hanya menggunakan empat baris kode dasar kita sudah bisa mengontrol relay. Untuk menyimpan kode tersebut ke dalam script Python cukup salin baris demi baris dan simpan ke file dengan nama relay.py:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| #Muat modul RPi.GPIO import RPi.GPIO as GPIO #Setting metode penomeran menjadi standar Broadcom GPIO.setmode(GPIO.BCM) #Setting mode kerja pin 17 & 18 ke output GPIO.setup( 17 ) GPIO.setup( 18 ) #Nyalakan relay 17 & 18 GPIO.output( 17 , GPIO.HIGH) GPIO.output( 18 , GPIO.HIGH) #Matikan relay 17 & 18 GPIO.output( 17 , GPIO.LOW) GPIO.output( 18 , GPIO.LOW) <tt>statusRelay17 = GPIO. input ( 17 ) print ( "Status dari relay 17 adalah " . format (statusRelay17)) #0 = mati 1 = hidup</tt> |
Selanjutnya, jalankan script dengan perintah:
$ sudo python3 relay.py
Kode dasar ini bisa dikembangkan tanpa batas, seperti misalnya dalam proyek utama dari tulisan ini untuk mengontrol perangkat rumah melalui antarmuka web di perangkat apa saja termasuk Android, iOS, Windows dan sebagainya yang memiliki web browser moderen.
Semoga bermanfaat, silahkan kirim komentar atau gabung ke Forum Miarana untuk berdiskusi lebih lanjut mengenai tulisan ini.
Tidak ada komentar:
Posting Komentar