Komunikasi serial sering digunakan untuk mengirim data melalui dua board yang berbeda ataupun sama. Sebagai contohnya pengiriman data string dari raspberry ke arduino ataupun dari arduino ke avr board. Komunikasi serial ini tidak lepas dari penggunaan pin tx rx. Kebanyakan board sudah dilengkapi fasilitas tersebut.
TX merupakan singkatan dari Transmitter (pengirim), sedangkan RX merupakan singkatan dari Receiver (penerima). Semisal terdapat contoh kasus, Arduino akan mengirim data yang telah diperoleh dari sensor. Data-data sensor tersebut akan diproses dan dimonitoring didalam Raspberry. Pengiriman dari Arduino ke Raspberry ini menggunakan komunikasi serial. Maka yang harus dilakukan adalah pin TX pada Arduino disambungkan ke pin RX pada Raspberry, karena Arduino merupakan pengirim data dan Raspberry merupakan penerima.
ARDUINO (tx) ———————————– (rx) RASPBERRY
Gambar dibawah ini merupakan pin GPIO yang ada pada RaspberryPi Revision 2 :
Siapkan juga software Hercules di Windows untuk testing kirim dan terima data
Berikut merupakan konfigurasi untuk menggunakan serial UART :
Berikut merupakan konfigurasi untuk menggunakan serial UART :
- Install python Serial dengan mengetikkan perintah :
sudo apt-get install python-serial
- Ketikkan sudo nano /etc/inittab
Cari script ini :
#Spawn a getty on Raspberry Pi serial line
T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
Berikan “#” sehingga script tersebut menjadi komentar. Hasilnya :
#Spawn a getty on Raspberry Pi serial line
#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
- Ketikkan sudo nano /boot/cmdline.txt
Ubah script berikut :
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
- dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
- Reboot Raspberry dengan mengetikkan perintah berikut :
sudo shutdown –r now
- Setelah selesai di reboot maka UART siap digunakan.
Tulis script python seperti berikut :
- Script untuk mengirim data, simpan dengan nama kirim.py :
#kirim.py
import serial
import time
ser = serial.Serial(“/dev/ttyAMA0”,baudrate=9600,timeout=3.0)
while True:
char = raw_input(“Masukkan Kata : “)
ser.write(char)
print(“>> Kirim data”)
time.sleep(1)
|
- Script untuk menerima data, simpan dengan nama terima.py :
#terima.py
import serial
import os
ser = serial.Serial(“/dev/ttyAMA0”,baudrate=9600,timeout=1.0)
while True:
try:
status = ser.readline()
if status == “”:
pass
elif status == “clear”:
os.system(‘clear’)
else:
print(“! “ + status)
except:
pass
|
Setelah script pyton di atas kita simpan di Raspberry, sekarang kita buka software hercules di windows. Lihat gambar di bawah ini :
1. Pilih tab Serial
2. Tentukan COM berapa yang terbaca di laptop/PC anda (untuk menentukan COM lihat di driver anda, dengan cara klik kanan pada my komputer-pilih manage-pilih device manager-lihat di driver Ports (COM & LPT))
3. Klik open untuk memulai program (lihat gambar di bawah)
Setelah semua persiapan di Windows selesai kita kembali lagi ke Raspberry. Pertama kita akan tes kirim data dari Rassberry ke Windows.
1. Run script python kirim.py di Raspbeerry maka akan muncul tampilan seperti gambar di bawah ini, tuliskan "selamat belajar raspberry"
2. Maka akan muncul tampilan di software hercules seperti gambar berikut
c
Selanjutnya kita akan mulai tes mengirim data dari windows ke raspberry, tulis kalimat berikut "TES KE RASPBERRY" di kolom send (lihat gambar di bawah), sebelumnya kita Run dulu script python terima.py di Raspberry
Maka akan muncul tampilan di Raspberry seperti gambar berikut
Itu artinya kita telah berhasil mengrim packet data dariWindows ke Rasberry