THE MAX485 המודול מאפשר ל- Raspberry Pi לתקשר באמצעות פרוטוקול RS485, הנמצא בשימוש נרחב לאוטומציה תעשייתית, תקשורת Modbus והעברת נתונים סידורי למרחקים ארוכים. מדריך זה יראה לך כיצד לחבר, להגדיר ולהשתמש ב- MAX485 RS485 מודול עם ה- Raspberry Pi באמצעות פייתון.
מה תצטרך
- Raspberry Pi (כל דגם עם תמיכה ב- GPIO, למשל, pi 3, pi 4)
- MAX485 RS485 מודול
- מכשיר RS485 (למשל, חיישן מודבוס, בקר תעשייתי)
- חוטי מגשר
- פיתון מותקן על ה- Raspberry Pi
שלב 1: הבנת מודול MAX485
THE MAX485 הוא א משדר TTL-TO-RS485 זה מאפשר ל- Raspberry Pi לשלוח ולקבל אותות RS485.
תכונות מפתח:
- תומך בתקשורת של חצי דופלקס RS485
- פועל ב כוח 5V (תואם לוגיקה של 3.3 וולט ב- Raspberry Pi)
- שימושים Tx, rx, de ו- re סיכות לבקרת תקשורת
שלב 2: חיווט MAX485 ל- Raspberry Pi
PIN MAX485 | סיכת פטל pi | פוּנקצִיָה |
---|---|---|
VCC | 5V (סיכה 2) | ספק כוח |
GND | GND (סיכה 6) | טָחוּן |
RO | GPIO15 (סיכה 10) | נתוני RS485 מקבלים (RX) |
Di | GPIO14 (סיכה 8) | RS485 שידור נתונים (TX) |
מִחָדָשׁ | GPIO18 (סיכה 12) | לקבל אפשרות (LOW לקבל) |
דה | GPIO18 (סיכה 12) | מנהל התקן אפשר (גבוה לשלוח) |
א | RS485 קו | התחבר למכשיר RS485 |
ב | קו RS485 B. | התחבר למכשיר RS485 |
פֶּתֶק: THE מִחָדָשׁ וכן דה סיכות נשלטות יחד על ידי 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.
- רישום IoT ו- Data - אסוף נתוני חיישנים והעביר אותם לשרתי ענן.
פתרון בעיות
-
אין תקשורת
- בדוק חיבורי חיווט, הבטחת קווי A ו- B מחוברים נכון.
- אמת את זה UART מופעל באמצעות
sudo raspi-config
. - להבטיח את מכשיר RS485 משתמש באותו קצב Baud כפי שנקבע בפייתון.
-
שגיאה שנדחתה הרשאה
- הוסף את המשתמש ל
dialout
קבוצה לגישה ליציאה סדרתית:sudo usermod -aG dialout $USER sudo reboot
- הוסף את המשתמש ל
-
תווי זבל בנתונים שהתקבלו
- ודא ששני המכשירים משתמשים אותו שיעור baud והגדרות סדרתיות.
- בדוק אם כבלים מוגנים נחוצים למרחקים ארוכים יותר.
מַסְקָנָה
THE מודול MAX485 מאפשר ל- Raspberry Pi לתקשר RS485, מה שהופך אותו לאידיאלי עבור אוטומציה תעשייתית, מכשירי מודבוס והעברת נתונים סדרתית למרחקים ארוכיםו על ידי ביצוע מדריך זה תוכלו להקים תקשורת דו כיוונית בין מכשירי Raspberry PI ו- RS485 לפרויקטים של מערכות IoT ומוטמעים. 🚀