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

A tecnologia LoRa (longo alcance) garante comunicação confiável de longo alcance entre um nó e um gateway, fornecendo uso de baixo consumo de energia para dispositivos a longo prazo. Este artigo fornece uma explicação da comunicação LoRa nó para gateway enquanto apresenta um nó equipado com dois botões para controlar as bandeiras. Esses botões permitem que os usuários ativem ou desativem ações específicas associadas a cada botão e atualizem o status no gateway.

Da automação residencial ao monitoramento industrial, esta configuração aprimorada de comunicação LoRa apresenta diversas possibilidades para implantações de Internet das Coisas (IoT).

Este tutorial cobrirá a configuração de hardware, seleção de protocolo e configuração de gateway, facilitando a transmissão e visualização de dados em tempo real.

Um diagrama de blocos da comunicação LoRa nó para gateway.

Abstrato
Aqui está o que iremos cobrir…

1. Como fazer upload do código LoRa para a Mini-Board LoRa E5
2. Diagrama de circuito para conectar um ST-Link e os botões à Mini-Board LoRa E5
3. Como configurar um nó final no gateway
4. O fluxo ou algoritmo do programa com uma explicação

Requisitos

1. Certifique-se de que o gateway LoRa já esteja instalado conforme mostrado neste artigo
2. STM32Cube IDE deve estar instalado em seu PC
3. A miniplaca LoRa E5 da Seed Studio
4. O programador ST-Link V2 original
5. Um interruptor tátil e alguns conhecimentos básicos de soldagem

Compilando o código

1. Baixe o código e extraia-o

Baixe o código e extraia-o da pasta.

2. Abra a pasta e clique duas vezes em “.projeto”

Abra o arquivo do projeto no STM32Cube IDE.

3. O projeto será listado na guia 'Project Explorer' à esquerda do STM32CUBE IDE. Selecione o projeto e clique no ícone do martelo na barra superior para compilar o código.

Compilando o código no IDE STM32CUBE.

4. Após compilar o código, não deverá haver nenhum erro conforme mostrado na imagem abaixo. Se houver uma mensagem de erro, siga as etapas novamente para garantir o sucesso.

Compilação bem-sucedida com zero erros.

Carregando o código

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.

Um ST-Link V2 original.

2. Conecte cinco fios à Mini Placa LoRa E5 conforme indicado na imagem abaixo, incluindo 3V3, SWDIO, SWCLK, RST e GND.

A conexão ST-Link entre o ST-Link V2 e o LoRa-E5.

3. Volte para o STM32 Cube IDE e clique em 'Play; botão conforme mostrado abaixo para fazer upload do código.

Carregando o código com o botão ‘Play’ no STM32 Cube IDE.

4. Você deverá receber a mensagem “Download verificado com sucesso”.

A mensagem “Download verificado com sucesso“ você deve receber antes de prosseguir.

Conectando os botões
Conecte os dois interruptores táteis conforme mostrado neste diagrama de circuito:

O diagrama de circuito para os interruptores táteis.

A conexão entre o botão tátil e o LoRa-5E.

Adicionando um dispositivo ao gateway

1. Se não houver perfil de dispositivo, adicione um. Se você já tiver um, esse mesmo perfil poderá ser usado para vários nós.

2. Para adicionar um perfil, abra o ChirpStack e vá para ‘Perfis de dispositivos’.

Os 'Perfis de dispositivo' no painel do Chirpstack.

3. Clique em ‘Adicionar perfil de dispositivo’.

O botão 'Adicionar perfil de dispositivo'.

4. Preencha as informações gerais e clique em 'Enviar'.

Informações gerais do perfil de LoRa para preencher.

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

A junção (OTAA/ABP) na janela de perfil geral do LoRa… selecione ABP.

6. Ative o modo Classe C conforme mostrado abaixo.

Habilite a Classe C no perfil geral do LoRa.

7. Em seguida, adicione 'Aplicativos', que contêm todos os dispositivos.

Janela 'Aplicativo' do LoRa.

8. Clique em ‘Adicionar aplicativos’.

Clique em ‘Adicionar aplicativo’ do LoRa.

9. Preencha os dados da inscrição conforme indicado abaixo na imagem.

Preencha o formulário de 'Inscrição'.

10. Clique no aplicativo que acabou de ser criado e depois clique no botão ‘Adicionar dispositivo’. Este processo deve ser feito sempre que um novo dispositivo for adicionado.

Clique em ‘Adicionar dispositivo’.

