เดอะ MAX485 โมดูลช่วยให้ Raspberry Pi สามารถสื่อสารโดยใช้ โปรโตคอล RS485, ซึ่งถูกใช้อย่างแพร่หลายสำหรับระบบอัตโนมัติในอุตสาหกรรม การสื่อสาร Modbus และการส่งข้อมูลอนุกรมระยะไกล คู่มือนี้จะแสดงวิธีการเชื่อมต่อ ตั้งค่า และใช้งาน MAX485 โมดูล RS485 กับ Raspberry Pi โดยใช้ Python.
สิ่งที่คุณต้องมี
- Raspberry Pi (รุ่นใดก็ได้ที่รองรับ GPIO เช่น Pi 3, Pi 4)
- MAX485 โมดูล RS485
- อุปกรณ์ RS485 (เช่น เซ็นเซอร์ Modbus, คอนโทรลเลอร์อุตสาหกรรม)
- สายจัมเปอร์
- ติดตั้ง Python แล้ว บน Raspberry Pi
ขั้นตอนที่ 1: ทำความเข้าใจ โมดูล MAX485
MAX485 คือ ทรานซีฟเวอร์แปลงสัญญาณ TTL เป็น RS485 ที่ช่วยให้ Raspberry Pi สามารถส่งและรับสัญญาณ RS485 ได้.
คุณสมบัติเด่น:
- รองรับการสื่อสาร RS485 แบบ half-duplex
- ทำงานบน ไฟเลี้ยง 5V (เข้ากันได้กับลอจิก 3.3V บน Raspberry Pi)
- การใช้งาน TX, RX, DE, และ RE ขาสำหรับการควบคุมการสื่อสาร
ขั้นตอนที่ 2: การต่อสาย MAX485 เข้ากับ Raspberry Pi
| ขา MAX485 | พิน Raspberry Pi | ฟังก์ชัน |
|---|---|---|
| VCC | 5V (ขา 2) | แหล่งจ่ายไฟ |
| GND | GND (ขา 6) | พื้น |
| RO | GPIO15 (ขา 10) | การรับข้อมูล RS485 (RX) |
| DI | GPIO14 (ขา 8) | RS485 การส่งข้อมูล (TX) |
| RE | GPIO18 (ขา 12) | เปิดใช้งานการรับ (LOW เพื่อรับ) |
| DE | GPIO18 (ขา 12) | เปิดใช้งานไดรเวอร์ (HIGH เพื่อส่ง) |
| A | สาย A ของ RS485 | เชื่อมต่อกับอุปกรณ์ RS485 |
| B | สาย B ของ RS485 | เชื่อมต่อกับอุปกรณ์ RS485 |
หมายเหตุ: เดอะ RE และ DE พินถูกควบคุมพร้อมกันโดย GPIO18, การเปิดหรือปิดการส่งข้อมูล.
ขั้นตอนที่ 3: เปิดใช้งาน UART บน Raspberry Pi
-
เปิดเครื่องมือกำหนดค่า Raspberry Pi:
sudo raspi-config -
ไปที่ ตัวเลือกอินเทอร์เฟซ > พอร์ตอนุกรม.
-
ปิดใช้งานคอนโซลอนุกรมแต่ เปิดใช้งานฮาร์ดแวร์พอร์ตอนุกรม.
-
รีบูต Raspberry Pi:
sudo reboot -
ตรวจสอบให้แน่ใจว่า อุปกรณ์แบบอนุกรมพร้อมใช้งาน:
ls /dev/serial*คุณควรเห็น
/dev/serial0.
ขั้นตอนที่ 4: ติดตั้งไลบรารี Python ที่จำเป็น
- อัปเดต Raspberry Pi ของคุณ:
sudo apt update && sudo apt upgrade -y - ติดตั้งไลบรารีสำหรับการสื่อสารแบบอนุกรมของ Python:
pip3 install pyserial
ขั้นตอนที่ 5: โค้ด Python สำหรับสื่อสารผ่าน RS485
โค้ด Python พื้นฐานสำหรับการส่งและรับข้อมูลผ่าน RS485
import serial
import RPi.GPIO as GPIO
import time
# Define GPIO pin for RE/DE control
RS485_CONTROL = 18
# Set up GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(RS485_CONTROL, GPIO.OUT)
# Configure the serial connection
ser = serial.Serial(
port='/dev/serial0', # Raspberry Pi UART port
baudrate=9600, # Set baud rate to match RS485 device
timeout=1
)
def send_data(data):
GPIO.output(RS485_CONTROL, GPIO.HIGH) # Enable transmission
time.sleep(0.01) # Small delay before sending
ser.write(data.encode()) # Send data as bytes
time.sleep(0.01) # Small delay to ensure data is sent
GPIO.output(RS485_CONTROL, GPIO.LOW) # Enable receiving
def receive_data():
GPIO.output(RS485_CONTROL, GPIO.LOW) # Enable reception
data = ser.readline().decode('utf-8').strip()
return data
try:
while True:
send_data("Hello RS485 Device!\n")
print("Data sent!")
# Wait for a response
response = receive_data()
if response:
print(f"Received: {response}")
time.sleep(2)
except KeyboardInterrupt:
print("Exiting...")
finally:
ser.close()
GPIO.cleanup()
ขั้นตอนที่ 6: การประยุกต์ใช้การสื่อสาร RS485 กับ Raspberry Pi
- ระบบอัตโนมัติในอุตสาหกรรม – สื่อสารกับ PLC, เซ็นเซอร์ และตัวควบคุม โดยใช้ Modbus RTU
- การสื่อสารระยะไกล – รองรับ RS485 การส่งข้อมูลระยะไกล สูงสุดถึง 1200 meters.
- เครือข่ายหลายอุปกรณ์ – เชื่อมต่ออุปกรณ์หลายเครื่องบนบัส RS485 เดียวกัน.
- มิเตอร์พลังงานอัจฉริยะ – อ่านมิเตอร์พลังงานที่รองรับ Modbus.
- IoT และการบันทึกข้อมูล – รวบรวมข้อมูลจากเซ็นเซอร์และส่งไปยังเซิร์ฟเวอร์บนคลาวด์
การแก้ไขปัญหา
-
ไม่มีการสื่อสาร
- ตรวจสอบการเชื่อมต่อสายไฟ โดยให้แน่ใจว่า ไลน์ A และ B เชื่อมต่ออย่างถูกต้อง.
- ตรวจสอบว่า เปิดใช้งาน UART แล้ว การใช้
sudo raspi-config. - ให้แน่ใจว่า อุปกรณ์ RS485 ใช้บอดเรตเดียวกัน ตามที่ตั้งค่าใน Python.
-
ข้อผิดพลาด: ปฏิเสธการอนุญาต
- เพิ่มผู้ใช้ไปยัง
โทรออกกลุ่มสำหรับการเข้าถึงพอร์ตอนุกรม:sudo usermod -aG dialout $USER sudo reboot
- เพิ่มผู้ใช้ไปยัง
-
อักขระเพี้ยนในข้อมูลที่ได้รับ
- ตรวจให้แน่ใจว่าอุปกรณ์ทั้งสองใช้ บอดเรตและการตั้งค่าพอร์ตอนุกรมเดียวกัน.
- ตรวจสอบว่า สายเคเบิลแบบมีชีลด์ จำเป็นสำหรับระยะทางที่ไกลกว่า.
บทสรุป
เดอะ โมดูล MAX485 ช่วยให้ Raspberry Pi สื่อสารผ่าน RS485, ทำให้เหมาะสำหรับ ระบบอัตโนมัติอุตสาหกรรม, อุปกรณ์ Modbus, และการส่งข้อมูลแบบอนุกรมระยะไกล. โดยทำตามคู่มือนี้ คุณสามารถจัดตั้ง การสื่อสารแบบสองทิศทางระหว่าง Raspberry Pi และอุปกรณ์ RS485 สำหรับโครงการ IoT และระบบฝังตัว. 🚀
