General Purpose Input Output (GPIO), Merupakan pin atau tempat yang dapat digunakan sebagai input atau output. Salah cara meng Kontrol GPIO Raspberry Pi dengan Python. Keunggulan scripting dengan python dibanding dengan bash atau yang lainya.
Alasan lainya ialah Python telah menyediakan module module yang beragam dan kode-kode lebih mudah ditulis dan dibaca, sehingga untuk melakukan sesuatu yang komplek dapat dilakukan dengan mudah.
Kekurangannya dengan Python menurut para senior adalah tidak bisa realtime, maksudnya, penggunaan RPi tidak hanya untuk python saja, sehingga python tidak menjadi prioritas utama dalam menjalankan program, dan python merupakan script yang harus dibaca dan diterjemahkan kedalam bahasa mesin setiap kita menjalankan program python.
Jangan terlalu terintimidasi oleh realtime disini, Delay yang terjadi juga tidak lama, untuk melakukan projek yang toleransi waktu satuan detik keterlambatan dan alat-alat yang tingkat kepresisiannya tidak tinggi, kita masih bisa menggunakan python.
Bila kita ingin membuat sesuatu yang tidak perlu realtime, dan melakukan scripting dengan mudah, maka python adalah pilihan yang terbaik.
Mengenal Kontrol GPIO Raspberry Pi dengan Python
Sebelum kita melakukan sesuatu dengan python, kita test dahulu Python GPIO module, apakah telah terinstall apa belum, dengan cara:
- Pada command line atau terminal kita tulis:
[su_note note_color=”#FFFF66″ text_color=”#333333″]sudo python[/su_note]
- Setelah python muncul, kita import module GPIO dengan:
[su_note note_color=”#FFFF66″ text_color=”#333333″]
import RPi.GPIO as gpio
[/su_note]
- Bila tidak terjadi error, maka semuanya baik-baik saja.
Bila mendapatkan error karena tidak adanya module GPIO, kita harus install modulnya terlebih dahulu. Kita keluar dahulu dari python dengan menggunakan perintah ‘exit()‘,
lalu kita masuk ke command line lagi. Kita update terlebih dahulu software RPi kita dengan menggunakan printah :
[su_note note_color=”#FFFF66″ text_color=”#333333″]
sudo apt-get update
[/su_note]
lalu kita install module RPi GPIO nya:
[su_note note_color=”#FFFF66″ text_color=”#333333″]
sudo apt-get install python-rpi.gpio
[/su_note]
dan dilanjutkan lagi dengan mencoba lagi masuk ke python, lalu import GPIO lagi. Bila tidak ada error maka semuanya baik-baik saja.
Kita menggunakan nomor-nomor pin sesuai dengan apa yang telah disediakan atau didesign oleh pabrik. Kita bisa juga menggunakan standar yang lain dengan menggunakan GPIO. setmode(GPIO.BOARD). Mode ini adalah penamaan pin sesuai dengan urutan pin pada RPi board, jadi Pin pertama adalah GPIO1, kedua adalah GPIO2 dan seterusnya.
sehingga script kita menjadi:
[su_note note_color=”#FFFF66″ text_color=”#333333″]
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
[/su_note]
Kita akan menggunakan pin dengan standar pabrik saja yaitu, GPIO.BCM, dimana pin-pin akan menggunakan nama pin standar, yaitu GPIO25 ada pada pin nomor 22.
Untuk menjadikan pin sebagai input atau output digunakan
GPIO.setup([pin],[GPIO.INPUT/GPIO.OUT])
Misal :
[su_note note_color=”#FFFF66″ text_color=”#333333″]
GPIO.setup(25,GPIO.OUT)
[/su_note]
Maka GPIO25 berfungsi sebagai output dari raspberry pi.
Kontrol GPIO Raspberry Pi dengan Python Dalam Digital Input dan Output
Penjelasan fungsi-fungsi untuk mengakses digital I/O
Digital Input
Pin-pin GPIO dapat diprogram untuk menghubungkan Raspberry Pi dengan alat lain. Inputnya tidak hanya dapat dihubungkan dengan tombol2 sederhana, namun juga bisa juga dari alat lain seperti sensor atau data dari komputer lain.
Jika pin dikonfigurasi sebagai Input, dapat digunakan fungsi GPIO.input([pin]) untuk membaca nilai masukkan.
[su_note note_color=”#FFFF66″ text_color=”#333333″]
GPIO.input(18)
[/su_note]
Digital Output
Untuk menuliskan value pin “high” atau “low“, kita gunakan fungsi GPIO.output([pin],[GPIO.LOW, GPIO.HIGH]).
Biar mudah kita lihat contohnya ya, kita menginginkan value pin 18 adalah high, jadi kita bisa menuliskan script:
[su_note note_color=”#FFFF66″ text_color=”#333333″]
GPIO.output(18, GPIO.HIGH)
[/su_note]
Dengan mengisi status pin GPIO.HIGH maka pada output pin 18 akan di set mengeluarkan tegangan 3,3 V, jika GPIO.LOW akan diset menjadi tegangan 0 V. Adapun alternatif status yang bisa kita berikan bisa menggunakan 1, True untuk High 0 atau false untuk Low.
Membuat aplikasi LED Menggunakan Python di Raspberry Pi
Komponen yang digunakan:
- Resistor 220 ohm
- LED
- Kabel jumper
- Projectboard/Breadboard
GPIO3 tersambung ke anoda (Kaki yang panjang )LED (sebaiknya menggunakan resistor resistor 10 ohm sampai 10k ohm). Dan Katoda (yang pendek pada LED) tersambung dengan ground.
Script:
- Masuk ke mode python terlebih dahulu,
[su_note note_color=”#FFFF66″ text_color=”#333333″]
sudo python
[/su_note]
- Lalu kita tulis sourcecode seperti dibawah ini :
[su_note note_color=”#FFFF66″ text_color=”#333333″]
# mengimport library yang diperlukan
import RPi.GPIO as GPIO #library GPIO
import time #library waktu
pin = 3 #GPIO3 yang akan disambungkan ke LED
# membuat fungsi blink
def blink(pin):
GPIO.output(pin,GPIO.HIGH) # menyalakan LED
print(“nyala”)
time.sleep(1) # delay 1 detik
GPIO.output(pin,GPIO.LOW) # mematikan LED
print(“mati”)
time.sleep(1) # delay 1 detik
return
# mengatur mode GPIO apakah model BOARD atau BCM
GPIO.setmode(GPIO.BCM)
GPIO.setup(pin,GPIO.OUT) # “pin” yang dimaksud adalah GPIO3
# mengulang sebanyak 10 kali
for i in range(0,9):
blink(pin)
GPIO.cleanup() #exit
[/su_note]
Membuat Aplikasi SWITCH Menggunakan Python di Raspberry Pi
Membuat aplikasi penggunaan switch
Komponen yang digunakan:
- Pushbutton
- Resistor 220 ohm
- LED
- Kabel jumper
- Projectboard/Breadboard
Script:
- Masuk ke mode python terlebih dahulu,
[su_note note_color=”#FFFF66″ text_color=”#333333″]
sudo python
[/su_note]
- Lalu kita tulis sourcecode seperti dibawah ini :
[su_note note_color=”#FFFF66″ text_color=”#333333″]
# mengimport library yang diperlukan
import RPi.GPIO as GPIO
import time
# mengatur mode GPIO apakah model BOARD atau BCM
GPIO.setmode(GPIO.BCM)
GPIO.setup(3,GPIO.OUT) # GPIO3 sebagai output LED
GPIO.setup(2,GPIO.IN) # GPIO2 sebagai input dari tombol/push
button
# lampu menyala saat pushbutton ditekan
# (lampu menyala bila GPIO2 diberi ground)
while True:
if (GPIO.input(2)==False): # maksud False adalah jika
diberi 0v (ground)
GPIO.output(3,GPIO.HIGH)
print(“nyala”)
else :
GPIO.output(3,GPIO.LOW) #mematikan LED
print(“mati”)
[/su_note]