Senin, 20 Maret 2017

MENGIRIM DAN MENERIMA DATA MELALUI SERIAL UART (TX RX) RASPBERRYPI ke w

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 :
  1. Install python Serial dengan mengetikkan perintah :
    sudo apt-get install python-serial
  1. 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
  1. 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
      Menjadi seperti ini :
  1. dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
  1. Reboot Raspberry dengan mengetikkan perintah berikut :
    sudo shutdown –r now
  1. 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


1 komentar:

  1. Utk menyimpan data serial hasil bacaan sensor dari ardu keraspi gimana ya kak?

    BalasHapus