Traduit de English par IA ·
J’ai passé des années à analyser des données de chaîne du froid présentant exactement ce schéma. Une partie de votre couplage se trouve dans la grandeur mesurée elle-même, car l’HR dépend de la température. Chaque fois que le chauffage élève la température de l’air de 1 C, l’HR à teneur en humidité constante baisse d’environ 3 à 4 points ; votre boucle d’humidité réagit donc au chauffage, même si aucune eau n’a quitté l’air.Deux modifications qui règlent généralement le problème :1. Régulez une grandeur d’humidité qui ne varie pas avec la température : l’humidité absolue (g/m3) ou le point de rosée. Calculez-la sur l’ESP32 à partir de la température et de l’HR (formule de Magnus) et pilotez l’humidificateur sur cette valeur. À consigne de température fixe, 60 %HR à 25 C correspondent à environ 13,8 g/m3 : cela deviendra votre consigne.2. Séparez les vitesses. Gardez la boucle de température rapide et rendez la boucle d’humidité au moins 5 fois plus lente (un temps minimum de marche et d’arrêt pour l’humidificateur, par exemple 60 s chacun, et une bande morte d’environ 0,5 g/m3). Ainsi, la boucle de température absorbe le refroidissement dû à la brume avant que la boucle d’humidité ne prenne une décision.Pour la carte, le graphique de Megan est le bon. Dans les lignes Series du graphique en courbes, réglez rh et humid_on sur Value axis Right, ajoutez une ligne de seuil à vos consignes et envoyez abs_hum comme cinquième clé pour suivre la nouvelle boucle. Les réglages des graphiques se trouvent dans Chart cards.
I spent years staring at cold chain data with exactly this pattern. Part of your coupling sits in the measured variable itself, because RH depends on temperature. Every time the heater raises the air temperature by 1 C, RH at that moisture content drops by roughly 3 to 4 points, so your humidity loop reacts to the heater even when no water has left the air.
Two changes that usually settle it:
1. Control a humidity measure that doesn’t move with temperature: absolute humidity (g/m3) or dew point. Compute it on the ESP32 from temp and RH (Magnus formula) and run the humidifier on that. At a fixed temp setpoint, 60 %RH at 25 C is about 13.8 g/m3, so that becomes your setpoint.
2. Separate the speeds. Keep the temperature loop fast and make the humidity loop at least 5 times slower (a minimum on time and off time for the humidifier, say 60 s each, and a deadband of about 0.5 g/m3). Then the temperature loop absorbs the mist’s cooling before the humidity loop decides anything.
For the board, Megan’s chart is the right one. In the line chart’s Series rows set rh and humid_on to Value axis Right, add a threshold line at your setpoints, and send abs_hum as a fifth key so you can watch the new loop. Chart settings are on Chart cards.

