Como integrar módulos e medidores inteligentes com comunicação LoRa nó-gateway

Cómo integrar módulos y medidores inteligentes con la comunicación nodo-puerta de enlace LoRa

La tecnología LoRa (Long Range) garantiza una comunicación confiable de largo alcance entre un nodo y una puerta de enlace, lo que proporciona un bajo consumo de energía para los dispositivos a largo plazo. Este artículo proporciona una explicación de la comunicación de nodo a puerta de enlace LoRa al tiempo que presenta un nodo equipado con dos botones para controlar las banderas. Estos botones permiten a los usuarios habilitar o deshabilitar acciones específicas asociadas con cada botón y actualizar el estado en la puerta de enlace.

Desde la automatización del hogar hasta el monitoreo industrial, esta configuración de comunicación LoRa mejorada presenta diversas posibilidades para implementaciones de Internet de las cosas (IoT).

Este tutorial cubrirá la configuración del hardware, la selección de protocolos y la configuración de la puerta de enlace, lo que facilitará la transmisión y visualización de datos en tiempo real.

Un diagrama de bloques de la comunicación de nodo a puerta de enlace LoRa.

Abstracto
Esto es lo que cubriremos...

1. Cómo cargar el código LoRa a la miniplaca LoRa E5
2. Diagrama de circuito para conectar un ST-Link y botones a la miniplaca LoRa E5
3. Cómo configurar un nodo final en la puerta de enlace
4. El flujo del programa o algoritmo con una explicación.

Requisitos

1. Asegúrese de que la puerta de enlace LoRa ya esté instalada como se muestra en este artículo
2. STM32Cube IDE debe estar instalado en su PC
3. La mini tarjeta Seed Studio LoRa E5
4. El programador ST-Link V2 original
5. Un interruptor táctil y algunos conocimientos básicos de soldadura.

Compilando el código

1. Descarga el código y extráelo.

Descarga el código y extráelo de la carpeta.

2. Abra la carpeta y haga doble clic en ".project"

Abra el archivo del proyecto en el IDE de STM32Cube.

3. El proyecto aparecerá en la pestaña 'Explorador de proyectos' a la izquierda del IDE STM32CUBE. Seleccione el proyecto y haga clic en el icono del martillo en la barra superior para compilar el código.

Compilando el código en el IDE STM32CUBE.

4. Después de compilar el código, no debería haber ningún error como se muestra en la imagen a continuación. Si aparece un mensaje de error, siga los pasos nuevamente para garantizar el éxito.

Construya exitosamente sin errores.

Cargando el código

1. Es necesario localizar un ST-Link V2 genuino para actualizar adecuadamente el código LoRa, ya que las variantes clonadas de ST-Link a menudo no son compatibles. Esto significa que es fundamental reconocer el ST-Link original. Un método confiable de identificación implica examinar los componentes de hardware.

Después de un análisis exhaustivo, un ST-Link V2 genuino tiene un chip STM, que indica autenticidad. Los clones suelen importarse de China y tienen una apariencia ligeramente diferente.

Este proyecto requiere un “proceso de actualización” fluido, que ocurre de manera confiable con un ST-Link genuino con chip STM (ver imagen a continuación). Conocer la diferencia garantizará la compatibilidad y la programación adecuada.

Un ST-Link V2 original.

2. Conecte cinco cables a la mini placa LoRa E5 como se muestra en la imagen a continuación, incluidos 3V3, SWDIO, SWCLK, RST y GND.

La conexión ST-Link entre ST-Link V2 y LoRa-E5.

3. Vuelva al IDE de STM32 Cube y haga clic en 'Reproducir; como se muestra a continuación para cargar el código.

Cargando código con el botón 'Reproducir' en STM32 Cube IDE.

4. Debería recibir el mensaje "Descarga verificada correctamente".

Debería recibir el mensaje "Descarga verificada exitosamente" antes de continuar.

Conectando los botones
Conecte los dos interruptores táctiles como se muestra en este diagrama de circuito:

El diagrama de circuito de los interruptores táctiles.

La conexión entre el botón táctil y el LoRa-5E.

Agregar un dispositivo a la puerta de enlace

1. Si no hay ningún perfil de dispositivo, agregue uno. Si ya tiene uno, este mismo perfil se puede utilizar para varios nodos.

2. Para agregar un perfil, abra ChirpStack y vaya a 'Perfiles de dispositivo'.

Los 'Perfiles de dispositivos' en el panel de Chirpstack.

3. Haga clic en 'Agregar perfil de dispositivo'.

El botón 'Agregar perfil de dispositivo'.

4. Complete la información general y haga clic en 'Enviar'.

Información general del perfil de LoRa para completar.

5. Apague OTAA porque el dispositivo funcionará en modo ABP. Complete los detalles y la frecuencia de la velocidad de datos del RX3.

El cruce (OTAA/ABP) en la ventana de perfil general de LoRa... seleccione ABP.

6. Active el modo Clase C como se muestra a continuación.

Habilite la Clase C en el perfil general de LoRa.

7. Luego agregue 'Aplicaciones' que contiene todos los dispositivos.

