Como LoRa pode impactar cidades inteligentes com sensores de estacionamento

Neste artigo, configuraremos um sensor de estacionamento usando dispositivos LoRa (longo alcance). LoRa é uma técnica de comunicação sem fio derivada da tecnologia Chirp Spread Spectrum (CSS).

Para este projeto, o Arduino Nano é conectado a um sensor ultrassônico, detectando a ocupação do estacionamento com base em medições de distância. Quando um veículo entra ou sai de uma vaga de estacionamento, o sensor ultrassônico sinaliza o Arduino, que se integra a uma Mini Board LoRa E5 como gateway de comunicação.

Quando há alteração no status de estacionamento, o Arduino é programado para enviar dados para o LoRa E5. Obviamente, essas informações são transmitidas sem fio ao gateway designado por meio da tecnologia LoRa. Os recursos de longo alcance e baixo consumo de energia do LoRa o tornam ideal para monitorar várias vagas de estacionamento. O sistema oferece dados de ocupação de estacionamento em tempo real, benéficos para soluções inteligentes de estacionamento em áreas urbanas e estabelecimentos comerciais.

A seguir fornece um guia de configuração de hardware e detalhes de programação, destacando as vantagens do LoRa – incluindo sua cobertura eficiente e maior vida útil da bateria. Ao aproveitar a tecnologia LoRa, esta solução de estacionamento inteligente contribui para uma melhor gestão do tráfego e experiência do utilizador, tornando-a adequada para integração em iniciativas de cidades inteligentes.

Diagrama de blocos do sensor de estacionamento LoRa com Arduino Nano e a Mini Board LoRa E5.

Abstrato

1. Como fazer upload do UART para o firmware da Mini Board Lora E5
2. Firmware para Arduino Nano
3. Diagrama de circuito e conexões
4. Adicionando um dispositivo no ChirpStack
5. Decodificação de dados LoRa
6. Fluxo do programa ou algoritmo e explicação

Requisitos
1.
Certifique-se de que o LoRa já esteja instalado
2. O programador STM32Cube deve estar instalado no seu PC
3. Miniplaca LoRa E5 da Seed Studio
4. Programador ST-Link V2 original
5. ArduinoNano
6. Sensor ultrassônico (HC-SR04)

Fazendo upload do código para LoRa

Este tutorial fornece o código do firmware da Mini Board LoRa E5 para facilitar a transmissão de dados para o gateway. Quando LoRa recebe dados por meio de comunicação receptor-transmissor assíncrono universal (UART), ele envia imediatamente todas as informações recebidas para um gateway específico.

O código está disponível em dois formatos: como arquivo de projeto e como arquivo hexadecimal pré-compilado. O arquivo hexadecimal pode ser carregado diretamente na Lora Mini Board, simplificando o processo.

Para fazer upload do código, os usuários podem escolher o arquivo hexadecimal pré-compilado ou compilar o arquivo do projeto usando STM32cube IDE.
Aqui, faremos upload diretamente do arquivo hexadecimal fornecido para a Mini Board LoRa E5, simplificando o processo de configuração. Este código permite que os desenvolvedores estabeleçam uma comunicação perfeita entre LoRa e o gateway, permitindo transferência eficiente de dados e aplicações IoT.

Este tutorial está disponível para desenvolvedores iniciantes e experientes, tornando-o um recurso valioso para projetos baseados em LoRa.

1. Localizar um ST-Link V2 genuíno é necessário para a atualização adequada do código LoRa, já que variantes clones do ST-Link são frequentemente não compatível. Isto significa que é essencial reconhecer o ST-Link original. Um método confiável de identificação envolve o exame dos componentes de hardware.

Após uma análise minuciosa, um ST-Link V2 genuíno possui um chip STM, indicando autenticidade. Os clones são normalmente importados da China e têm uma aparência ligeiramente diferente.

Este projeto requer um “processo de flashing” suave, que ocorre de forma confiável com um ST-Link genuíno com chip STM (veja a imagem abaixo). Saber a diferença garantirá compatibilidade e programação adequada.

ST-Link V2 original

2. Conecte cinco fios – 3V3, SWDIO, SWCLK, RST e GND – à Mini Placa LoRa E5 conforme mostrado abaixo.

Conexão ST-Link ao LoRa usando cinco fios, incluindo 3V3, SWDIO, SWCLK, RST e GND.

3. Abra o Programador STM32CUBE e clique no botão “Conectar”.

O alvo de conexão do programador STM32CUBE.

4. Selecione o arquivo Hex clicando na guia de arquivo aberto.

Abra o arquivo hexadecimal.

5. Clique no botão “Download” para fazer upload do código.

Carregue o código.

6. Quando um pop-up aparecer informando que o download do arquivo foi concluído, está tudo bem.

Download completo.

Fazendo upload do código para Arduino Nano
1. Abra o código Arduino Nano “Detecção de estacionamento” no Arduino IDE.

Abra o código “Detecção de estacionamento” no Arduino IDE.

3. Selecione “Placa” e “Porta” no menu suspenso do Arduino para fazer upload do código.

Selecione “Placa” e “Porta” no menu de ferramentas do Arduino IDE.

4. Carregue o código no Arduino.

Carregue o código no Arduino.

Diagrama de circuito

Diagrama do circuito de detecção de estacionamento usando Arduino, um sensor e a Mini Board LoRa-E5.

Conexões de circuito na placa de ensaio.

