Comunicación RS485 con Python: Tutorial paso a paso
Introducción
La comunicación RS485 es un protocolo de comunicación serial half-duplex que permite la transmisión de datos entre dispositivos a distancias de hasta 1200 metros. Es un protocolo muy utilizado en aplicaciones industriales, como el control de procesos o la automatización.
En este tutorial, aprenderemos a realizar la comunicación RS485 con Python. Para ello, utilizaremos la biblioteca pyserial, que nos proporciona una interfaz para controlar los puertos serie de nuestro ordenador.
Requisitos
Para seguir este tutorial, necesitarás lo siguiente:
- Un ordenador con Python 3 instalado.
- Un cable RS485.
- Dos dispositivos compatibles con RS485.
Configuración del hardware
En primer lugar, debemos conectar los dispositivos que queremos comunicar mediante RS485. Para ello, utilizaremos un cable RS485.
El cable RS485 tiene cuatro cables:
- TxD: Transmit Data
- RxD: Receive Data
- GND: Ground
- A/B: Señales diferenciales
Los cables TxD y RxD se utilizan para la transmisión de datos. El cable GND se utiliza para la conexión a tierra. Los cables A y B se utilizan para la transmisión diferencial de datos.
Para conectar los dispositivos, debemos conectar los cables TxD y RxD de cada dispositivo entre sí. También debemos conectar los cables GND de cada dispositivo entre sí.
Configuración de Python
Para realizar la comunicación RS485 con Python, utilizaremos la biblioteca pyserial.
Para instalar pyserial, ejecuta el siguiente comando en la terminal:
pip install pyserial
Una vez instalada la biblioteca, podemos importarla a nuestro código:
import serial
Ejemplo de comunicación RS485
En este ejemplo, enviaremos un mensaje de «Hola mundo» al otro dispositivo.
# Importamos la biblioteca pyserial
import serial
# Creamos un objeto serial para el puerto serie
ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=1)
# Enviamos el mensaje
ser.write('Hola mundo'.encode())
# Cerramos el puerto serie
ser.close()
Este código abrirá el puerto serie /dev/ttyUSB0 a una velocidad de 9600 baudios. A continuación, enviará el mensaje «Hola mundo» al otro dispositivo. Por último, cerrará el puerto serie.
Ejemplo de recepción de datos RS485
En este ejemplo, recibiremos un mensaje del otro dispositivo.
# Importamos la biblioteca pyserial
import serial
# Creamos un objeto serial para el puerto serie
ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=1)
# Recibimos los datos
data = ser.readline().decode()
# Imprimimos los datos
print(data)
# Cerramos el puerto serie
ser.close()
Este código abrirá el puerto serie /dev/ttyUSB0 a una velocidad de 9600 baudios. A continuación, recibirá los datos del otro dispositivo. Por último, imprimirá los datos recibidos.
Conclusión
En este tutorial, hemos aprendido a realizar la comunicación RS485 con Python. Para ello, hemos utilizado la biblioteca pyserial.
Con estos conocimientos, podrás realizar la comunicación RS485 entre tus dispositivos.
Referencias
- RS485: https://en.wikipedia.org/wiki/RS-485
- pyserial: https://pypi.org/project/pyserial/