Introducción
El PLC basado en ESP32 con módulo LoRa de Industrial Shields incorpora el módulo RN2483. En un post anterior vimos cómo interactuar con él, escribiendo directamente en el puerto serie para configurar el módulo, enviar y recibir mensajes.
Dado que este procedimiento es lento y poco óptimo, Industrial Shields desarrolló una nueva biblioteca para los PLCs basados en ESP32 que incluyen el módulo RN2483. El desarrollo de esta biblioteca se ha centrado en la integración de las bibliotecas ya existentes de Radio Head, utilizando las mismas funciones y adaptando los mensajes de carga útil para simular el formato.
De esta manera, el PLC ESP32 o el PLC ESP32 14 pueden comunicarse fácilmente con cualquier otro módulo Radio Head, sin la necesidad de preparar externamente el paquete que se enviará ni de realizar otras estrategias que ralentizan el proceso de envío o recepción. Además, también es posible la comunicación entre los PLCs basados en Arduino, como el M-Duino LoRa o el Ardbox LoRa.
Consulta el post anterior para obtener una comprensión básica sobre el módulo, y continuemos con la biblioteca.
Parámetros de configuración predeterminados
El módulo LoRa RN2483 está configurado con los siguientes parámetros para coincidir con la configuración predeterminada existente del resto de los módulos Radio Head:
- Coding Rate: 4/5
- Ancho de Banda: 125 kHz
- Longitud del Preambulo: 8
- Factor de Expansión: 12
- Potencia TX: 13
- Frecuencia: 868 MHz
- Sync Word: 0x12
Cada uno de estos valores se puede modificar después de inicializar el módulo.
Primeros pasos con la biblioteca RN2483
Los pasos para configurar el módulo son muy simples:
- Incluye la biblioteca en el sketch del Arduino IDE:
- Inicializa el objeto LoRa con el puerto serie:
Para PLC ESP32:
Para PLC ESP32 14:
- Inicia el puerto serie a 57600 baudios:
Para PLC ESP32 14:
- Reinicia el módulo LoRa:
Para PLC ESP32 14:
- Finalmente, inicia el módulo LoRa:
Puedes encontrar un código de ejemplo para tu PLC basado en ESP32 en Archivo -> Ejemplos ->
Interacción con el módulo
Una vez iniciado el módulo, podemos comenzar a enviar y recibir paquetes LoRa desde otro módulo.
El tamaño del paquete LoRa no debe superar los 255 bytes; de lo contrario, la función de envío fallará. El envío puede tomar hasta casi 2 segundos; ten en cuenta que durante este tiempo, el módulo no puede recibir datos de ningún otro módulo LoRa.
La función de recepción debe llamarse con:
Nota: Debes llamar a LoRa.available() antes de intentar leer un paquete LoRa para asegurarte de que se recibió un mensaje válido; de lo contrario, los datos leídos de "LoRa.recv(buf, len)" serán impredecibles. El mensaje almacenado en buf tiene el siguiente formato:
- Si el remitente envía "A", en el array buf habrá {"4", "1"}, con len = 2. Esto corresponde al equivalente ASCII de "A" en decimal, 41.
Para imprimir directamente el buffer, utiliza la función "LoRa.printBuffer(buf, len)". Esto imprimirá el contenido del mensaje recibido en un formato legible más un carácter de nueva línea.

Biblioteca LoRa RN2483 para PLCs basados en ESP32