Cómo trabajar con LoRaWAN y un PLC ESP32

Conectando tu PLC ESP32 a LoRaWAN
10 de diciembre de 2024 por
Cómo trabajar con LoRaWAN y un PLC ESP32
Boot & Work Corp. S.L., Joan Bello

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:

  1. PLC ESP32: Controlador Lógico Programable basado en ESP32 de Industrial Shields.
  2. Módulo RN2483 Click: Un módulo LoRaWAN que se conecta a tu PLC ESP32.
  3. 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).
  4. Cable Micro USB: Para programar el PLC ESP32.

Configuración del Software

Antes de sumergirte en el código, asegúrate de tener:

  1. Arduino IDE: Instalado y configurado para programar dispositivos ESP32.
  2. Librería RN2483 para Arduino:

Registra tu dispositivo en TTN

  1. Accede a The Things Stack e inicia sesión.
  2. 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);
}    

Descodificador para TTN

Para visualizar los datos, añade el siguiente descodificador 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

  1. Conecta el módulo RN2483 click al PLC ESP32 (se recomienda el Slot 2 por su flexibilidad).
  2. Configura el Arduino IDE con la librería RN2483.
  3. Registra tu dispositivo en TTN y copia las claves en el sketch de Arduino.
  4. Carga el código en el PLC ESP32.
  5. 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.

Resumen

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.

¡Feliz programación! 🚀

Buscar en nuestro blog

Cómo trabajar con LoRaWAN y un PLC ESP32
Boot & Work Corp. S.L., Joan Bello 10 de diciembre de 2024
Compartir
Categorías

¿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.


Comparación de PLCs industriales >>>