Skip to content

leosimonato-eng/software_BMP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BMP Monitor v1.0.0

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.

Objetivo

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

Recursos principais

  • 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

Estrutura do projeto

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

Modos de operacao

Modo teste

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

Modo real

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

Dependencias do sistema no Ubuntu

Se seu ambiente ainda nao tiver venv e pip:

sudo apt install python3 python3-venv python3-pip

Instalacao

python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

Como rodar

python3 run.py

Abra no navegador:

http://127.0.0.1:5000

Passo a passo do modo teste

  1. Instale as dependencias.
  2. Rode python3 run.py.
  3. Abra http://127.0.0.1:5000.
  4. Confirme no painel: Versao 1.0.0 modo teste
  5. Ajuste no formulario: Temperatura alvo = 35 Massa VS = 1 Fracao padrao CH4 = 0.60
  6. Clique em Salvar configuracao.
  7. Clique em Iniciar experimento.
  8. Aguarde alguns minutos.
  9. Verifique: graficos se movendo volume acumulado subindo BMP aumentando logs sem erros recorrentes
  10. Exporte CSV e JSON.
  11. Clique em Parar experimento.
  12. Acesse GET /api/report para o resumo final.

Passo a passo do modo real

  1. Monte o biodigestor e valide a calibracao dos sensores.
  2. Programe o ESP32/Arduino para enviar uma linha JSON por segundo.
  3. Use examples/arduino_serial_example.ino como ponto de partida.
  4. Conecte o dispositivo via USB.
  5. Descubra a porta serial:
ls /dev/ttyUSB* /dev/ttyACM*
  1. No painel, configure: Modo de operacao = Real (serial USB) Porta serial = /dev/ttyUSB0 ou /dev/ttyACM0 Baudrate serial = 115200
  2. Ajuste tambem: temperatura alvo massa VS branco pressao limite volume de headspace
  3. Clique em Salvar configuracao.
  4. Confirme que o painel mostra modo real.
  5. Clique em Iniciar experimento.
  6. Monitore dashboard e logs.
  7. Ao final, pare o ensaio e exporte os resultados.

Configuracao via API

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
  }'

Formato esperado da serial

Uma linha JSON por leitura:

{"temperature":35.1,"ph":7.05,"pressure":103200,"gas_flow":0.0000012,"methane_fraction":0.61}

Endpoints principais

  • GET /api/status
  • GET /api/measurements?limit=1200
  • POST /api/settings
  • POST /api/experiment/start
  • POST /api/experiment/stop
  • POST /api/experiment/reset
  • GET /api/export/csv
  • GET /api/export/json
  • GET /api/report

Parametros cientificos

  • gas_flow em m3/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

Confiabilidade operacional

  • 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

Uso no VS Code

  1. Abra a pasta do projeto.
  2. Selecione .venv/bin/python.
  3. Rode python3 run.py no terminal integrado.
  4. Para debug, pressione F5.
  5. Para editar o nucleo tecnico, abra: project/backend/calculations.py project/backend/control.py

About

BMP Monitor is a Python/Flask system for real-time monitoring and analysis of bench-scale CSTR biodigesters for BMP assays, with PID control, data storage, gas calculations, and support for simulation or ESP32/Arduino integration.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors