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:
- 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.
- Esse projeto faz uso da biblioteca "MCCI LoRaWAN LMIC Library". Este projeto foi testado com a versão 2.3.2 da mesma.
- 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
- 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/
- 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.