Como LoRa pode impactar cidades inteligentes com sensores de estacionamento

Cómo LoRa puede impactar las ciudades inteligentes con sensores de estacionamiento

En este artículo, configuraremos un sensor de estacionamiento utilizando dispositivos LoRa (largo alcance). LoRa es una técnica de comunicación inalámbrica derivada de la tecnología Chirp Spread Spectrum (CSS).

Para este proyecto, el Arduino Nano está conectado a un sensor ultrasónico que detecta la ocupación del estacionamiento en función de mediciones de distancia. Cuando un vehículo entra o sale de una plaza de aparcamiento, el sensor ultrasónico envía una señal al Arduino, que se integra con una mini placa LoRa E5 como puerta de enlace de comunicación.

Cuando hay un cambio en el estado de estacionamiento, el Arduino está programado para enviar datos al LoRa E5. Por supuesto, esta información se transmite de forma inalámbrica a la puerta de enlace designada mediante tecnología LoRa. Las capacidades de largo alcance y bajo consumo de LoRa lo hacen ideal para monitorear múltiples espacios de estacionamiento. El sistema proporciona datos de ocupación de aparcamiento en tiempo real, lo que resulta beneficioso para soluciones de aparcamiento inteligentes en zonas urbanas y establecimientos comerciales.

A continuación se proporciona una guía de configuración de hardware y detalles de programación, destacando las ventajas de LoRa, incluida su cobertura eficiente y una mayor duración de la batería. Al aprovechar la tecnología LoRa, esta solución de estacionamiento inteligente contribuye a una mejor gestión del tráfico y la experiencia del usuario, lo que la hace adecuada para su integración en iniciativas de ciudades inteligentes.

Diagrama de bloques del sensor de estacionamiento LoRa con Arduino Nano y la mini placa LoRa E5.

Abstracto

1. Cómo cargar UART al firmware de la mini placa Lora E5
2. Firmware para Arduino Nano
3. Diagrama de circuito y conexiones.
4. Agregar un dispositivo a ChirpStack
5. Decodificación de datos LoRa
6. Flujo y explicación del programa o algoritmo

Requisitos
1.Asegúrate
de que LoRa ya esté instalado
2. El programador STM32Cube debe estar instalado en su PC
3. Mini tarjeta Seed Studio LoRa E5
4. Programador ST-Link V2 original
5. ArduinoNano
6. Sensor ultrasónico (HC-SR04)

Subiendo código a LoRa

Este tutorial proporciona el código de firmware de la mini placa LoRa E5 para facilitar la transmisión de datos a la puerta de enlace. Cuando LoRa recibe datos a través de la comunicación receptor-transmisor asíncrono universal (UART), envía inmediatamente toda la información recibida a una puerta de enlace específica.

El código está disponible en dos formatos: como archivo de proyecto y como archivo hexadecimal precompilado. El archivo hexadecimal se puede cargar directamente en Lora Mini Board, simplificando el proceso.

Para cargar el código, los usuarios pueden elegir el archivo hexadecimal precompilado o compilar el archivo del proyecto usando STM32cube IDE.
Aquí, cargaremos directamente el archivo hexadecimal proporcionado a la mini placa LoRa E5, simplificando el proceso de configuración. Este código permite a los desarrolladores establecer una comunicación fluida entre LoRa y la puerta de enlace, lo que permite una transferencia de datos eficiente y aplicaciones de IoT.

Este tutorial está disponible tanto para principiantes como para desarrolladores experimentados, lo que lo convierte en un recurso valioso para proyectos basados ​​en LoRa.

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.

ST-Link V2 original

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

Conexión ST-Link a LoRa mediante cinco cables, incluidos 3V3, SWDIO, SWCLK, RST y GND.

3. Abra el programador STM32CUBE y haga clic en el botón "Conectar".

El destino de conexión del programador STM32CUBE.

4. Seleccione el archivo hexadecimal haciendo clic en la pestaña Abrir archivo.

Abra el archivo hexadecimal.

5. Haga clic en el botón "Descargar" para cargar el código.

Sube el código.

6. Cuando aparece una ventana emergente informándole que la descarga del archivo se ha completado, todo está bien.

Descarga completa.

Subiendo código a Arduino Nano
1. Abra el código Arduino Nano "Detección de estacionamiento" en Arduino IDE.

Abra el código "Detección de estacionamiento" en el IDE de Arduino.

3. Seleccione "Placa" y "Puerto" en el menú desplegable de Arduino para cargar el código.

Seleccione "Placa" y "Puerto" en el menú de herramientas Arduino IDE.

4. Cargue el código en Arduino.

Sube el código a Arduino.

Diagrama de circuito

Diagrama del circuito de detección de estacionamiento utilizando Arduino, un sensor y la Mini Placa LoRa-E5.

Conexiones del circuito en el protoboard.

Agregar un dispositivo a la puerta de enlace
1. Agregue un perfil de dispositivo si aún no tiene uno. Si hace esto, no es necesario agregar un nuevo perfil. Se puede utilizar el mismo perfil para varios nodos.

