การตั้งค่า Raspberry Pi 3 เพื่อเชื่อมต่อ RS485

Objective:
ทดสอบการใช้งาน RPi กับ RS485 โดยในการทดสอบจะให้ RPi สื่อสารกับ PC

อุปกรณ์ฝั่ง RPi:
1. Raspberry Pi 3
2. RS485 Shield V3 - Raspberry Pi [2]

อุปกรณ์ฝั่ง PC:
1. RS485 to Serial UART Module [3]
2. USB to UART converter ยี่ห้อ INEX

โปรแกรมฝั่ง PC:
1. โปรแกรมสื่อสารพอร์ต serial ในที่นี้ใช้ serial monitor ใน arduino IDE

การเตรียม RPi:
1. ติดตั้งโปรแกรมเพื่อใช้งานพอร์ด serial ด้วยคำสั่ง
$ sudo apt-get update
$ sudo apt-get install python-dev
$ sudo pip install wiringpi
$ sudo apt-get install python-serial

2. แก้ไขไฟล์ /boot/cmdline.txt โดยเอาข้อความ 
"console = ttyAMA0, 115200 kgdboc = ttyAMA0, 115200" ออก โดยจะเหลือไว้เพียง:

dwc_otg.lpm_enable = 0 console = tty1 root = / dev/mmcblk0p2 rootfstype = ext4 elevator = deadline rootwait

3. ปิดการเข้า console ผ่านพอร์ต serial ด้วยคำสั่ง
$ sudo systemctl disable serial-getty@ttyAMA0.service

4. แก้ไขไฟล์ /boot/config.txt ให้ค่า "enable_uart=1"
5. ปิด RPi
6. เสียบ RS485 Shield ตามรูป

การเตรียม PC
1. ต่อวงจร ตามรูป 

การทดสอบ
1. [PC] เปิด serial monitor
2. [RPi] รัน python serial_test.py
*แก้ไข port = "/dev/ttyAMA0" เป็น port = "/dev/ttyS0" เพราะ AMA0 ถูกใช้สำหรับ bluetooth ใน RPi3 [4]

3. ถ้าเชื่อมต่อได้ ที่ serial monitor จะได้รับข้อความ "please enter the character: "

4. ทดสอบส่งข้อมูลให้ RPi โดยเสียบไฟ 5V เข้าที่ขา DIR ของ RS485 to Serial UART Module
เพื่อให้โมดูลทำงานในโหมดส่ง เพราะโมดูลนี้ทำงานแบบ half duplex
5. ใช้ serial monitor ส่งข้อความให้ RPi ถ้าเชื่อมต่อได้ RPi จะแสดงข้อความที่เราส่งไปให้

อ้างอิง:
[1] http://learn.linksprite.com/raspberry-pi/shield/user-tips-of-rs485-shield-for-rpi/#tab-1388026606950-4-2
[2] https://www.sparkfun.com/products/13706
[3] http://www.thaieasyelec.com/products/interface-modules/rs232-rs422-rs485/rs485-to-serial-uart-module-detail.html
[4] http://www.raspberry-projects.com/pi/programming-in-c/uart-serial-port/using-the-uart

ไฟล์:
serial_test.py

Comments

Popular posts from this blog

การสร้างหน้า google maps ใน ionic slide menu

การใช้ MATLAB ย้ายข้างสมการ