Protótipo demonstrável para monitorar rios e lagos: API REST recebe leituras de pH, temperatura e turbidez, classifica o status da água (boa / crítica) e gera alertas automáticos. Inclui dashboard web e simulador de sensores.
# 1. Instalar dependências
npm install
# 2. Terminal 1 — API + dashboard
npm start
# 3. Terminal 2 — simulador de sensores (dados mockados)
npm run mock
# 4. Abrir no navegador
# http://localhost:3000O simulador envia leituras a cada 5 segundos (~80% boas, ~20% críticas para exibir alertas).
| Método | Rota | Descrição |
|---|---|---|
POST |
/api/readings |
Registra leitura { ph, temperature, turbidity, location? } |
GET |
/api/readings |
Histórico (?limit=20) |
GET |
/api/readings/latest |
Última leitura |
GET |
/api/status |
Status atual |
GET |
/api/alerts |
Alertas (?limit=10) |
GET |
/health |
Health check |
curl -X POST http://localhost:3000/api/readings \
-H "Content-Type: application/json" \
-d '{"ph": 7.2, "temperature": 22, "turbidity": 3, "location": "Lago Central"}'| Parâmetro | Faixa "boa" |
|---|---|
| pH | 6,5 – 8,5 |
| Temperatura | 15 – 30 °C |
| Turbidez | ≤ 5 NTU |
Qualquer parâmetro fora da faixa → status crítica + alerta automático.
src/
server.js # Express
routes/api.js # Rotas REST
services/ # Lógica e persistência JSON
mock/sensor.js # Simulador
public/ # Dashboard
data/ # readings.json, alerts.json
- NestJS, SQLite/PostgreSQL, autenticação
- WebSockets para tempo real
- Swagger/OpenAPI
- Integração com sensores IoT reais