À propos du projet

TaupunktLueftung est un système basé sur ESP32 pour un contrôle intelligent de la ventilation selon la différence de point de rosée. Il est idéal pour le séchage ciblé de pièces humides comme les caves, les buanderies ou les zones de stockage – efficace et entièrement automatique. Le système mesure la température et l'humidité intérieures et extérieures (via des capteurs comme SHT31 ou DHT22 – ou via MQTT), calcule les points de rosée et n'active la ventilation que lorsque les conditions de séchage sont réunies – c'est-à-dire lorsque l'air extérieur est capable d'absorber l'humidité plutôt que de l'introduire. En mode contrôle de l'humidité, il tente de maintenir un niveau d'humidité souhaité en déshumidifiant ou en humidifiant. La ventilation est commutée via un relais – idéalement dans une configuration à deux ventilateurs : l'un aspire l'air sec, l'autre évacue l'air humide. Cela crée un flux d'air efficace pour une déshumidification ciblée. ## Caractéristiques - Ventilation contrôlée par point de rosée pour une déshumidification ciblée – un algorithme d'analyse du point de rosée contrôle la ventilation en fonction de la différence. - Les identifiants WiFi sont configurés via le point d'accès (TaupunktLueftung-Setup) dans le navigateur et stockés en permanence. Aucune modification manuelle dans secrets.h nécessaire. - Interface web avec affichage des données en direct, graphiques en temps réel (vues horaires, quotidiennes et mensuelles) et zone de configuration. - Design clair/sombre (Light/Dark/System), commutable via un menu déroulant – le choix est enregistré dans le navigateur. - Protection par connexion (HTTP Basic Auth) pour toute l'interface web, nom d'utilisateur et mot de passe modifiables en cours de fonctionnement. - Protection thermique en option contre le refroidissement excessif. - Protection contre la sécheresse en option contre une humidité trop basse. - Mode de contrôle de l'humidité en option pour maintenir un niveau d'humidité souhaité. - Sécurité en cas de panne de capteur : Si une erreur de capteur persiste, la ventilation s'éteint automatiquement par mesure de sécurité au lieu de continuer indéfiniment dans le dernier état. - Temporisations réglables pour la protection du ventilateur/relais dans les zones limites. - Interface MQTT (publication et abonnement) + auto-découverte Home Assistant. - Modulaire : source de capteur sélectionnable (données matérielles ou MQTT), commutable directement dans la zone « Sensor source ». - Sauvegarde du firmware : le firmware actuel peut être enregistré au format .bin avant une mise à jour. - Prend en charge les mises à jour du firmware par liaison radio (OTA). Après le premier flashage via USB depuis l'Arduino IDE, des variantes de firmware personnalisées peuvent être mises à jour via OTA depuis l'Arduino IDE, ou téléversées à partir d'un fichier firmware via l'interface web. - Optimisations des performances (depuis v4.2) : les CSS/JavaScript sont mis en cache par le navigateur au lieu d'être rechargés depuis l'ESP32 à chaque visite de page ; un correctif WiFi maintient le mode veille du modem définitivement désactivé (évite les délais visibles après les reconnexions WiFi) ; les tentatives de reconnexion MQTT sont limitées afin qu'un broker injoignable ne bloque pas l'interface web. ## Composants Requis et Installation ### Composants Matériels | Composant | Description | Prix approx. (EUR) | | --- | --- | --- | | Carte de développement ESP32 (ex. DOIT) | Microcontrôleur avec WiFi | 6–10 EUR | | Capteur SHT31 (intérieur, option extérieur) | Température et humidité, I2C, haute précision | 5–8 EUR pièce | | Capteur DHT22 (extérieur, alternative) | Température et humidité, fil unique numérique, moins cher | 3–5 EUR | | LEDs (3x) + résistances (220–470 ohms) | Indicateurs d'état : vert, jaune, rouge | 1–2 EUR | | Module relais (1 canal) | Pour contrôler la ventilation | 2–4 EUR | | Fils de raccordement / platine d'essai | Pour le montage et les tests | 2–5 EUR | | Boîtier (optionnel) | Protection pour l'ESP32 et le câblage | 3–8 EUR | Coût total : environ 20–30 EUR, selon la configuration et la source. ### Montage et Câblage Brochage de l'ESP32 : | Broche ESP32 | Fonction | Connecté à | | --- | --- | --- | | GPIO17 | Ligne de données DHT22 | DHT22 (avec résistance de tirage 10 kohm) vers GND – uniquement pour la variante DHT22 | | GPIO16 | Relais | Entrée du relais (IN) | | GPIO2 | LED verte | Résistance + LED | | GPIO18 | LED rouge | Résistance + LED | | GPIO19 | LED jaune | Résistance + LED | | GPIO21 | SDA (données I2C) | SHT31 intérieur et SHT31 extérieur (bus partagé) | | GPIO22 | SCL (horloge I2C) | SHT31 intérieur et SHT31 extérieur (bus partagé) | | 3.3V/GND | Alimentation | Tous les composants | ### Schéma ASCII Simplifié +----------------------------+ | ESP32 Dev | | | | GPIO17 --> DHT22 data | (uniquement variante DHT22) | GPIO16 --> Relay IN | | GPIO2 --> Green LED | | GPIO18 --> Red LED | | GPIO19 --> Yellow LED | | GPIO21 --> SDA (SHT31) | | GPIO22 --> SCL (SHT31) | +-------------+--------------+ | 3.3V / GND LEDs : Anode (broche longue) → résistance → GPIO / Cathode (broche courte) → GND ### Sélection du Capteur Extérieur Ce projet prend en charge deux types de capteurs pour le capteur extérieur : - SHT31 (recommandé) – capteur numérique I2C, nettement plus précis et stable que le DHT22 (typiquement ±2 % HR contre ±2–5 % HR pour le DHT22), réagit plus rapidement aux changements, fournit des valeurs fiables même à basse température, et utilise l'I2C, un protocole de transmission plus robuste et moins sensible aux interférences que le timing fil unique propriétaire du DHT22. Pour un contrôle basé sur de petites différences de point de rosée, une plus grande précision du capteur influence directement la qualité des décisions de ventilation. - DHT22 – moins cher, moins précis, mais câblage 3 fils plus simple sans adressage I2C. Remarque spéciale pour deux capteurs SHT31 : Comme les SHT31 intérieur et extérieur (optionnel) utilisent tous deux l'I2C, les deux capteurs peuvent fonctionner sur le bus partagé (SDA = GPIO21, SCL = GPIO22) – aucune ligne de données supplémentaire n'est nécessaire. Pour permettre à l'ESP32 de distinguer les deux capteurs, le SHT31 dispose d'une broche AD/ADR pour la sélection d'adresse : | Capteur | Broche ADDR/AD | Adresse I2C résultante | | --- | --- | --- | | SHT31 intérieur | ouverte ou reliée à GND | 0x44 (défaut) | | SHT31 extérieur | reliée à 3.3V | 0x45 | (Certains modules SHT31 ont une broche supplémentaire AL/ALR – il s'agit d'une sortie d'alarme/interruption et cela n'a rien à voir avec la sélection d'adresse ; laissez-la non connectée.) Réglage du type de capteur extérieur : Contrairement au mode intérieur/extérieur (matériel ou MQTT), qui peut être défini dans l'interface web, le choix entre SHT31 et DHT22 pour le capteur extérieur est volontairement une décision au moment de la compilation directement dans le code source – de cette façon, seule la bibliothèque de capteurs réellement nécessaire est incluse lors de la compilation, économisant de la mémoire flash et évitant des communications I2C inutiles avec un second capteur potentiellement inexistant. Pour changer le type de capteur : 1. Ouvrez TaupunktLueftung.ino. 2. Trouvez la ligne //#define SENSOR_TYP_AUSSEN_SHT31. 3. Pour SHT31 extérieur (défaut dans le dépôt) : laissez la ligne active (non commentée). 4. Pour DHT22 extérieur : remettez le marqueur de commentaire // au début et assurez-vous que le DHT22 est connecté à la broche 17. Variantes de firmware pré-compilées sans compilation personnelle : Chaque version (https://github.com/mallewski/TaupunktLueftung/releases) sur GitHub contient automatiquement deux fichiers .bin prêts à l'emploi – TaupunktLueftung_dht22.bin et TaupunktLueftung_sht31.bin. Choisissez simplement le fichier correspondant à votre matériel lors de la mise à jour OTA dans l'interface web, aucune installation de l'Arduino IDE n'est nécessaire. ### Remarques - Module relais : Peut être utilisé pour commuter un ventilateur 230V. Attention : La tension secteur ne doit être connectée que par du personnel qualifié. - MQTT : Pour recevoir des données de capteurs externes, un courtier MQTT est requis (par ex. Mosquitto ou Home Assistant). L'auto-découverte est prise en charge (compatible Home Assistant). - Interface web : Tous les réglages tels que MQTT, les sources de capteurs et les seuils sont directement configurables via l'interface navigateur, protégée par une connexion (nom d'utilisateur/mot de passe). - Identifiants par défaut après le premier flashage : Nom d'utilisateur admin, mot de passe issu de secrets.h (CONFIG_PASSWORD) pour un firmware auto-compilé, ou [...] Les deux peuvent être modifiés plus tard dans l'interface web sous Paramètres → Accès (Connexion). ### Recommandation de Ventilateur 100–150 m³/h pour les petites caves. Une prise intelligente WiFi intégrée via un système domotique (comme Home Assistant) peut également être utilisée. ### Alimentation et Découplage Placez un condensateur entre 3,3 V et GND aussi près que possible des broches d'alimentation, le plus efficacement possible sous la forme d'une combinaison de deux condensateurs en parallèle : un condensateur électrolytique (470–1000 µF) pour les brèves chutes de tension, plus un condensateur céramique (100 nF) pour les brèves pointes de bruit haute fréquence – le condensateur électrolytique seul ne gère pas correctement les composantes haute fréquence. ### Intégration Home Assistant (MQTT) Les capteurs Home Assistant existants peuvent être fournis comme source de capteur via une automatisation (voir Guide : capteurs HA via MQTT (https://github.com/mallewski/TaupunktLueftung/blob/main/docs/Anleitung_HA_Sensoren_via_MQTT.md)). Si vous aimez ce projet ou si vous le trouvez utile, vous pouvez m'offrir un café.