Obtenga entrega gratuita en todas las órdenes más de £20!

Usando el módulo RS485 MAX485 con la Raspberry Pi

Using the MAX485 RS485 Module with the Raspberry Pi

El MAX485 módulo permite que la Raspberry Pi se comunique mediante el protocolo RS485, que se utiliza ampliamente para la automatización industrial, la comunicación Modbus y la transmisión de datos serie a larga distancia. Esta guía te mostrará cómo conectar, configurar y usar el MAX485 módulo RS485 con la Raspberry Pi usando Python.


Qué Necesitarás

  1. Raspberry Pi (cualquier modelo con soporte para GPIO, p. ej., Pi 3, Pi 4)
  2. MAX485 Módulo RS485
  3. Dispositivo RS485 (p. ej., sensor Modbus, controlador industrial)
  4. Cables Puente
  5. Python instalado la Raspberry Pi

Paso 1: Comprender el Módulo MAX485

El MAX485 un Transceptor TTL a RS485 que permite a la Raspberry Pi enviar y recibir señales RS485.

Características clave:

  • Admite comunicación RS485 semidúplex
  • Funciona con alimentación de 5V (compatible con niveles lógicos de 3.3V en la Raspberry Pi)
  • Usos TX, RX, DE y RE pines para control de comunicación

Paso 2: Cableado del MAX485 a la Raspberry Pi

Pin del MAX485 Pin de Raspberry Pi Función
VCC 5V (Pin 2) Fuente de Alimentación
GND GND (Patilla 6) Suelo
RO GPIO15 (Pin 10) Recepción de Datos RS485 (RX)
DI GPIO14 (Pin 8) RS485 Transmisión de Datos (TX)
RE GPIO18 (Pin 12) Habilitar Recepción (LOW para recibir)
DE GPIO18 (Pin 12) Habilitación del controlador (ALTO para transmitir)
Un Línea A de RS485 Conectar al Dispositivo RS485
B Línea B de RS485 Conectar al Dispositivo RS485

Nota: El RE y DE los pines se controlan de forma conjunta por GPIO18, activando o desactivando la transmisión.


Paso 3: Habilitar UART en la Raspberry Pi

  1. Abra la herramienta de configuración de Raspberry Pi:

    sudo raspi-config
    
  2. Ir a Opciones de Interfaz > Puerto Serie.

  3. Desactiva la consola serie pero habilitar el hardware serie.

  4. Reinicia la Raspberry Pi:

    sudo reboot
    
  5. Verifica que el el dispositivo serie está disponible:

    ls /dev/serial*
    

    Deberías ver /dev/serial0.


Paso 4: Instalar Las Bibliotecas De Python Necesarias

  1. Actualiza tu Raspberry Pi:
    sudo apt update && sudo apt upgrade -y
    
  2. Instala la biblioteca de comunicación serie de Python:
    pip3 install pyserial
    

Paso 5: Código en Python para Comunicarse vía RS485

Código Básico de Python para Enviar y Recibir Datos vía RS485

import serial
import RPi.GPIO as GPIO
import time

# Define el pin GPIO para el control de RE/DE
RS485_CONTROL = 18  

# Configura GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(RS485_CONTROL, GPIO.OUT)

# Configura la conexión serie
ser = serial.Serial(
    port='/dev/serial0',  # Puerto UART de Raspberry Pi
    baudrate=9600,        # Ajusta la velocidad en baudios para coincidir con el dispositivo RS485
    timeout=1
)

def send_data(data):
    GPIO.output(RS485_CONTROL, GPIO.HIGH)  # Habilita la transmisión
    time.sleep(0.01)  # Pequeña espera antes de enviar
    ser.write(data.encode())  # Envía los datos como bytes
    time.sleep(0.01)  # Pequeña espera para asegurar que los datos se envíen
    GPIO.output(RS485_CONTROL, GPIO.LOW)  # Habilita la recepción

def receive_data():
    GPIO.output(RS485_CONTROL, GPIO.LOW)  # Habilita la recepción
    data = ser.readline().decode('utf-8').strip()
    return data

try:
    while True:
        send_data("¡Hola, dispositivo RS485!\n")
        print("¡Datos enviados!")

        # Espera una respuesta
        response = receive_data()
        if response:
            print(f"Recibido: {response}")

        time.sleep(2)
except KeyboardInterrupt:
    print("Saliendo...")
finally:
    ser.close()
    GPIO.cleanup()

Paso 6: Aplicaciones de la comunicación RS485 con Raspberry Pi

  1. Automatización Industrial – Comuníquese con PLC, sensores y controladores mediante Modbus RTU.
  2. Comunicación de Larga Distancia – RS485 admite transmisión de datos de largo alcance hasta 1200 metros.
  3. Redes Multidispositivo – Conecta varios dispositivos en el mismo bus RS485.
  4. Medidores Inteligentes de Energía – Leer medidores de energía compatibles con Modbus.
  5. IoT y Registro de Datos – Recopilar datos de sensores y transmitirlos a servidores en la nube.

Solución de Problemas

  1. Sin Comunicación

    • Verifique las conexiones del cableado, asegurándose líneas A y B están correctamente conectados.
    • Verifique que UART está habilitado usando sudo raspi-config.
    • Asegúrate de que El dispositivo RS485 usa la misma velocidad en baudios como conjunto en Python.
  2. Error De Permiso Denegado

    • Agregar al usuario a la marcación saliente grupo para el acceso al puerto serie:
      sudo usermod -aG dialout $USER
      sudo reboot
      
  3. Caracteres Basura en los Datos Recibidos

    • Asegúrate de que ambos dispositivos usen la misma velocidad en baudios y configuración del puerto serie.
    • Verifica si cables apantallados se necesitan para distancias más largas.

Conclusión

El Módulo MAX485 permite que la Raspberry Pi se comunique a través de RS485, lo que lo hace ideal para automatización industrial, dispositivos Modbus y transmisión de datos en serie a larga distancia. Al seguir esta guía, podrá establecer comunicación bidireccional entre la Raspberry Pi y dispositivos RS485 para proyectos de IoT y sistemas embebidos. 🚀

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.

Escribir un comentario