การตั้งค่า Raspberry Pi 3 เพื่อเชื่อมต่อ RS485
Objective:
อุปกรณ์ฝั่ง RPi:
ทดสอบการใช้งาน RPi กับ RS485 โดยในการทดสอบจะให้ RPi สื่อสารกับ PC
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
อ้างอิง:
[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
ไฟล์:
serial_test.py
Comments
Post a Comment