Adicionando um dispositivo ao gateway
1. Adicione um perfil de dispositivo se ainda não tiver um. Se fizer isso, não há necessidade de adicionar um novo perfil. O mesmo perfil pode ser usado para vários nós.

2. Se você ainda não possui um perfil, abra o ChirpStack e vá para “Perfis de dispositivos”.

Painel ChirpStack.

3. Clique em “Adicionar perfil de dispositivo”.

O “Adicionar perfil de dispositivo” no ChirpStack.

4. Preencha os dados gerais conforme imagem abaixo e clique em “Enviar”.

As informações gerais do perfil LoRa no ChirpStack.

5. Desligue o OTAA porque o dispositivo funcionará no modo ABP. Preencha todos os detalhes e frequência da taxa de dados do RX3.

Selecionando o modo ABP e preencha os detalhes da taxa de dados RX3.

6. Ative o modo Classe C conforme mostrado abaixo e clique em “Enviar”.

Habilite a Classe C.

7. Adicione o “Aplicativo”, que contém todos os dispositivos para ele.

Os “Aplicativos” contêm todos os dispositivos.

8. Clique em “Adicionar aplicativo”.

Clique em “Adicionar aplicativo”.

9. Preencha os detalhes da inscrição conforme indicado abaixo.

Os detalhes do “Aplicativo”.

11. Em seguida, clique no botão “Adicionar dispositivo”. Isso deve ser feito sempre que um novo dispositivo for adicionado.

Clique no botão “Adicionar dispositivo”.

12. Preencha os dados conforme imagem abaixo. Você notará que não há dispositivo EUI. Aprenderemos como encontrá-lo na próxima etapa.

O perfil “Adicionar dispositivo”, mas sem o EUI.

Como encontrar as chaves e o EUI
1.
Para encontrar as chaves, abra a porta serial onde o Arduino Nano está conectado e pressione o botão “Reset”.

O EUI detalha e codifica informações em série.

Decodificação de dados LoRa

Abra o aplicativo LoRa, que foi adicionado recentemente. Clique na aba “Eventos” para ver os dados.

Quando o estacionamento está vazio

Quando a distância do sensor é superior a 10 cm, ele envia a mensagem “Vazio” no gateway LoRa.

Quando há estacionamento vazio, a distância é superior a 10cm do sensor.

Um estacionamento vazio quando a distância for superior a 10 cm do sensor.

Os dados são representados em um valor hexadecimal. Você pode acessar qualquer site de conversão de hexadecimal para texto e colar esses dados.

A conversão de dados hexadecimais mostrada como “VAZIA”.

Quando a distância é inferior a 10 cm, ele envia a mensagem “Vazio” no gateway LoRa.

Quando há estacionamento ocupado, a distância é superior a 10cm do sensor.

O código hexadecimal como estacionamento ocupado

Os dados são novamente representados em um valor hexadecimal. Você pode acessar qualquer site de conversão de hexadecimal para texto e colar esses dados.

A conversão de dados hexadecimais como “OOCUPIED”.

Algoritmo

O algoritmo completo do aplicativo LoRa para sensor de estacionamento em cidades inteligentes.

Explicação do código

ArduinoNano
1. Nesta seção de código, o sensor ultrassônico emite uma onda sonora configurando o pino Trig para um estado alto. O sensor então recebe o eco desta onda sonora através do pino de eco. Medindo o tempo necessário para a recepção do eco, o código calcula a distância entre o sensor e o objeto que reflete a onda sonora.

Instantâneo do código que mede a distância entre o sensor e um objeto que reflete a onda sonora.

2. Esta parte do código detecta a condição da área de estacionamento e a envia para o dispositivo LoRa.

Um instantâneo do código detecta a condição da área de estacionamento.

Miniplaca LoRa E5
1. Abra o arquivo lora_app.c, que contém todo o código.

O arquivo de código principal.

2. O CMD_GetChar função lê os caracteres disponíveis no UARTe quando recebe '\n'ele chama o CMD_processque é enviado LoRa.

Recebendo dados do UART.

3. Esta função transfere os caracteres recebidos para o buffer de dados do aplicativo. Não armazenará o '\n' ou '\r'. Em seguida, ele envia para o gateway LoRa.

O processo da função LoRa “Enviar”.

Comunicação multinó

Depois de integrar com sucesso um sensor de estacionamento com LoRa, a mesma configuração e circuito podem ser facilmente replicados para outro nó. Cada nó é identificado exclusivamente usando o ID do dispositivo STM32, garantindo que ele atue como um dispositivo diferente com seu próprio ID e chaves.

Esta identificação exclusiva permite que o novo nó opere de forma independente e se comunique com o gateway como um dispositivo separado.

Ao usar o ID do dispositivo STM32, os desenvolvedores podem evitar conflitos e garantir uma comunicação tranquila entre vários nós e o gateway. O ID exclusivo de cada nó permite rastreamento e monitoramento precisos de vagas de estacionamento individuais ou outras aplicações.

A capacidade de crescimento deste método o torna ideal para configurar vários nós em diferentes projetos de IoT. Seja para estacionamento inteligente, detecção do ambiente ou rastreamento de ativos, você pode facilmente adicionar novos nós à rede, fazendo com que todo o sistema trabalhe em conjunto e colete mais dados.

Conteúdo Relacionado

Voltar para o blog

Deixe um comentário

Os comentários precisam ser aprovados antes da publicação.