Giter Club home page Giter Club logo

lorawan_freertos_esp32's Introduction

Projeto - comunicação LoRaWAN, usando SX1276 e ESP32

Este repositório contém um projeto de end-device LoRaWAN (ABP), preparado para se conectar a rede pública da ATC (American Tower Corporation). No quesito hardware, este projeto utiliza a placa de desenvolvimento Heltec WiFi LoRa v1 (alimentado a bateria ou via cabo USB) e sensor o BMP180 (pressão barométrica e temperatura ambiente). Esta placa de desenvolvimento conta com o SX1276 como rádio LoRa e o ESP32 como SoC. Todo o software embarcado é feito utilizando o FreeRTOS como sistema operacional embarcado. Esse projeto deve ser aberto e compilado na Arduino IDE. O projeto possui as seguintes finalidades:

  • Leitura periódica da pressão barométrica (hPa) e da temperatura ambiente (°C) medidos pelo sensor BMP180
  • Leitura periódica da tensão de bateria (V) e carga da bateria (0 .. 100%)
  • Envio periódico (30 em 30 minutos) das medições para o gateway LoRaWAN (o software embarcado já está preparado para funcionar com a operadora ATC)
  • Exibição das medições no display OLED 128x64 contido na placa de desenvolvimento.

IMPORTANTE:

  1. Este projeto considera a tensão da bateria lida no GPIO37 (ADC1_1), onde a tensão é lida num divisor de tensão (resistor de 470k / 0,25W e resistor de 100k / 0,25W).

NÃO SE ESQUEÇA DE USAR O DIVISOR DE TENSÃO AQUI!! O ADC do ESP32 suporta, no máximo, 1,1V (0dB), enquanto a tensão de bateria pode chegar a 4,2V.

  1. Esse projeto faz uso da biblioteca "MCCI LoRaWAN LMIC Library". Este projeto foi testado com a versão 2.3.2 da mesma.
  2. Antes de compilar, é preciso deixar o arquivo lmic_project_config.h (dentro na pasta da biblioteca: project_config/lmic_project_config.h) com o conteúdo conforme abaixo:
// project-specific definitions
//#define CFG_eu868 1
//#define CFG_us915 1
#define CFG_au921 1
//#define CFG_as923 1
// #define LMIC_COUNTRY_CODE LMIC_COUNTRY_CODE_JP      
//#define CFG_in866 1
#define CFG_sx1276_radio 1
//#define LMIC_USE_INTERRUPTS
  1. Você precisará da network session key, application session key (definidos por você ou pela operadora da ATC) e do Device Address (fornecido pela operadora em caráter experimental ou adquirido por meios oficiais). Substitua estas informações no arquivo LORAWAN_defs.h. Para obtenção das chaves e tudo mais em termos de conectividade LoRaWAN, entre em contato com uma das empresas credenciadas pela ATC:

https://iotopenlabs.io/home/catalogo-de-solucoes/conectividade-lorawan/

  1. O circuito esquemático encontra-se na pasta "ckt_esquematico", tanto como figura como no formato Fritzing.

Este projeto é de autoria de Pedro Bertoleti.

Agradecimentos as seguintes pessoas:

  • Professor Marcelus Guirardello (ETEC - Bento Quirino - Campinas-SP), por toda a ajuda na codificação da comunicação LoRaWAN.
  • Renan Tesch, por toda a ajuda na melhoria da rotina de leitura de tensão de bateria.
  • José Morais, por toda a ajuda com revisão de código e rotinas de watch dog.

lorawan_freertos_esp32'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.