Ventana 'Aplicación' de LoRa.

8. Haga clic en 'Agregar aplicaciones'.

Haga clic en 'Agregar aplicación LoRa'.

9. Rellena los datos de registro como se indica a continuación en la imagen.

Complete el formulario de 'Registro'.

10. Haga clic en la aplicación que acaba de crear y luego haga clic en el botón 'Agregar dispositivo'. Este proceso debe realizarse cada vez que se agrega un nuevo dispositivo.

Haga clic en "Agregar dispositivo".

11. Comience a completar los detalles como se muestra a continuación. Necesitará encontrar el EUI del dispositivo, que cubriremos en el siguiente paso.

Ventana del dispositivo en la que falta información EUI del dispositivo.

Encontrar EUI y CLAVE

1. Para encontrar el dispositivo EUI y las claves, conecte el dispositivo a una PC mediante un cable USB.

Conexión USB entre el dispositivo y un PC.

2. Abra cualquier terminal serie (estamos usando Arduino) y seleccione el puerto del dispositivo. Abra la Terminal Serial con una velocidad de baudios de 115200. Presione el botón 'Reset' para ver las Claves.

Ventana del terminal serie Arduino... utilizada para encontrar las claves.

El EUI e información clave.

3. Copie el dispositivo EUI del terminal serie y péguelo en ChirpStack. Agregue la sección del dispositivo como se muestra en la imagen a continuación.

Los datos EUI del dispositivo.

4. Vaya a la sección 'Activación' y complete la dirección del dispositivo, AppSkey y la clave Network S, que puede obtener desde la Terminal Serial.

La 'Activación' del dispositivo.

Recibiendo información

1. Para recibir datos, vaya a la sección de eventos donde se reciben datos cada 10 segundos.

Eventos del dispositivo recibidos cada 10 segundos.

2. Los datos están en formato hexadecimal. Envía el nivel de batería, así como el estado del Botón1 y Botón2, en hexadecimal.

El formato de datos hexadecimal.

3. Cuando se presiona el Botón1, la bandera del Botón1 estará ALTA en los siguientes datos (simplemente haga clic una vez con el mouse sin mantenerlo presionado).

Este es el LoRa-5 conectado a los botones tácticos cuando se hace clic en el Botón 1.

Cuando se presiona el Botón 1, la bandera estará ALTA.

4. Cuando se presiona el Botón2, el indicador del Botón2 estará ALTO en los siguientes datos.

Este es el LoRa-5 conectado a los botones tácticos cuando se hace clic en el Botón2.

Cuando se presiona el Botón2, la bandera estará ALTA.

5. Cuando se presionan ambos botones, la bandera será cero.

Cuando se hace clic en ambos botones, la bandera será cero.

Algoritmo de código

El algoritmo.

Explicación del código

1. El código STM32 basado en LoRa es ligeramente diferente de los códigos típicos. El archivo main.c inicia el proceso para ejecutar lora_app.c como archivo principal. Entonces, abra lora_app.c que contiene el código.

El lora_app.c como archivo principal.

2. Están sucediendo muchas cosas en el código, pero revisemos lo que es relevante para este tutorial. La siguiente condición inicia un temporizador, que llama a la función de evento OnTxTimer que envía datos a la puerta de enlace. El tiempo predeterminado es 10 segundos, que se puede cambiar inicializando TxPeriodicity en milisegundos. La siguiente imagen elimina APP_TX_DUTYCYCLE y establece el retraso de tiempo requerido en milisegundos.

Explica la función OnTxTimerEvent para enviar datos en la puerta de enlace LoRa.

Esta función maneja todas las interrupciones que ocurren en los pines de interrupción. Hay un retraso de 100 milisegundos para fines de depuración.

La función SendTxData que contiene un búfer para enviar datos a LoRa.

Integración de contadores inteligentes

Los medidores inteligentes con sensores de pulso se pueden integrar perfectamente en el código anterior. Los sensores de pulso generan pulsos cada vez que aumenta la lectura del medidor, actuando como si el botón se detuviera en este tutorial. Al configurar un microcontrolador (MCU) para reconocer estos pulsos como interrupciones, un usuario puede realizar un seguimiento eficaz de las lecturas del medidor en tiempo real.

Cada vez que el pin de interrupción recibe un pulso, la MCU incrementará la lectura del medidor y la almacenará como una variable. Luego, el código se puede programar para enviar estas lecturas a la puerta de enlace a intervalos regulares, por ejemplo cada 10 segundos. La frecuencia de transmisión se puede ajustar para cumplir con los requisitos específicos de la aplicación.

Esta integración mejora la funcionalidad de los medidores inteligentes, permitiendo un seguimiento preciso y automatizado del consumo de energía. Con lecturas en tiempo real, las empresas de servicios públicos pueden monitorear de manera eficiente el uso, identificar patrones y optimizar la distribución de energía. El código versátil se puede ajustar para diferentes configuraciones de sensores de pulso, por lo que puede funcionar con muchos diseños de medidores inteligentes.

contenido relacionado

Regresar al blog

Deja un comentario

Ten en cuenta que los comentarios deben aprobarse antes de que se publiquen.