الحصول على تسليم مجانا على جميع الطلبات أكثر من 20 جنيه!

باستخدام وحدة 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 Module
  3. جهاز RS485 (مثل مستشعر Modbus، أو متحكم صناعي)
  4. أسلاك توصيل (Jumper Wires)
  5. تثبيت Python على Raspberry Pi

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

الـ MAX485 هو مُحوّل TTL إلى RS485 يُتيح لـ Raspberry Pi إرسال واستقبال إشارات RS485.

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

  • يدعم اتصال RS485 بنصف الإرسال (half-duplex)
  • يعمل بجهد 5V power (متوافق مع منطق 3.3V على Raspberry Pi)
  • يستخدم دبابيس TX, RX, DE, و RE للتحكم في الاتصال

الخطوة 2: توصيل MAX485 مع Raspberry Pi

دبوس MAX485 دبوس Raspberry Pi الوظيفة
VCC 5V (Pin 2) مصدر طاقة
GND GND (Pin 6) الأرضي
RO GPIO15 (Pin 10) استقبال بيانات RS485 (RX)
DI GPIO14 (Pin 8) إرسال بيانات RS485 (TX)
RE GPIO18 (Pin 12) تمكين الاستقبال (LOW للاستقبال)
DE GPIO18 (Pin 12) تمكين المُرسل (HIGH للإرسال)
A خط RS485 A اتصل بجهاز RS485
B خط RS485 B اتصل بجهاز RS485

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


الخطوة 3: تفعيل UART على Raspberry Pi

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

    sudo raspi-config
    
  2. انتقل إلى Interface Options > Serial Port.

  3. قم بتعطيل وحدة تحكم السيريال (serial console) لكن فعّل العتاد التسلسلي (serial hardware).

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

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

    ls /dev/serial*
    

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


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

  1. حدّث Raspberry Pi الخاص بك:
    sudo apt update && sudo apt upgrade -y
    
  2. ثبت مكتبة الاتصال التسلسلي لبايثون:
    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 long-range data transmission لمسافات تصل إلى 1200 متر.
  3. شبكات متعددة الأجهزة – توصيل عدة أجهزة على نفس ناقل RS485.
  4. عدادات الطاقة الذكية – قراءة عدادات الطاقة المتوافقة مع Modbus.
  5. الإنترنت للأشياء وتسجيل البيانات – جمع بيانات المستشعر وإرسالها إلى خوادم السحابة.

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

  1. لا يوجد اتصال

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

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

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

الخلاصة

تُتيح وحدة MAX485 لـ Raspberry 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.

اترك تعليقًا