2. Si aún no tiene un perfil, abra ChirpStack y vaya a "Perfiles de dispositivos".

Panel de control de ChirpStack.

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

El "Agregar perfil de dispositivo" en ChirpStack.

4. Complete los datos generales como se muestra en la imagen a continuación y haga clic en “Enviar”.

La información general del perfil LoRa en ChirpStack.

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

Seleccione el modo ABP y complete los detalles de la velocidad de datos del RX3.

6. Active el modo Clase C como se muestra a continuación y haga clic en "Enviar".

Habilitar clase C.

7. Agregue la "Aplicación" que contiene todos los dispositivos correspondientes.

"Aplicaciones" contiene todos los dispositivos.

8. Haga clic en "Agregar aplicación".

Haga clic en "Agregar aplicación".

9. Complete los datos de registro como se indica a continuación.

Los detalles de la “Solicitud”.

11. Luego haga clic en el botón "Agregar dispositivo". Esto debe hacerse cada vez que se agrega un nuevo dispositivo.

Haga clic en el botón "Agregar dispositivo".

12. Complete los datos como se muestra en la imagen a continuación. Notarás que no hay ningún dispositivo EUI. Aprenderemos cómo encontrarlo en el siguiente paso.

El perfil “Agregar dispositivo”, pero sin el EUI.

Cómo encontrar las claves y EUI
1.
Para encontrar las claves, abra el puerto serie donde está conectado el Arduino Nano y presione el botón “Reset”.

El EUI detalla y codifica la información en serie.

Decodificación de datos LoRa

Abra la aplicación LoRa, que se agregó recientemente. Haga clic en la pestaña “Eventos” para ver los datos.

Cuando el estacionamiento está vacío

Cuando la distancia del sensor es superior a 10 cm, envía el mensaje "Vacío" en la puerta de enlace LoRa.

Cuando hay un estacionamiento vacío, la distancia es de más de 10 cm desde el sensor.

Un aparcamiento vacío cuando la distancia sea superior a 10 cm del sensor.

Los datos se representan en un valor hexadecimal. Puede ir a cualquier sitio web de conversión de texto hexadecimal y pegar estos datos.

La conversión de datos hexadecimales se muestra como "VACÍA".

Cuando la distancia es inferior a 10 cm, envía el mensaje "Vacío" en la puerta de enlace LoRa.

Cuando hay aparcamiento ocupado, la distancia es superior a 10cm del sensor.

Código hexadecimal como estacionamiento ocupado

Los datos nuevamente se representan en un valor hexadecimal. Puede ir a cualquier sitio web de conversión de texto hexadecimal y pegar estos datos.

Convirtiendo datos hexadecimales como “OOCUPIED”.

Algoritmo

El algoritmo completo de aplicación LoRa para sensores de aparcamiento en ciudades inteligentes.

Explicación del código

ArduinoNano
1. En esta sección del código, el sensor ultrasónico emite una onda de sonido al configurar el pin Trig en un estado alto. A continuación, el sensor recibe el eco de esta onda sonora a través del pin de eco. Al medir el tiempo necesario para recibir el eco, el código calcula la distancia entre el sensor y el objeto que refleja la onda sonora.

Instantánea del código que mide la distancia entre el sensor y un objeto que refleja la onda sonora.

2. Esta parte del código detecta el estado del área de estacionamiento y lo envía al dispositivo LoRa.

Una instantánea del código detecta el estado del área de estacionamiento.

Mini tarjeta LoRa E5
1. Abra el archivo lora_app.c, que contiene todo el código.

El archivo de código principal.

2. La función CMD_GetChar lee los caracteres disponibles en el UART y cuando recibe '\n' llama al CMD_process que se envía a LoRa.

Recibir datos de UART.

3. Esta función transfiere los caracteres recibidos al búfer de datos de la aplicación. No almacenará '\n' o '\r'. Luego lo envía a la puerta de enlace LoRa.

El proceso de la función LoRa “Enviar”.

Comunicación multinodo

Después de integrar con éxito un sensor de estacionamiento con LoRa, la misma configuración y circuito se pueden replicar fácilmente en otro nodo. Cada nodo se identifica de forma única mediante el ID del dispositivo STM32, lo que garantiza que actúe como un dispositivo diferente con su propio ID y claves.

Esta identificación única permite que el nuevo nodo funcione de forma independiente y se comunique con la puerta de enlace como un dispositivo independiente.

Al utilizar la ID del dispositivo STM32, los desarrolladores pueden evitar conflictos y garantizar una comunicación fluida entre varios nodos y la puerta de enlace. La identificación única de cada nodo permite un seguimiento y monitoreo precisos de espacios de estacionamiento individuales u otras aplicaciones.

La escalabilidad de este método lo hace ideal para configurar múltiples nodos en diferentes proyectos de IoT. Ya sea para estacionamiento inteligente, detección ambiental o seguimiento de activos, puede agregar fácilmente nuevos nodos a la red, haciendo que todo el sistema funcione en conjunto y recopile más datos.

contenido relacionado

Regresar al blog

Deja un comentario

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