ال Max485 تسمح الوحدة النمطية لـ Raspberry Pi بالاتصال باستخدام بروتوكول RS485، والذي يستخدم على نطاق واسع للأتمتة الصناعية ، واتصالات Modbus ، ونقل البيانات التسلسلية الطويلة. سيوضح لك هذا الدليل كيفية الاتصال وتكوين واستخدام وحدة MAX485 RS485 مع Raspberry PI باستخدام بيثون.
ماذا ستحتاج
- التوت بي (أي نموذج يحمل دعم GPIO ، على سبيل المثال ، PI 3 ، PI 4)
- MAX485 RS485 وحدة
- جهاز RS485 (على سبيل المثال ، مستشعر Modbus ، وحدة تحكم صناعية)
- الأسلاك الطائر
- بيثون مثبت على التوت 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
-
افتح أداة تكوين Raspberry Pi:
sudo raspi-config
-
انتقل إلى خيارات الواجهة> المنفذ التسلسلي.
-
تعطيل وحدة التحكم التسلسلية ولكن تمكين الأجهزة التسلسلية.
-
أعد تشغيل Raspberry Pi:
sudo reboot
-
تحقق من أن الجهاز التسلسلي متاح:
ls /dev/serial*
يجب أن ترى
/dev/serial0
.
الخطوة 4: تثبيت مكتبات بيثون المطلوبة
- قم بتحديث Raspberry Pi:
sudo apt update && sudo apt upgrade -y
- تثبيت مكتبة الاتصالات التسلسلية 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
- الأتمتة الصناعية - التواصل مع PLCs وأجهزة الاستشعار وأجهزة التحكم باستخدام Modbus RTU.
- التواصل لمسافات طويلة - RS485 يدعم نقل البيانات بعيد المدى ما يصل إلى 1200 متر.
- شبكات متعددة الأجهزة - قم بتوصيل أجهزة متعددة على نفس حافلة RS485.
- عدادات الطاقة الذكية -اقرأ عدادات الطاقة المتوافقة مع Modbus.
- إنترنت الأشياء وتسجيل البيانات - جمع بيانات المستشعر ونقلها إلى الخوادم السحابية.
استكشاف الأخطاء وإصلاحها
-
لا اتصال
- تحقق من اتصالات الأسلاك ، والتأكد خطوط A و B متصلة بشكل صحيح.
- تحقق من ذلك تم تمكين UART استخدام
sudo raspi-config
. - ضمان يستخدم جهاز RS485 نفس معدل باود كما هو الحال في بيثون.
-
تم رفض الإذن خطأ
- أضف المستخدم إلى
dialout
مجموعة للوصول إلى المنفذ التسلسلي:sudo usermod -aG dialout $USER sudo reboot
- أضف المستخدم إلى
-
أحرف القمامة في البيانات المستلمة
- تأكد من استخدام كلا الجهازين نفس معدل الباود والإعدادات التسلسلية.
- تحقق إذا كابلات محمية هناك حاجة لمسافات أطول.
خاتمة
ال وحدة MAX485 يتيح التوت PI من التواصل RS485مما يجعلها مثالية ل الأتمتة الصناعية ، وأجهزة Modbus ، ونقل البيانات التسلسلية طويلة المسافة. باتباع هذا الدليل ، يمكنك إنشاء التواصل ثنائي الاتجاه بين أجهزة Raspberry PI و RS485 لإنترنت الأشياء ومشاريع النظام المدمجة. 🚀