Sobre el proyecto
TaupunktLueftung es un sistema basado en ESP32 para el control inteligente de ventilación según la diferencia de punto de rocío. Es ideal para el secado dirigido de ambientes húmedos como sótanos, lavaderos o áreas de almacenamiento: eficiente y totalmente automático.
El sistema mide temperatura y humedad en interiores y exteriores (mediante sensores como SHT31 o DHT22, o vía MQTT), calcula los puntos de rocío y activa la ventilación solo cuando existen condiciones de secado, es decir, cuando el aire exterior es capaz de absorber humedad en lugar de introducirla. En el modo de control de humedad, intenta mantener un nivel de humedad deseado mediante deshumidificación o humidificación.
La ventilación se conmuta mediante un relé, idealmente en una configuración con dos ventiladores: uno introduce aire seco y el otro extrae aire húmedo. Esto crea un flujo de aire efectivo para la deshumidificación dirigida.
## Características
- Ventilación controlada por punto de rocío para deshumidificación dirigida: un algoritmo de análisis de punto de rocío controla la ventilación según la diferencia.
- Las credenciales WiFi se configuran a través del punto de acceso (`TaupunktLueftung-Setup`) en el navegador y se almacenan permanentemente. No se necesita edición manual en `secrets.h`.
- Interfaz web con visualización de datos en vivo, gráficos en tiempo real (vistas por hora, día y mes) y área de configuración.
- **Diseño claro/oscuro (Claro/Oscuro/Sistema)**, conmutable mediante menú desplegable; la elección se guarda en el navegador.
- **Protección de inicio de sesión (HTTP Basic Auth)** para toda la interfaz web, con nombre de usuario y contraseña modificables durante el funcionamiento.
- Protección opcional contra sobreenfriamiento.
- Protección opcional contra humedad demasiado baja.
- Modo opcional de control de humedad para mantener un nivel de humedad deseado.
- **A prueba de fallos ante fallo de sensor**: si persiste un error de sensor, la ventilación se apaga automáticamente como medida de seguridad en lugar de funcionar indefinidamente en el último estado.
- Tiempos de retardo ajustables para protección del ventilador/relé en áreas límite.
- Interfaz MQTT (publicar y suscribir) + autodescubrimiento de Home Assistant.
- Modular: fuente de sensor seleccionable (hardware o datos MQTT), conmutable directamente en el área "Fuente de sensor".
- Respaldo de firmware: el firmware actual en ejecución se puede guardar como `.bin` antes de una actualización.
- Las credenciales WiFi se pueden restablecer mediante un botón en la interfaz web sin perder otras configuraciones.
- Admite actualizaciones de firmware por aire (OTA). Después del flasheo inicial por USB desde el IDE de Arduino, las variantes de firmware personalizadas se pueden actualizar por OTA desde el IDE de Arduino, o cargar desde un archivo de firmware a través de la interfaz web.
- Optimizaciones de rendimiento (desde v4.2): CSS/JavaScript se almacenan en caché en el navegador en lugar de recargarse desde el ESP32 en cada visita a la página; una corrección WiFi mantiene el modo de suspensión del módem permanentemente deshabilitado (evita retrasos notables después de reconexiones WiFi); los intentos de reconexión MQTT se limitan para que un broker inalcanzable no bloquee la interfaz web.
## Componentes Requeridos y Configuración
### Componentes de Hardware
| Componente | Descripción | Precio Aprox. (EUR) |
| --- | --- | --- |
| **Placa de desarrollo ESP32** (p. ej., DOIT) | Microcontrolador con WiFi | 6–10 EUR |
| **Sensor SHT31 (interior, opcionalmente exterior)** | Temperatura y humedad, I2C, alta precisión | 5–8 EUR cada uno |
| **Sensor DHT22 (exterior, alternativa)** | Temperatura y humedad, un solo cable digital, más barato | 3–5 EUR |
| **LEDs (3x)** + resistencias (220–470 ohm) | Indicadores de estado: verde, amarillo, rojo | 1–2 EUR |
| **Módulo de relé (1 canal)** | Para controlar la ventilación | 2–4 EUR |
| **Cables de puente / placa de pruebas** | Para configuración y pruebas | 2–5 EUR |
| **Carcasa (opcional)** | Protección para ESP32 y cableado | 3–8 EUR |
**Costo total:** aprox. **20–30 EUR**, según configuración y fuente.
### Configuración y Cableado
**Distribución de pines del ESP32:**
| Pin ESP32 | Función | Conectado a |
| --- | --- | --- |
| GPIO17 | Línea de datos DHT22 | DHT22 (con pull-up de 10 kohm) a GND – solo para variante DHT22 |
| GPIO16 | Relé | Relé IN |
| GPIO2 | LED verde | Resistencia + LED |
| GPIO18 | LED rojo | Resistencia + LED |
| GPIO19 | LED amarillo | Resistencia + LED |
| GPIO21 | SDA (datos I2C) | SHT31 interior **y** SHT31 exterior (bus compartido) |
| GPIO22 | SCL (reloj I2C) | SHT31 interior **y** SHT31 exterior (bus compartido) |
| 3.3V/GND | Alimentación | Todos los componentes |
### Esquema ASCII Simplificado
```
+----------------------------+
| ESP32 Dev |
| |
| GPIO17 --> Datos DHT22 | (solo variante DHT22)
| GPIO16 --> Relé IN |
| GPIO2 --> LED verde |
| GPIO18 --> LED rojo |
| GPIO19 --> LED amarillo |
| GPIO21 --> SDA (SHT31) |
| GPIO22 --> SCL (SHT31) |
+-------------+--------------+
| 3.3V / GND
```
LEDs: Ánodo (pin largo) → resistencia → GPIO / Cátodo (pin corto) → GND
### Selección del Sensor Exterior
Este proyecto admite dos tipos de sensores para el sensor exterior:
- **SHT31 (recomendado)** – sensor digital I2C, significativamente más preciso y estable que el DHT22 (típicamente ±2% HR vs ±2–5% HR para DHT22), responde más rápido a los cambios, proporciona valores confiables incluso a bajas temperaturas y usa I2C, que es un protocolo de transmisión más robusto y menos propenso a interferencias que el temporizado de un solo cable del DHT22. Para el control basado en pequeñas diferencias de punto de rocío, una mayor precisión del sensor impacta directamente en la calidad de las decisiones de ventilación.
- **DHT22** – más barato, menos preciso, pero con cableado más simple de 3 hilos sin direccionamiento I2C.
**Nota especial para dos sensores SHT31:** Dado que tanto el SHT31 interior como el exterior opcional usan I2C, ambos sensores pueden operar en el **bus compartido** (SDA = GPIO21, SCL = GPIO22) – no se necesitan líneas de datos adicionales. Para permitir que el ESP32 distinga entre los dos sensores, el SHT31 tiene un pin `AD`/`ADR` para selección de dirección:
| Sensor | Pin ADDR/AD | Dirección I2C resultante |
| --- | --- | --- |
| SHT31 interior | abierto o a GND | `0x44` (predeterminado) |
| SHT31 exterior | conectado a **3.3V** | `0x45` |
*(Algunos módulos SHT31 tienen un pin adicional `AL`/`ALR` – es una salida de alarma/interrupción y no tiene nada que ver con la selección de dirección; déjelo sin conectar.)*
**Configuración del tipo de sensor exterior:** A diferencia del modo interior/exterior (hardware o MQTT), que se puede configurar en la interfaz web, la elección entre SHT31 y DHT22 para el sensor exterior es intencionalmente una **decisión en tiempo de compilación** directamente en el código fuente – de esta manera solo se incluye la biblioteca de sensores realmente necesaria durante la compilación, ahorrando memoria flash y evitando comunicación I2C innecesaria con un segundo sensor posiblemente inexistente.
Para cambiar el tipo de sensor:
1. Abra `TaupunktLueftung.ino`.
2. Encuentre la línea `//#define SENSOR_TYP_AUSSEN_SHT31`.
3. Para **SHT31 exterior** (predeterminado en el repositorio): mantenga la línea activa (sin comentar).
4. Para **DHT22 exterior**: agregue el marcador de comentario `//` al principio y asegúrese de que el DHT22 esté conectado al pin 17.
**Variantes de firmware precompiladas sin compilar usted mismo:** Cada [versión](https://github.com/mallewski/TaupunktLueftung/releases) en GitHub contiene automáticamente **dos archivos `.bin` listos** – `TaupunktLueftung_dht22.bin` y `TaupunktLueftung_sht31.bin`. Simplemente elija el archivo que coincida con su hardware durante la actualización OTA en la interfaz web, sin necesidad de instalar el IDE de Arduino.
### Notas
- **Módulo de relé:** Se puede usar para conmutar un ventilador de ventilación de 230V. **Precaución:** La tensión de red solo debe ser conectada por personal calificado.
- **MQTT:** Para recibir datos de sensores externos, se requiere un broker MQTT (p. ej., Mosquitto o Home Assistant). Se admite autodescubrimiento (compatible con Home Assistant).
- **Interfaz web:** Todos los ajustes como MQTT, fuentes de sensores y umbrales son configurables directamente a través de la interfaz del navegador, protegida por un inicio de sesión (nombre de usuario/contraseña).
- **Credenciales predeterminadas después del primer flasheo:** Usuario `admin`, contraseña de `secrets.h` (`CONFIG_PASSWORD`) para firmware compilado por uno mismo, o [...] Ambos se pueden cambiar más tarde en la interfaz web bajo Configuración → Acceso (Inicio de sesión).
### Recomendación de Ventilador
100–150 m³/h para sótanos pequeños. También se puede usar un enchufe inteligente WiFi integrado a través de un sistema de hogar inteligente (como Home Assistant).
### Alimentación y Desacoplamiento
Coloque 3.3V a GND lo más cerca posible de los pines de alimentación, de manera más efectiva como una combinación de dos capacitores en paralelo: un **capacitor electrolítico (470–1000 µF)** para caídas de voltaje cortas, más un **capacitor cerámico (100 nF)** para picos de ruido cortos y de alta frecuencia – el electrolítico solo no maneja adecuadamente los componentes de alta frecuencia.
### Integración con Home Assistant (MQTT)
Los sensores existentes de Home Assistant se pueden alimentar como fuente de sensor mediante automatización (ver [Guía: Sensores HA vía MQTT](https://github.com/mallewski/TaupunktLueftung/blob/main/docs/Anleitung_HA_Sensoren_via_MQTT.md)).
Si le gusta este proyecto o le resulta útil, puede invitarme a un café.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.