باستخدام وحدة Max485 RS485 مع Raspberry Pi

Using the MAX485 RS485 Module with the Raspberry Pi

ال Max485 تسمح الوحدة النمطية لـ Raspberry Pi بالاتصال باستخدام بروتوكول RS485، والذي يستخدم على نطاق واسع للأتمتة الصناعية ، واتصالات Modbus ، ونقل البيانات التسلسلية الطويلة. سيوضح لك هذا الدليل كيفية الاتصال وتكوين واستخدام وحدة MAX485 RS485 مع Raspberry PI باستخدام بيثون.


ماذا ستحتاج

  1. التوت بي (أي نموذج يحمل دعم GPIO ، على سبيل المثال ، PI 3 ، PI 4)
  2. MAX485 RS485 وحدة
  3. جهاز RS485 (على سبيل المثال ، مستشعر Modbus ، وحدة تحكم صناعية)
  4. الأسلاك الطائر
  5. بيثون مثبت على التوت PI

الخطوة 1: فهم وحدة MAX485

ال Max485 هو TTL إلى RS485 جهاز الإرسال والاستقبال هذا يسمح لـ Raspberry Pi بإرسال وتلقي إشارات RS485.

الميزات الرئيسية:

  • يدعم التواصل نصف Duplex RS485
  • يعمل على 5V قوة (متوافق مع 3.3V المنطق على Raspberry PI)
  • يستخدم TX ، RX ، DE ، و RE دبابيس لمكافحة الاتصال

الخطوة 2: توصيل Max485 إلى Raspberry Pi

MAX485 دبوس التوت بي دبوس وظيفة
VCC 5V (دبوس 2) مزود الطاقة
GND GND (دبوس 6) أرضي
رو GPIO15 (دبوس 10) استلام بيانات RS485 (RX)
دي GPIO14 (PIN 8) نقل البيانات RS485 (TX)
يكرر GPIO18 (PIN 12) تلقي تمكين (منخفضة لتلقي)
دي GPIO18 (PIN 12) تمكين السائق (مرتفع للإرسال)
أ RS485 خط الاتصال بجهاز RS485
ب RS485 B خط الاتصال بجهاز RS485

ملحوظة: ال يكرر و دي يتم التحكم في المسامير معًا بواسطة GPIO18، تمكين أو تعطيل الإرسال.


الخطوة 3: تمكين UART على Raspberry Pi

  1. افتح أداة تكوين Raspberry Pi:

    sudo raspi-config
    
  2. انتقل إلى خيارات الواجهة> المنفذ التسلسلي.

  3. تعطيل وحدة التحكم التسلسلية ولكن تمكين الأجهزة التسلسلية.

  4. أعد تشغيل Raspberry Pi:

    sudo reboot
    
  5. تحقق من أن الجهاز التسلسلي متاح:

    ls /dev/serial*
    

    يجب أن ترى /dev/serial0.


الخطوة 4: تثبيت مكتبات بيثون المطلوبة

  1. قم بتحديث Raspberry Pi:
    sudo apt update && sudo apt upgrade -y
    
  2. تثبيت مكتبة الاتصالات التسلسلية Python:
    pip3 install pyserial
    

الخطوة 5: رمز بيثون للتواصل عبر RS485

رمز بيثون الأساسي لإرسال وتلقي البيانات عبر 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. إنترنت الأشياء وتسجيل البيانات - جمع بيانات المستشعر ونقلها إلى الخوادم السحابية.

استكشاف الأخطاء وإصلاحها

  1. لا اتصال

    • تحقق من اتصالات الأسلاك ، والتأكد خطوط A و B متصلة بشكل صحيح.
    • تحقق من ذلك تم تمكين UART استخدام sudo raspi-config.
    • ضمان يستخدم جهاز RS485 نفس معدل باود كما هو الحال في بيثون.
  2. تم رفض الإذن خطأ

    • أضف المستخدم إلى dialout مجموعة للوصول إلى المنفذ التسلسلي:
      sudo usermod -aG dialout $USER
      sudo reboot
      
  3. أحرف القمامة في البيانات المستلمة

    • تأكد من استخدام كلا الجهازين نفس معدل الباود والإعدادات التسلسلية.
    • تحقق إذا كابلات محمية هناك حاجة لمسافات أطول.

خاتمة

ال وحدة MAX485 يتيح التوت PI من التواصل RS485مما يجعلها مثالية ل الأتمتة الصناعية ، وأجهزة Modbus ، ونقل البيانات التسلسلية طويلة المسافة. باتباع هذا الدليل ، يمكنك إنشاء التواصل ثنائي الاتجاه بين أجهزة Raspberry PI و RS485 لإنترنت الأشياء ومشاريع النظام المدمجة. 🚀

اترك تعليقًا

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.