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.
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:
Usa las teclas de flecha para llegar al final del archivo y asegúrate de que estas líneas estén configuradas así:
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].
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)
Ahora, deja el puerto escuchando con cat:
Ve al segundo terminal. Le pediremos al módulo su versión para confirmar que podemos comunicarnos con él:
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:
Preparamos uno de los RPIPLC para recibir mensajes:
Y luego enviamos el mensaje desde el otro RPIPLC con:
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:
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í:
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.
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)
Ahora, deja el puerto escuchando con cat:
Ve al segundo terminal. Le pediremos al módulo su versión para confirmar que podemos comunicarnos con él:
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:
Preparamos uno de los RPIPLC para recibir mensajes:
Y luego enviamos el mensaje desde el otro RPIPLC con:
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:
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í: