Za pomocą modułu MAX485 RS485 z Raspberry Pi

Using the MAX485 RS485 Module with the Raspberry Pi

MAX485 moduł umożliwia komunikację Raspberry Pi za pomocą Protokół RS485, który jest szeroko stosowany do automatyzacji przemysłowej, komunikacji Modbus i seryjnej transmisji danych na duże odległości. Ten przewodnik pokaże, jak połączyć, skonfigurować i korzystać z Moduł MAX485 RS485 z Raspberry Pi Za pomocą Pythona.


Czego będziesz potrzebować

  1. Raspberry Pi (Każdy model z obsługą GPIO, np. PI 3, PI 4)
  2. Moduł MAX485 RS485
  3. Urządzenie RS485 (np. Modbus czujnik, kontroler przemysłowy)
  4. Przewody zworki
  5. Zainstalowany Python na Raspberry Pi

Krok 1: Zrozumienie modułu MAX485

. MAX485 jest TTL-to-RS485 Transceiver To pozwala na wysyłanie i odbieranie sygnałów RS485.

Kluczowe funkcje:

  • Obsługuje komunikację Half-Duplex RS485
  • Działa na Moc 5v (Kompatybilny z logiką 3,3 V na Raspberry Pi)
  • Zastosowania TX, RX, DE i RE Piny do kontroli komunikacji

Krok 2: Okablowanie Max485 do Raspberry Pi

MAX485 PIN Pin Raspberry Pi Funkcjonować
VCC 5v (pin 2) Zasilacz
GND GND (pin 6) Grunt
Ro GPIO15 (PIN 10) RS485 Dane odbierane (Rx)
Di GPIO14 (PIN 8) RS485 Data Transit (TX)
ODNOŚNIE GPIO18 (PIN 12) Odbieraj enable (niski do odbierania)
De GPIO18 (PIN 12) Włącz sterownik (wysłanie wysoko)
A RS485 Linia Połącz się z urządzeniem RS485
B Linia RS485 B. Połącz się z urządzeniem RS485

Notatka: . ODNOŚNIE I De Piny są kontrolowane razem przez GPIO18, Włączanie lub wyłączenie transmisji.


Krok 3: Włącz UART na Raspberry Pi

  1. Otwórz narzędzie konfiguracyjne Raspberry Pi:

    sudo raspi-config
    
  2. Przejść do Opcje interfejsu> port szeregowy.

  3. Wyłącz konsolę szeregową, ale Włącz sprzęt szeregowy.

  4. Uruchom ponownie Raspberry Pi:

    sudo reboot
    
  5. Sprawdź, czy Urządzenie szeregowe jest dostępne:

    ls /dev/serial*
    

    Powinieneś zobaczyć /dev/serial0.


Krok 4: Zainstaluj wymagane biblioteki Pythona

  1. Zaktualizuj swoje Raspberry Pi:
    sudo apt update && sudo apt upgrade -y
    
  2. Zainstaluj bibliotekę komunikacji szeregowej Python:
    pip3 install pyserial
    

Krok 5: Kod Python do komunikacji przez RS485

Podstawowy kod Pythona do wysyłania i odbierania danych za pośrednictwem 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()

Krok 6: Zastosowania komunikacji RS485 z Raspberry Pi

  1. Automatyzacja przemysłowa - Komunikuj się z PLC, czujnikami i kontrolerem za pomocą Modbus RTU.
  2. Komunikacja na duże odległości - Obsługa RS485 transmisja danych dalekiego zasięgu do 1200 metrów.
  3. Sieci wielu urządzeń - Podłącz wiele urządzeń w tej samej magistrali RS485.
  4. Inteligentne mierniki energii -Przeczytaj mierniki energii kompatybilne z Modbus.
  5. IoT i rejestrowanie danych - Zbieraj dane czujnika i przesyłać je na serwery chmurowe.

Rozwiązywanie problemów

  1. Brak komunikacji

    • Sprawdź połączenia okablowania, zapewniając Linie A i B są poprawnie połączone.
    • Sprawdź to UART jest włączony używając sudo raspi-config.
    • Upewnij się Urządzenie RS485 wykorzystuje tę samą szybkość transmisji jak osadzone w Python.
  2. Zezwolenie odmówiono błędu

    • Dodaj użytkownika do dialout Grupa dostępu do portu szeregowego:
      sudo usermod -aG dialout $USER
      sudo reboot
      
  3. Znaki śmieci w otrzymanych danych

    • Upewnij się, że obie urządzenia używają Ta sama szybkość transmisji i ustawienia szeregowe.
    • Sprawdź, czy Kable osłonięte są potrzebne na dłuższe odległości.

Wniosek

. Moduł MAX485 umożliwia komunikowanie się z Raspberry Pi Rs485, czyni to idealne Automatyzacja przemysłowa, urządzenia Modbus i seryjna transmisja danych na duże odległości. Postępując zgodnie z tym przewodnikiem, możesz ustalić dwukierunkowa komunikacja między urządzeniami Raspberry PI i RS485 dla IoT i wbudowanych projektów systemowych. 🚀

Zostaw komentarz

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.