Sistema local para monitoramento, controle e analise BMP em biodigestor CSTR de bancada.
Esta e a versao 1 real do projeto, organizada para uso local, testes sem hardware e operacao real com ESP32/Arduino via serial USB.
O BMP Monitor foi criado para:
- coletar dados em tempo real
- controlar variaveis criticas do reator
- calcular biogas, metano e BMP com consistencia
- permitir validacao em modo teste
- permitir operacao em modo real
- manter o projeto simples, direto e facil de manter
- backend Flask leve
- banco SQLite local
- dashboard web com Plotly
- calculo de BMP com correcao de branco
- ajuste cinetico
B(t) = B0 * (1 - exp(-k * t)) - controle PID de temperatura
- logs de sistema
- exportacao CSV, JSON e relatorio JSON
- modo teste simulado
- modo real via serial USB
project/
backend/
app.py
calculations.py
control.py
database.py
sensors.py
frontend/
index.html
script.js
style.css
examples/
arduino_serial_example.ino
scripts/
start.sh
.vscode/
launch.json
run.py
requirements.txt
Use quando quiser validar o software sem hardware real.
sensor_mode = simulated- gera sinais sinteticos de temperatura, pH, pressao, fluxo e CH4
- ideal para conferir graficos, banco, exportacao e calculos
Use quando o sistema estiver ligado ao microcontrolador e sensores.
sensor_mode = serial- espera uma linha JSON por segundo pela porta USB
- ideal para ensaio real em bancada
Se seu ambiente ainda nao tiver venv e pip:
sudo apt install python3 python3-venv python3-pippython3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtpython3 run.pyAbra no navegador:
http://127.0.0.1:5000
- Instale as dependencias.
- Rode
python3 run.py. - Abra
http://127.0.0.1:5000. - Confirme no painel:
Versao 1.0.0modo teste - Ajuste no formulario:
Temperatura alvo = 35Massa VS = 1Fracao padrao CH4 = 0.60 - Clique em
Salvar configuracao. - Clique em
Iniciar experimento. - Aguarde alguns minutos.
- Verifique: graficos se movendo volume acumulado subindo BMP aumentando logs sem erros recorrentes
- Exporte CSV e JSON.
- Clique em
Parar experimento. - Acesse
GET /api/reportpara o resumo final.
- Monte o biodigestor e valide a calibracao dos sensores.
- Programe o ESP32/Arduino para enviar uma linha JSON por segundo.
- Use
examples/arduino_serial_example.inocomo ponto de partida. - Conecte o dispositivo via USB.
- Descubra a porta serial:
ls /dev/ttyUSB* /dev/ttyACM*- No painel, configure:
Modo de operacao = Real (serial USB)Porta serial = /dev/ttyUSB0ou/dev/ttyACM0Baudrate serial = 115200 - Ajuste tambem: temperatura alvo massa VS branco pressao limite volume de headspace
- Clique em
Salvar configuracao. - Confirme que o painel mostra
modo real. - Clique em
Iniciar experimento. - Monitore dashboard e logs.
- Ao final, pare o ensaio e exporte os resultados.
Se preferir, o modo real tambem pode ser configurado via curl:
curl -X POST http://127.0.0.1:5000/api/settings \
-H "Content-Type: application/json" \
-d '{
"sensor_mode": "serial",
"serial_port": "/dev/ttyUSB0",
"serial_baudrate": 115200,
"target_temperature_c": 35.0,
"substrate_vs_mass_g": 1.2,
"blank_ch4_norm_ml": 15.0,
"methane_fraction_default": 0.60
}'Uma linha JSON por leitura:
{"temperature":35.1,"ph":7.05,"pressure":103200,"gas_flow":0.0000012,"methane_fraction":0.61}GET /api/statusGET /api/measurements?limit=1200POST /api/settingsPOST /api/experiment/startPOST /api/experiment/stopPOST /api/experiment/resetGET /api/export/csvGET /api/export/jsonGET /api/report
gas_flowemm3/s- volumes internos em
m3 - volumes exibidos no dashboard em
NmL - BMP em
NmL CH4 / g VS - correcao de branco por
blank_ch4_norm_ml - sem sensor CH4, o sistema usa
methane_fraction_default
- persistencia continua em SQLite
- logs no banco e em
data/system.log - filtro de media movel para ruido
- loop de aquisicao com tratamento de erro
- protecao termica acima de 45 C
- alerta de sobrepressao
- separacao clara entre aquisicao, controle, calculo e interface
- Abra a pasta do projeto.
- Selecione
.venv/bin/python. - Rode
python3 run.pyno terminal integrado. - Para debug, pressione
F5. - Para editar o nucleo tecnico, abra:
project/backend/calculations.pyproject/backend/control.py