Giter Club home page Giter Club logo

contador_pulsos_lorawan's Introduction

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.

contador_pulsos_lorawan's People

Contributors

phfbertoleti avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.