Skip to content

Repository files navigation

PIMA — Plataforma Integrada de Monitoramento Ambiental

LoRa mesh de telemetria ambiental (Lab HidroSens): nós sensores autônomos de baixíssimo consumo entregam dados meteorológicos/hídricos por roteamento multi-salto a um gateway, que sincroniza com o backend. Bidirecional — o operador envia comandos autenticados aos nós via LoRa.

Hardware: Heltec WiFi LoRa 32 V4 (ESP32-S3R2 + SX1262), banda BR 915 (AU915).

📐 Arquitetura, glossário, invariantes e "como adicionar um sensor" em CLAUDE.md. Material de referência (pinout V4, datasheets, atos ANATEL) em docs/reference/.

Estado

  • Fase 0 ✅ — camada mesh bidirecional sobre RadioLib: flooding controlado (TTL + de-dup), transporte seguro-confiável próprio (AEAD XChaCha20-Poly1305 com PSK, anti-replay por contador, downlink unicast com ACK + retry, janela Class-A), simulação nativa + suíte de testes determinística.
  • Fase 1 ✅abstração de sensor: interface Sensor + registry + payload CBOR/SenML dirigido por metadados. Adicionar um sensor = 1 arquivo + 1 linha, sem tocar no encoder/decoder (provado por teste). Por ora só um sensor sintético de valores de teste — drivers reais virão depois.

LoRaMesher foi avaliado e não adotado: nenhuma das suas gerações entrega ACK + cripto + build nativo simultaneamente (ver CLAUDE.md › Decisões).

Quickstart

# Testes nativos + simulação (Linux/GCC)
cmake -G Ninja -S native -B build/native && cmake --build build/native
ctest --test-dir build/native --output-on-failure
#   Windows/MSVC: scripts\native-test.bat

# Firmware (Heltec V4 / ESP32-S3)
arduino-cli compile --fqbn esp32:esp32:esp32s3 --library firmware/mesh firmware/node
arduino-cli compile --fqbn esp32:esp32:esp32s3 --library firmware/mesh firmware/gateway

Segredos

Nenhum segredo no repo. Copie firmware/<role>/pima_secrets.example.h para pima_secrets.h (gitignored) e gere a PSK com openssl rand -hex 32. Sem esse arquivo o build compila com uma chave de dev insegura + #warning.

Roadmap

0 mesh ✅ · 1 abstração de sensor ✅ · 2 handler de comandos (NVS) · 3 gateway Wi-Fi/MQTT + downlink · 4 backend TimescaleDB + API · 5 retenção/alertas · 6 multi-sensor + front-end analógico + energia · 7 overlay WireGuard. (Dashboard depois.)

Licença

Código do projeto: a definir. Dependência vendorizada: Monocypher (firmware/mesh/src/vendor/monocypher, domínio público / BSD-2).

About

PIMA — Plataforma Integrada de Monitoramento Ambiental (Lab HidroSens): rede LoRa mesh para sensoriamento ambiental remoto (firmware ESP32-S3/SX1262 + backend TimescaleDB + dashboard)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages