De MAX485 module stelt de Raspberry Pi in staat om te communiceren via de RS485 protocol MAX485 RS485-module met de Raspberry Pi met behulp van Python.
Wat u nodig hebt
- Raspberry Pi
- MAX485 RS485-module
- RS485-apparaat
- Jumpdraden
- Python geïnstalleerd op de Raspberry Pi
Stap 1: Begrijpen van de MAX485-module
De MAX485 TTL-to-RS485 transceiver waarmee de Raspberry Pi RS485-signalen kan verzenden en ontvangen.
Belangrijkste kenmerken:
- Ondersteunt half-duplex RS485-communicatie
- Werkt op 5V voeding
- Gebruik TX, RX, DE en RE pinnen voor communicatiecontrole
Step 2: Wiring the MAX485 to the Raspberry Pi
| MAX485-pin | Raspberry Pi Pin | Functie |
|---|---|---|
| VCC | 5V (Pin 2) | Voeding |
| GND | GND (Pin 6) | Grond |
| RO | GPIO15 (Pin 10) | RS485-gegevensontvangst (RX) |
| DI | GPIO14 (Pin 8) | RS485-gegevensoverdracht (TX) |
| RE | GPIO18 (Pin 12) | Ontvangst inschakelen (LAAG om te ontvangen) |
| DE | GPIO18 (Pin 12) | Driver inschakelen (HOOG om te verzenden) |
| A | RS485 A-lijn | Verbinding maken met RS485-apparaat |
| B | RS485 B-lijn | Verbinding maken met RS485-apparaat |
Opmerking: RE en DE pinnen worden samen aangestuurd door GPIO18, enabling or disabling transmission.
Step 3: Enable UART on the Raspberry Pi
-
Open de Raspberry Pi-configuratietool:
sudo raspi-config -
Navigeer naar Interface-opties > Seriële poort完成.
-
Schakel de seriële console uit maar schakel de seriële hardware in.
-
Start de Raspberry Pi opnieuw op:
sudo reboot -
Controleer of de serieel apparaat is beschikbaar:
ls /dev/serial*Je zou moeten zien
/dev/serial0.
Step 4: Install Required Python Libraries
- Update je Raspberry Pi:
sudo apt update && sudo apt upgrade -y - Installeer de Python-bibliotheek voor seriële communicatie:
pip3 install pyserial
Step 5: Python Code to Communicate via RS485
Basic Python Code to Send and Receive Data via RS485
python
import serial
import RPi.GPIO as GPIO
import time
# Definieer GPIO-pin voor RE/DE-besturing
RS485_CONTROL = 18
# GPIO instellen
GPIO.setmode(GPIO.BCM)
GPIO.setup(RS485_CONTROL, GPIO.OUT)
# Configureer de seriële verbinding
ser = serial.Serial(
port='/dev/serial0', # Raspberry Pi UART-poort
baudrate=9600, # Stel de baudrate in die overeenkomt met het RS485-apparaat
timeout=1
)
def send_data(data):
GPIO.output(RS485_CONTROL, GPIO.HIGH) # Transmissie inschakelen
time.sleep(0.01) # Kleine vertraging voor het verzenden
ser.write(data.encode()) # Gegevens verzenden als bytes
time.sleep(0.01) # Kleine vertraging om te zorgen dat de gegevens zijn verzonden
GPIO.output(RS485_CONTROL, GPIO.LOW) # Ontvangst inschakelen
def receive_data():
GPIO.output(RS485_CONTROL, GPIO.LOW) # Ontvangst inschakelen
data = ser.readline().decode('utf-8').strip()
return data
try:
while True:
send_data("Hello RS485 Device!\n")
print("Gegevens verzonden!")
# Wachten op antwoord
response = receive_data()
if response:
print(f"Ontvangen: {response}")
time.sleep(2)
except KeyboardInterrupt:
print("Afsluiten...")
finally:
ser.close()
GPIO.cleanup()
Step 6: Applications of RS485 Communication with Raspberry Pi
- Industrial Automation
- Communicatie op Lange Afstand gegevensoverdracht over lange afstand tot 1200 meter.
- Netwerken voor meerdere apparaten
- Slimme energiemeters
- IoT and Data Logging
Probleemoplossing
-
Geen communicatie
- Controleer de bedradingsaansluitingen en zorg ervoor dat A- en B-lijnen
- Controleer of UART is ingeschakeld met behulp van
sudo raspi-config. - Zorg ervoor dat de RS485-apparaat gebruikt dezelfde baudrate zoals ingesteld in Python.
-
Foutmelding: Toegang Geweigerd
- Voeg de gebruiker toe aan de
dialoutgroep voor toegang tot de seriële poort:sudo usermod -aG dialout $USER sudo reboot
- Voeg de gebruiker toe aan de
-
Onleesbare tekens in ontvangen gegevens
- Zorg ervoor dat beide apparaten gebruikmaken van dezelfde baudrate en seriële instellingen.
- Controleer of afgeschermde kabels zijn nodig voor langere afstanden.
Conclusie
De MAX485-module stelt de Raspberry Pi in staat om te communiceren via RS485 industrial automation, Modbus devices, and long-distance serial data transmission bidirectionele communicatie tussen de Raspberry Pi en RS485-apparaten Bureau voor IoT- en embedded system-projecten. 🚀
