ใช้โมดูล Max485 RS485 กับ Raspberry Pi

Using the MAX485 RS485 Module with the Raspberry Pi

ที่ Max485 โมดูลช่วยให้ Raspberry Pi สื่อสารโดยใช้ไฟล์ โปรโตคอล RS485ซึ่งใช้กันอย่างแพร่หลายสำหรับระบบอัตโนมัติอุตสาหกรรมการสื่อสาร Modbus และการส่งข้อมูลอนุกรมทางไกล คู่มือนี้จะแสดงวิธีการเชื่อมต่อกำหนดค่าและใช้ไฟล์ โมดูล Max485 RS485 พร้อม Raspberry Pi ใช้ Python


สิ่งที่คุณต้องการ

  1. Raspberry Pi (รุ่นใด ๆ ที่มีการสนับสนุน GPIO เช่น PI 3, PI 4)
  2. โมดูล Max485 RS485
  3. อุปกรณ์ RS485 (เช่นเซ็นเซอร์ Modbus, ตัวควบคุมอุตสาหกรรม)
  4. สายจัมเปอร์
  5. ติดตั้ง Python บนราสเบอร์รี่ pi

ขั้นตอนที่ 1: ทำความเข้าใจโมดูล Max485

ที่ Max485 คือ ตัวรับส่งสัญญาณ TTL-to-RS485 ที่อนุญาตให้ Raspberry Pi ส่งและรับสัญญาณ RS485

คุณสมบัติที่สำคัญ:

  • รองรับการสื่อสารแบบครึ่งดูเพล็กซ์ RS485
  • ทำงานบน พลังงาน 5V (เข้ากันได้กับตรรกะ 3.3V บน Raspberry Pi)
  • ใช้ TX, RX, DE และ RE หมุดสำหรับการควบคุมการสื่อสาร

ขั้นตอนที่ 2: เดินสาย Max485 ไปยัง Raspberry Pi

Max485 PIN Raspberry Pi Pin การทำงาน
VCC 5V (พิน 2) แหล่งจ่ายไฟ
gnd GND (พิน 6) พื้น
RO GPIO15 (พิน 10) ข้อมูล RS485 ได้รับ (RX)
DI GPIO14 (พิน 8) RS485 Data Transmit (TX)
อีกครั้ง GPIO18 (พิน 12) รับเปิดใช้งาน (ต่ำที่จะรับ)
เดอ GPIO18 (พิน 12) เปิดใช้งานไดรเวอร์ (สูงในการส่ง)
อัน RS485 A บรรทัด เชื่อมต่อกับอุปกรณ์ RS485
RS485 B สาย เชื่อมต่อกับอุปกรณ์ RS485

บันทึก: ที่ อีกครั้ง และ เดอ พินถูกควบคุมโดย gpio18, การเปิดใช้งานหรือปิดการใช้งานการส่ง


ขั้นตอนที่ 3: เปิดใช้งาน UART บน Raspberry Pi

  1. เปิดเครื่องมือกำหนดค่า Raspberry Pi:

    sudo raspi-config
    
  2. นำทางไปยัง ตัวเลือกอินเตอร์เฟส> พอร์ตอนุกรม.

  3. ปิดการใช้งานคอนโซลอนุกรม แต่ เปิดใช้งานฮาร์ดแวร์อนุกรม.

  4. รีบูตราสเบอร์รี่ pi:

    sudo reboot
    
  5. ตรวจสอบว่า มีอุปกรณ์อนุกรม:

    ls /dev/serial*
    

    คุณควรเห็น /dev/serial0.


ขั้นตอนที่ 4: ติดตั้งไลบรารี Python ที่ต้องการ

  1. อัปเดต Raspberry Pi ของคุณ:
    sudo apt update && sudo apt upgrade -y
    
  2. ติดตั้งไลบรารีการสื่อสารแบบอนุกรม 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

  1. ระบบอัตโนมัติอุตสาหกรรม - สื่อสารกับ PLCs เซ็นเซอร์และคอนโทรลเลอร์โดยใช้ Modbus RTU
  2. การสื่อสารทางไกล - รองรับ RS485 การส่งข้อมูลระยะยาว สูงถึง 1200 เมตร
  3. เครือข่ายหลายอุปกรณ์ - เชื่อมต่ออุปกรณ์หลายตัวบนบัส RS485 เดียวกัน
  4. มิเตอร์พลังงานอัจฉริยะ -อ่านมิเตอร์พลังงานที่เข้ากันได้ของ Modbus
  5. IoT และการบันทึกข้อมูล - รวบรวมข้อมูลเซ็นเซอร์และส่งไปยังคลาวด์เซิร์ฟเวอร์

การแก้ไขปัญหา

  1. ไม่มีการสื่อสาร

    • ตรวจสอบการเชื่อมต่อสายไฟมั่นใจ สาย A และ B เชื่อมต่ออย่างถูกต้อง
    • ตรวจสอบว่า เปิดใช้งาน UART โดยใช้ sudo raspi-config.
    • ตรวจสอบให้แน่ใจว่า อุปกรณ์ RS485 ใช้อัตราการรับส่งข้อมูลเดียวกัน ตามที่ตั้งไว้ใน Python
  2. การอนุญาตถูกปฏิเสธข้อผิดพลาด

    • เพิ่มผู้ใช้ในไฟล์ dialout กลุ่มสำหรับการเข้าถึงพอร์ตอนุกรม:
      sudo usermod -aG dialout $USER
      sudo reboot
      
  3. อักขระขยะในข้อมูลที่ได้รับ

    • ตรวจสอบให้แน่ใจว่าอุปกรณ์ทั้งสองใช้งาน อัตราการรับส่งข้อมูลและการตั้งค่าอนุกรมเดียวกัน.
    • ตรวจสอบว่า สายเคเบิลป้องกัน จำเป็นสำหรับระยะทางไกล

บทสรุป

ที่ โมดูล Max485 ช่วยให้ Raspberry Pi สื่อสารได้มากกว่า RS485ทำให้เหมาะสำหรับ ระบบอัตโนมัติอุตสาหกรรมอุปกรณ์ modbus และการส่งข้อมูลอนุกรมทางไกลในระยะยาว- โดยทำตามคำแนะนำนี้คุณสามารถสร้างได้ การสื่อสารแบบสองทิศทางระหว่างอุปกรณ์ Raspberry Pi และ Rs485 สำหรับโครงการ IoT และระบบฝังตัว 🚀

แสดงความคิดเห็น

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.