El Raspberry PLC admite módulos click opcionales para comunicaciones especializadas. Este artículo muestra cómo configurar la comunicación por radio LoRa entre dos Raspberry PLC usando el módulo RN2483A. LoRa (Long Range) es una técnica de modulación de espectro disperso que permite comunicaciones inalámbricas de bajo consumo a larga distancia, lo que la hace adecuada para aplicaciones de IoT industrial.
Configuración del hardware
Cada Raspberry PLC dispone de dos ranuras para módulos click. Las dos ranuras tienen un cableado diferente, por lo que es importante conocer a qué dispositivo serie corresponde cada una.
Click 1
- Inserta el módulo LoRa en la ranura click 1 con su antena RFH conectada.
- Dispositivo serie:
/dev/ttySC0
Click 2
- Inserta el módulo LoRa en la ranura click 2 con su antena RFH conectada.
- Dispositivo serie:
/dev/ttySC1 - Verifica que los resistores de la placa coincidan con las posiciones indicadas en la imagen antes de usarlo.
Configuración del software
Antes de continuar, verifica que /boot/config.txt contenga las siguientes líneas. Si falta alguna, edita el archivo con sudo nano /boot/config.txt, guarda y reinicia.
[all] dtparam=spi=on gpio=8=pd dtoverlay=spi0-1cs,cs0_pin=7 dtoverlay=w5500,cs=0,int_pin=6 dtparam=i2c_arm=on dtoverlay=i2c-rtc,ds3231 dtoverlay=sc16is752-spi1-rpiplc-v4,xtal=14745600 enable_uart=1
A continuación, pon el pin de reset del módulo click en nivel alto. Para ello se necesita la librería librpiplc:
- Clona e instala librpiplc desde GitHub:
git clone https://github.com/Industrial-Shields/librpiplc.git && cd librpiplc && make && sudo make install - Dentro del directorio
/test, compila el helper set-digital-output sustituyendoDEVICEpor tu modelo de PLC (por ejemploRPIPLC_58):g++ -o set-digital-output set-digital-output.cpp -L /usr/local/lib -l rpiplc -I /usr/local/include/rpiplc -D DEVICE
- Pon el pin de reset en alto para la ranura click correspondiente:
sudo ./set-digital-output EXP1_RST 1 # para click 1 sudo ./set-digital-output EXP1_RST_2 1 # para click 2
Prueba de comunicación LoRa
Esta prueba usa dos Raspberry PLC con el módulo RN2483A en la ranura click 2 (/dev/ttySC1). Abre dos terminales en cada PLC (cuatro en total).
En el primer Raspberry PLC, abre y configura el puerto, luego pon el módulo en modo recepción:
# Terminal 1 - abre el puerto a la velocidad por defecto y escucha stty 57600 -F /dev/ttySC1 cat /dev/ttySC1 # Terminal 2 - solicita la versión de firmware echo -e "sys get ver\r" > /dev/ttySC1
Si la versión del firmware aparece en el terminal 1 (por ejemplo: RN2483 1.0.5 Oct 31 2018 15:06:52), configura el módulo en modo recepción desde el terminal 2:
echo -e "mac pause\r" > /dev/ttySC1 echo -e "radio rx 0\r" > /dev/ttySC1
En el segundo Raspberry PLC, abre el puerto y envía un mensaje de prueba:
stty 57600 -F /dev/ttySC1 cat /dev/ttySC1 echo -e "sys get ver\r" > /dev/ttySC1 echo -e "mac pause\r" > /dev/ttySC1 echo -e "radio tx abc\r" > /dev/ttySC1
Si la transmisión tiene éxito, el PLC emisor mostrará radio_tx_ok y el PLC receptor mostrará radio_rx 0ABC. Esto confirma que la comunicación LoRa funciona correctamente entre los dos dispositivos.
Nota: el módulo RN2483A requiere que los comandos terminen con \r\n. Con echo -e se añade \r explícitamente porque al pulsar Enter solo se envía \n.

Comunicación LoRa entre dos Raspberry Pi PLC