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.
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
2. Abra a pasta e clique duas vezes em “.projeto”
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.
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.
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.
2. Conecte cinco fios à Mini Placa LoRa E5 conforme indicado na imagem abaixo, incluindo 3V3, SWDIO, SWCLK, RST e GND.
3. Volte para o STM32 Cube IDE e clique em 'Play; botão conforme mostrado abaixo para fazer upload do código.
4. Você deverá receber a mensagem “Download verificado com sucesso”.
Conectando os botões
Conecte os dois interruptores táteis conforme mostrado neste diagrama de circuito:
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’.
3. Clique em ‘Adicionar perfil de dispositivo’.
4. Preencha as informações gerais e clique em 'Enviar'.
5. Desligue o OTAA porque o dispositivo funcionará no modo ABP. Preencha os detalhes e frequência da taxa de dados RX3.
6. Ative o modo Classe C conforme mostrado abaixo.
7. Em seguida, adicione 'Aplicativos', que contêm todos os dispositivos.
8. Clique em ‘Adicionar aplicativos’.
9. Preencha os dados da inscrição conforme indicado abaixo na imagem.
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.
11. Comece a preencher os dados conforme mostrado abaixo. Você precisará encontrar o EUI do dispositivo, que abordaremos na próxima etapa.
Encontrando EUI e KEYs
1. Para encontrar o dispositivo EUI e as chaves, conecte o dispositivo a um PC via cabo USB.
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.
3. Copie o dispositivo EUI do terminal serial e cole-o no ChirpStack Adicione a seção do dispositivo conforme mostrado na imagem abaixo.
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.
Recebendo dados
1. Para receber dados, vá para a seção de eventos onde há dados 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.
3. Quando Button1 é pressionado, o sinalizador Button1 será HIGH nos dados a seguir (basta clicar uma vez com o mouse sem mantê-lo pressionado).
4. Quando Button2 é pressionado, o sinalizador Button2 será HIGH nos dados a seguir.
5. Quando ambos os botões são pressionados, o sinalizador será zero.
Algoritmo de código
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.
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.
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.
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.