Ir al contenido

Módulo LoRa en Raspberry PI

Primeros pasos con el módulo LoRa en Raspberry Pi
30 de septiembre de 2024 por
Boot & Work Corp. S.L, Arnau Tena

Requisitos y configuración

Antes de probar nada con el módulo, debemos asegurarnos de que el PLC cumpla con ciertos requisitos.

En primer lugar, instala la librería librpiplc de Industrial Shields siguiendo las instrucciones del repositorio. Al clonar el repositorio, debes reemplazar <tagname> con la versión deseada de librpiplc. Para este blog, hemos instalado la versión v3.0.0.​

Biblioteca LIBRPIPLC

A continuación, debemos asegurarnos de que el archivo config.txt esté configurado correctamente. Para ello, primero abre /boot/config.txt con tu editor de texto preferido; en este caso utilizamos nano:

sudo nano /boot/config.txt

Usa las teclas de flecha para llegar al final del archivo y asegúrate de que estas líneas estén configuradas así:

[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

Ahora puedes cerrar el editor de texto. Si abriste el archivo con nano, puedes cerrarlo presionando Ctrl+X. Si nano te pide confirmación, escribe "Y" para confirmar y luego presiona Enter para mantener el mismo nombre de archivo.

 Pruebas

Con todo configurado correctamente, podemos comenzar a probar el módulo para asegurarnos de que todo funcione adecuadamente.

Dependiendo de dónde se haya instalado el módulo, los comandos a utilizar serán ligeramente diferentes. El módulo puede estar en el slot 1 o en el slot 2, siendo el slot 1 el que se encuentra junto al puerto Ethernet. Sigue las instrucciones de prueba según dónde se haya instalado el módulo:


Probar el módulo LoRa

Habilita el módulo LoRa colocando el pin de reset en alto. También necesitarás el modelo y la versión de tu RPIPLC para reemplazar [RPIPLC_Version] y [RPIPLC_Model].

Modelos y Versiones de RPIPLC

sudo ~/test/[RPIPLC_Version]/[RPIPLC_Model]/set-digital-output EXP1_RST 1

Con el pin de reset en alto, ahora podemos probar el módulo LoRa. Necesitaremos dos terminales: una para enviar datos al módulo y otra para recibir su respuesta.

En el primer terminal, abre el puerto con una velocidad de 57600 baudios, que es la velocidad por defecto del módulo. En caso de errores, puedes probar con otra velocidad.

(Es importante incluir raw -echo, o podrías tener problemas)

stty 57600 -F /dev/ttySC0 raw -echo

Ahora, deja el puerto escuchando con cat:

cat /dev/ttySC0

Ve al segundo terminal. Le pediremos al módulo su versión para confirmar que podemos comunicarnos con él:

echo -e "sys get ver\r" > /dev/ttySC0

Si todo ha ido bien, deberías ver algo como "RN2483 1.0.5 Oct 31 2018 15:06:52" in the first terminal, which should still be listening for any incoming data. To stop it from listening, you can press Ctrl+C.

Probar la comunicación entre dos módulos LoRa

Ahora puedes configurar un segundo RPIPLC con el módulo LoRa y tratar de comunicarte con él. En el segundo RPIPLC debes repetir los mismos pasos de configuración que hiciste en el primero, además de habilitar el pin de reset y abrir el puerto a la misma velocidad de baudios.

Después de esto, debes establecer la frecuencia que usarán los módulos para enviar y recibir mensajes. Si tienes el módulo LoRa RN2483A, puedes usar frecuencias europeas (868MHz) o asiáticas (433MHz). Si en cambio tienes el módulo RN2903 LoRa, debes usar la frecuencia americana (915MHz). En este caso usamos la europea:

echo -e "radio set freq 868000000\r" > /dev/ttySC0

 Preparamos uno de los RPIPLC para recibir mensajes:

echo -e "mac pause\r" > /dev/ttySC0
echo -e "radio rx 0\r" > /dev/ttySC0
cat /dev/ttySC0

Y luego enviamos el mensaje desde el otro RPIPLC con:

echo -e "mac pause\r" > /dev/ttySC0
echo -e "radio tx ABC\r" > /dev/ttySC0


Si la comunicación fue exitosa, deberías ver algo como 'radio_rx 0ABC' in the recieving RPIPLC's terminal.

Comandos útiles y documentación adicional

Puedes enviar comandos LoRa siguiendo esta estructura:

echo -e "[COMMAND]\r" > /dev/ttySC0

Donde [COMANDO] será el comando LoRa en sí. Aquí tienes algunos ejemplos útiles:

  • mac pause: Pausa la funcionalidad de la pila LoRaWAN y permite el uso del transceptor directamente.
  • radio rx 0: Escucha datos.
  • radio tx ABC: Envía un mensaje (ABC).
  • radio set freq [FREQUENCY]: Establece la frecuencia del transceptor de radio.

Puedes encontrar más documentación sobre LoRa aquí:

Documentación LoRa


Probar el módulo LoRa

Habilita el módulo LoRa colocando el pin de reset en alto. Necesitarás el modelo y versión de tu RPIPLC para reemplazar [RPIPLC_Version] y [RPIPLC_Model]. Si utilizas una versión de librpiplc anterior a v3.0.0, EXP2_RST se llamará EXP1_RST_2.

Modelos y Versiones de RPIPLC

sudo ~/test/[RPIPLC_Version]/[RPIPLC_Model]/set-digital-output EXP2_RST 1

Con el pin de reset en alto, ahora podemos probar el módulo LoRa. Necesitaremos dos terminales: una para enviar datos al módulo y otra para recibir su respuesta.

En el primer terminal, abre el puerto con una velocidad de 57600 baudios, que es la velocidad por defecto del módulo. En caso de errores, puedes probar con otra velocidad.

(Es importante incluir raw -echo, o podrías tener problemas)

stty 57600 -F /dev/ttySC1 raw -echo

Ahora, deja el puerto escuchando con cat:

cat /dev/ttySC1

Ve al segundo terminal. Le pediremos al módulo su versión para confirmar que podemos comunicarnos con él:

echo -e "sys get ver\r" > /dev/ttySC1

Si todo ha ido bien, deberías ver algo como "RN2483 1.0.5 Oct 31 2018 15:06:52" in the first terminal, which should still be listening for any incoming data. To stop it from listening, you can press Ctrl+C.

Probar la comunicación entre dos módulos LoRa

Ahora puedes configurar un segundo RPIPLC con el módulo LoRa y tratar de comunicarte con él. En el segundo RPIPLC debes repetir los mismos pasos de configuración que hiciste en el primero, además de habilitar el pin de reset y abrir el puerto a la misma velocidad de baudios.

Después de esto, debes establecer la frecuencia que usarán los módulos para enviar y recibir mensajes. Si tienes el módulo LoRa RN2483A, puedes usar frecuencias europeas (868MHz) o asiáticas (433MHz). Si tienes el módulo RN2903 LoRa, debes usar la frecuencia americana (915MHz). En este caso usamos la europea:

echo -e "radio set freq 868000000\r" > /dev/ttySC1

 Preparamos uno de los RPIPLC para recibir mensajes:

echo -e "mac pause\r" > /dev/ttySC1
echo -e "radio rx 0\r" > /dev/ttySC1

Y luego enviamos el mensaje desde el otro RPIPLC con:

echo -e "mac pause\r" > /dev/ttySC1
echo -e "radio tx ABC\r" > /dev/ttySC1


Si la comunicación fue exitosa, deberías ver algo como 'radio_rx 0ABC' in the recieving RPIPLC's terminal.

Comandos útiles y documentación adicional

Puedes enviar comandos LoRa siguiendo esta estructura:

echo -e "[COMMAND]\r" > /dev/ttySC1

Donde [COMANDO] será el comando LoRa en sí. Aquí tienes algunos ejemplos útiles:

  • mac pause: Pausa la funcionalidad de la pila LoRaWAN y permite el uso del transceptor directamente.
  • radio rx 0: Escucha datos.
  • radio tx ABC: Envía un mensaje (ABC).
  • radio set freq [FREQUENCY]: Establece la frecuencia del transceptor de radio.

Puedes encontrar más documentación sobre LoRa aquí:

Documentación LoRa


Buscar en nuestro blog

Boot & Work Corp. S.L, Arnau Tena 30 de septiembre de 2024
Compartir esta publicación
Etiquetas

¿Estás buscando tu Controlador Lógico Programable ideal?

Echa un vistazo a esta comparativa de producto de varios controladores industriales basados en Arduino.

Comparamos entradas, salidas, comunicaciones y otras especificaciones con las de los equipos de otras marcas destacadas.

Comparativa de PLCs