Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ESP32 Air Monitor

Monitor de calidad del aire basado en ESP32 + BME680 + BSEC2 + pantalla e-ink, con conectividad WiFi, integración MQTT, panel web embebido y actualización OTA desde navegador.

El proyecto está pensado como un dispositivo autónomo de escritorio que muestra en pantalla temperatura, humedad, IAQ y eCO2, y al mismo tiempo expone una interfaz web local para configuración, histórico y mantenimiento.

Funcionalidades

  • Lectura de temperatura, humedad, IAQ y eCO2 con BME680 y Bosch BSEC2
  • Visualización local en pantalla e-ink 1.54"
  • Pantalla de bienvenida con datos de red al arrancar
  • Panel web servido desde LittleFS
  • Configuración de idioma: español, inglés y polaco
  • Configuración MQTT desde la web
  • Integración MQTT con autodiscovery para Home Assistant
  • OTA desde navegador en la ruta /ota
  • Histórico ligero en RAM para gráficas web
  • Persistencia de configuración en NVS, separada del filesystem web

Hardware

  • ESP32 Dev Module / Wemos ESP32
  • BME680 por I2C
  • Pantalla e-ink 1.54" compatible con GxEPD2_154_D67
  • Alimentación por USB 5V

Conexionado

BME680

Señal ESP32
SDA GPIO 21
SCL GPIO 22
VCC 3V3
GND GND

Pantalla e-ink

Señal ESP32
BUSY GPIO 4
RES GPIO 16
DC GPIO 17
CS GPIO 5
SCK / CLK GPIO 18
MOSI / DIN / SDA GPIO 23
VCC 3V3
GND GND

Esquema lógico

ESP32
├── I2C ──> BME680
│   ├── GPIO21 SDA
│   └── GPIO22 SCL
└── SPI ──> E-Ink 1.54"
    ├── GPIO5  CS
    ├── GPIO17 DC
    ├── GPIO16 RES
    ├── GPIO4  BUSY
    ├── GPIO18 SCK
    └── GPIO23 MOSI

Arquitectura del proyecto

src/
├── main.cpp            Arranque y bucle principal
├── SensorManager.cpp   Lectura BME680/BSEC2
├── DisplayManager.cpp  Interfaz e-ink
├── NetworkManager.cpp  Conexión WiFi y portal
├── MqttManager.cpp     Publicación MQTT y discovery
├── WebManager.cpp      API, OTA y servidor web
├── HistoryManager.cpp  Histórico en RAM para gráficas
└── ConfigManager.cpp   Persistencia en NVS y migración legacy

Interfaz web

La interfaz se sirve desde LittleFS:

  • / panel principal
  • /ota actualización OTA
  • /api/status estado actual en JSON
  • /api/history histórico en JSON

Archivos web:

  • data/index.html
  • data/styles.css
  • data/app.js

Persistencia

La configuración del dispositivo se guarda en NVS:

  • broker MQTT
  • puerto MQTT
  • usuario y contraseña
  • prefijo MQTT
  • intervalo de refresco de pantalla
  • intervalo de muestreo del histórico
  • idioma de la interfaz

La web y los recursos estáticos viven en LittleFS, así que se pueden actualizar sin perder la configuración.

Compilación y carga

Compilar firmware

pio run

Subir firmware

pio run -t upload --upload-port COM4

Subir solo la web

pio run -t uploadfs --upload-port COM4

Configuración por defecto

Los valores incluidos en platformio.ini son genéricos y sirven solo como defaults de arranque limpio. No se usan para sobreescribir la configuración ya guardada en el dispositivo.

Estado actual

  • Proyecto listo para publicarse en GitHub sin credenciales MQTT reales
  • Web desacoplada del firmware
  • OTA integrada sin dependencias externas de branding
  • Configuración persistente protegida frente a cambios del filesystem

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages