Conectando tu PLC ESP32 a LoRaWAN
Introducción
LoRaWAN es una tecnología potente para redes de baja potencia y amplia cobertura, lo que la hace ideal para aplicaciones industriales. En esta guía, demostraremos cómo integrar LoRaWAN con un PLC ESP32, utilizando un módulo LoRa RN2483 y The Things Network (TTN). Al finalizar este tutorial, tendrás tu PLC ESP32 enviando datos a TTN.
Requisitos de Hardware
Antes de empezar, asegúrate de contar con lo siguiente:
- PLC ESP32: Controlador Lógico Programable basado en ESP32 de Industrial Shields.
- Módulo RN2483 Click: Un módulo LoRaWAN que se conecta a tu PLC ESP32.
- Conexiones
- Slot 1 o Slot 2 en el PLC ESP32 (el Slot 2 está junto al conector Ethernet y requiere una configuración adicional de interruptores).
- Cable Micro USB: Para programar el PLC ESP32.
Configuración del Software
Antes de sumergirte en el código, asegúrate de tener:
- Arduino IDE: Instalado y configurado para programar dispositivos ESP32.
- Librería RN2483 para Arduino:
- Instala la librería desde el repositorio GitHub de RN2483-Arduino Library.
- Descarga la librería, descomprímela y añádela a tu Arduino IDE.
Registra tu dispositivo en TTN
- Accede a The Things Stack e inicia sesión.
- Crea un nuevo dispositivo y toma nota de las siguientes claves:
- Device EUI
- Application EUI
- App Key
Estas claves se utilizarán en el código Arduino.
Código Arduino
A continuación tienes el código Arduino para configurar LoRaWAN en el PLC ESP32 y enviar datos a TTN. Sustituye las cadenas devEui, appEui y appKey por la información específica de tu dispositivo que obtuviste de TTN.
#include <rn2xx3.h>
// Constants for OTAA keys
const char* devEui = “0011223344556677”; // Replace with your Device EUI
const char* appEui = “0000000000000000”; // Replace with your Application EUI
const char* appKey = “00112233445566778899AABBCCDDEEFF”; // Replace with your App Key
// Create an instance of the rn2xx3 library
rn2xx3 myLora(SerialExp2);
// The setup routine runs once when you press reset:
void setup() {
Serial.begin(115200); // Serial port to computer
SerialExp2.begin(57600); // Serial port to radio
Serial.println(“Startup”);
initialize_radio();
// Transmit a startup message
myLora.tx(“TTN Mapper on TTN ESP32 node”);
delay(2000);
}
void initialize_radio() {
// Reset rn2483
pinMode(EXP2_RST, OUTPUT);
digitalWrite(EXP2_RST, LOW);
delay(1000);
digitalWrite(EXP2_RST, HIGH);
delay(1000); // Wait for the RN2xx3’s startup message
SerialExp2.flush();
Serial.println(“RN2xx3 firmware version:”);
Serial.println(myLora.sysver());
// Configure your keys and join the network
Serial.println(“Trying to join TTN”);
bool join_result = false;
join_result = myLora.initOTAA(appEui, appKey, devEui);
while (!join_result) {
Serial.println(“Unable to join. Are your keys correct, and do you have TTN coverage?”);
delay(60000); // Delay a minute before retry
join_result = myLora.init();
}
Serial.println(“Successfully joined TTN”);
}
// The loop routine runs over and over again forever:
void loop() {
Serial.println(“TXing”);
myLora.tx(“!”); // One byte, blocking function
delay(200);
}
Decodificador para TTN
Para visualizar los datos, añade el siguiente decodificador en “Payload Formatters” para los mensajes uplink en tu consola TTN:
function decodeUplink(input) {
return {
data: {
bytes: input.bytes
},
warnings: [],
errors: []
};
}
Esto mostrará los bytes en bruto enviados desde el PLC ESP32 en la consola de TTN.
Resumen de pasos clave
- Conecta el módulo RN2483 click al PLC ESP32 (se recomienda el Slot 2 por su flexibilidad).
- Configura el Arduino IDE con la librería RN2483.
- Registra tu dispositivo en TTN y copia las claves en el sketch de Arduino.
- Carga el código en el PLC ESP32.
- Supervisa la consola de TTN para ver los datos entrantes.
Consejos de Solución de Problemas
- Sin respuesta de Join: Asegúrate de que tienes cobertura LoRaWAN y que las claves están correctamente configuradas en TTN.
- Datos no visibles en la consola de TTN: Verifica la función de descodificación (decoder) y el formato de la carga útil en tu código.
Conclusión
Con esta configuración, tu PLC ESP32 está ahora conectado a una red LoRaWAN, transmitiendo datos a TTN. Esta es una base sólida para aplicaciones industriales IoT, como la monitorización de sensores, el seguimiento de activos o incluso soluciones de ciudades inteligentes.
Contáctanos
ventas@logicbus.com | soporte@logicbus.com | 55-5431-67-18 | Iniciar conversación