phfbertoleti / contador_pulsos_lorawan

Contador de pulsos com LoRaWAN, com ESP32-C3 e módulo LoRaWAN SMW SX1262M0

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Contador de pulsos com conectividade LoRaWAN

Introdução

Este é o repositório de um projeto de um contador de pulsos com conectividade LoRaWAN, usando como principais items de hardware um ESP32-C3 e módulo LoRaWAN SMW SX1262M0.

Este projeto foi desenvolvido para a placa DevKit ESP32-C3 LoRaWAN, cuja imagem pode ser vista abaixo:

Foto do DevKit

O que este projeto faz?

Este projeto é capaz de:

  • Contabilizar até duas entradas pulsadas (borda de descida), localizadas nos GPIOs 3 e 4.
  • Enviar periodicamente (a título de exemplo, a cda 15 segundos, tempo este definido em TEMPO_MIN_ENTRE_ENVIOS_LORAWAN_MS) a contabilização dos pulsos. O payload LoRaWAN tem 8 bytes, sendo 4 bytes para cada contador.
  • O limite de pulsos contabilizados por entrada é de 4.294.967.296 (valor de 32-bits).
  • A cada certo número de envios (definido por NUM_ENVIOS_PARA_GRAVAR_CONTADORES_NVS), é feito o salvamento dos valores dos contadores na partição NVS do ESP32. Desse modo, se o módulo perder a alimentação (após feito um salvamento), o número de pulsos contados será resgatado.
  • Neste projeto, utiliza-se o LoRaWAN classe A, modo ABP e sem confirmação de envio.

Motivação do projeto

Muitos instrumentos de medição de consumo de água, consumo de gás e até mesmo consumo de energia possuem uma saída pulsada, onde cada pulso gerado significa um certo consumo registrado (exemplo: em um hidrômetro deste tipo, há modelos que geram 1 pulso / litro de água consumido). Normalmente, estes pulsos são gerados por reed-switches, sendo portanto um contato seco.

O projeto é capaz de ler tais pulsos (inclusive, fazendo debounce de ambas entradas pulsadas) e enviar, por LoRaWAN, os contadores. Desta forma, no "receptor" de tais dados (plataforma IoT, por exemplo), é possível estabelecer a relação de pulsos / consumo do medidor ao qual o projeto está conectado e calcular, na plataforma iot / nuvem, o consumo total.

Exemplos de equipamentos com saidas pulsadas nos quais este projeto pode ser usado:

Como usar o projeto?

Este projeto foi feito utilizando-se o ESP-IDF 4.4, a partir da extensão do ESP-IDF para o VSCode. Portanto, basta instalar a extensão com a versão 4.4 do ESP-IDF para ser capaz de compilar, gravar e modificar este projeto.

Veja como instalar a extensão no seu Visual Studio Code neste link.

About

Contador de pulsos com LoRaWAN, com ESP32-C3 e módulo LoRaWAN SMW SX1262M0

License:MIT License


Languages

Language:C 92.3%Language:Dockerfile 3.0%Language:Python 2.1%Language:CMake 1.6%Language:Makefile 1.0%