11. Comece a preencher os dados conforme mostrado abaixo. Você precisará encontrar o EUI do dispositivo, que abordaremos na próxima etapa.

Janela do dispositivo com as informações ausentes do EUI do dispositivo.

Encontrando EUI e KEYs

1. Para encontrar o dispositivo EUI e as chaves, conecte o dispositivo a um PC via cabo USB.

Conexão USB entre o dispositivo e um PC.

2. Abra qualquer terminal serial (estamos usando Arduino) e selecione a porta do dispositivo. Abra o Terminal Serial com uma taxa de transmissão de 115200. Pressione o botão 'Reset' para ver as Chaves.

Janela do Terminal Serial do Arduino… usada para encontrar as Chaves.

As informações de EUI e chaves.

3. Copie o dispositivo EUI do terminal serial e cole-o no ChirpStack Adicione a seção do dispositivo conforme mostrado na imagem abaixo.

Os dados EUI do dispositivo.

4. Vá para a seção ‘Ativação’ e preencha o endereço do dispositivo, AppSkey e chave Network S, que você pode obter no Terminal Serial.

A 'Ativação' do dispositivo.

Recebendo dados

1. Para receber dados, vá para a seção de eventos onde há dados recebidos a cada 10 segundos.

Os eventos do dispositivo recebidos a cada 10 segundos.

2. Os dados estão em formato hexadecimal. Envia o nível da bateria, bem como o status do Button1 e Button2, em hexadecimal.

O formato de dados hexadecimal.

3. Quando Button1 é pressionado, o sinalizador Button1 será HIGH nos dados a seguir (basta clicar uma vez com o mouse sem mantê-lo pressionado).

Este é o LoRa-5 conectado aos botões táticos quando o Button1 é clicado.

Quando o Botão1 é pressionado, o sinalizador será ALTO.

4. Quando Button2 é pressionado, o sinalizador Button2 será HIGH nos dados a seguir.

Este é o LoRa-5 conectado aos botões táticos quando o Botão2 é clicado.

Quando o Botão2 é pressionado, o sinalizador será ALTO.

5. Quando ambos os botões são pressionados, o sinalizador será zero.

Quando ambos os botões são clicados, o sinalizador será zero.

Algoritmo de código

O algoritmo.

Explicação do código

1. O código STM32 baseado em LoRa é ligeiramente diferente dos códigos típicos. O arquivo main.c inicia o processo para executar lora_app.c como arquivo principal. Então, abra o lora_app.c que contém o código.

O lora_app.c como arquivo principal.

2. Há muita coisa acontecendo no código, mas vamos revisar o que é relevante para este tutorial. A condição abaixo inicia um temporizador, que chama o Evento OnTxTimer função que envia dados para o gateway. O tempo padrão é 10 segundos, que pode ser alterado inicializando o TxPeriodicidade em milissegundos. A imagem abaixo remove o APP_TX_DUTYCYCLE e coloca o atraso de tempo necessário em milissegundos.

Explica a função OnTxTimerEvent para enviar dados no gateway LoRa.

Esta função trata de todas as interrupções que ocorrem nos pinos de interrupção. Há um atraso de 100 milissegundos para fins de depuração.

O EnviarTxData função contendo um buffer para enviar dados para o LoRa.

Integrando medidores inteligentes

Medidores inteligentes com sensores de pulso podem ser perfeitamente integrados ao código acima. Os sensores de pulso geram pulsos sempre que a leitura do medidor aumenta, agindo como se o botão interrompesse neste tutorial. Ao configurar um microcontrolador (MCU) para reconhecer esses pulsos como interrupções, um usuário pode rastrear efetivamente as leituras do medidor em tempo real.

Sempre que um pulso é recebido pelo pino de interrupção, o MCU incrementará a leitura do medidor e a armazenará como uma variável. O código pode então ser programado para enviar essas leituras ao gateway em intervalos regulares, como a cada 10 segundos. A frequência de transmissão pode ser ajustada para atender aos requisitos específicos da aplicação.

Esta integração melhora a funcionalidade dos medidores inteligentes, permitindo o rastreamento preciso e automatizado do consumo de energia. Com leituras em tempo real, as concessionárias podem monitorar com eficiência o uso, identificar padrões e otimizar a distribuição de energia. O código versátil pode ser ajustado para diferentes configurações de sensores de pulso, para que possa funcionar com muitos designs de medidores inteligentes.

Conteúdo Relacionado

Voltar para o blog

Deixe um comentário

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