Comment créer une commande à partir du point de rosée pour éviter de la condensation !

Bonjour
je voudrais écrire un petit programme autonome qui me permettrais de commander une résistance de chauffage à partir de la valeur du point de rosée ou du moins que cette valeur me donne l'indication que de la condensation vas se former a l'intérieur .
c'est pour éviter la condensation sous le globe de ma camera allsky .
je pensait utiliser un capteur DHT22 et cette formule pour le point de rosée

float h = dht.readHumidity();                                        // Humidité
    float t = dht.readTemperature();                                   // Temperature
    float r = ((sqrt (sqrt (sqrt(h/100)))) * (110+t) )-110; // Point de Rosée   (use sqrt 2 x 2 x 2 = 8 for eighth roots)

Maintenant j'ai une question , est-ce que c'est la bonne approche d'utiliser un DTH22 pour mon problème ou je dois faire une différence entre la température intérieur et extérieur du globe en ajoutant une sonde extérieur et dire que dès que j'arrive au point de rosée je commence a chauffé l'intérieur pour éviter la condensation.

Par contre j'ai bien trouvé des exemple de code , mais jamais pour déclencher un chauffage, chaque fois c'est pour l'affichage des valeurs.

Donc si qqun pourrais me dire comment faire ou m'expliquer de façon simple (car je suis novice dans la programmation) cela serait super !!

Bonne journée

mais au faite est-ce que une carte arduino peut géré tous seul le phénomène ou je dois mettre un "RPi" avec pour faire le calcule ?

Il faut que tu définisses bien ton problème. Moi je n'y connais rien en point de rosée, mais si tu dois mesurer les températures intérieure et extérieure, il te faut deux capteurs.

Pour chauffer, il te faut certainement commander un relais pour alimenter la résistance chauffante (ou un MOSFET ?). Mais il faut aussi que, lorsque la température intérieure atteint un certain seuil, tu arrêtes le chauffage.

On trouve des modules "MOSFET Switch" chez Ali pour moins d'un euro. Une recherche "arduino mosfet switch" te donnera plein de liens qui expliquent le fonctionnement. En voici un, écrit par un membre du forum :

Donc, d'abord bien définir tout ça.
Tu peux même ajouter un petit écran pour afficher les valeurs de températures mesurées et de point de rosée calculée.

Si tu fais un automatisme pour viser une température, il te faudra étudier le PID ou l'hystérésis.

Ensuite, un Arduino est suffisant pour commander tout ça.

alors le point de rosée se calcule avec la formule de dessus
le truc c'est est-ce que capteur vas suffire en mesurent que l'humidité dans la coupole avec un DTH22 et déclanché le chauffage au moyen de relais 5v avec résistance .
ou il me faut deux capteur pour calculer la température intérieur et extérieur pour définir quand cela vas condenser dans la coupole ?
ensuite est-ce que l'arduino peux géré la combine en automatique ?
A+

Je ne comprends pas ta question, tu nous donne une formule qui est sensé donner la valeur que tu cherche.
Mais tu nous parle de température intérieur et extérieur qui ne sont pas utilisées dans ta formule.

Que veut tu savoir exactement, si ta formule est physiquement correcte ou si on peut le faire avec un µC?

Ma compréhension de sa question (hypothèse) :

Il a une caméra protégée par un globe.
Il veut éviter la rosée sur le globe.
Pour cela, il lui faut une information de température et d'humidité pour calculer le point de rosée.

Je pense que jusque-là, je dois avoir bon.
J'ai quand même une interrogation : est-ce que la buée peut être considérée comme de la rosée ?

La question basique est : est-ce que la rosée se forme sur la paroi interne du globe, ou sur la paroi externe ou sur les deux.

Question cachée :
Les résistances étant à l'intérieur du globe, si la rosée se forme à l'extérieur, il faudra la faire disparaitre en chauffant de l'intérieur, la température ne sera-t-elle pas trop élevée pour la caméra.
Le globe est en verre ou en plastique genre plexiglas ? Le coefficient thermique ne sera pas le même.

Je ne suis pas thermicien, je ne sais pas, je pose juste les questions.
Par contre, quand on n'a pas la théorie, il doit être possible de faire des essais (si les conditions météo le permettent).

Faut-il approvisionner deux DHT22 ?
Je réponds évidement que oui, et même 3 au minimum et 4 si on veut être "ceinture plus bretelles" : les composants utilisés pour la mise au point auront probablement souffert, la sagesse voudrait que la réalisation définitive se fasse avec des composants neufs.

On ne va peut-être pas aller jusqu'à la PID.
Le point de rosée, c'est un seuil : en dessous, il y a de la rosée, au-dessus, il n'y en a pas.
Je propose plutôt de calculer la température à obtenir et d'y ajouter une marge.
Pour le contrôle de la température, un simple hystérésis devrait être suffisant.

Bonjour,
alors en effet je vais préciser la combine :wink:
la condensation se fait a l'intérieur du globe et je pensait que de calculer l'humidité a l'intérieur pour suffire avec un DTH22 .
Et je pense que la condensation a l'intérieur arrive au point de rosée , et que le calculer permet d'anticipé le phénomène en chauffant l'intérieur avant que ont y arrive.
l'autre question et, est-ce que il me faut aussi une sonde dehors pour calculer le point de rosée extérieur et faire une comparaison entre le deux valeurs pour mieux gérer ce phénomène.
je pense aussi que chauffé de 2 degrés en dessus du point de rosée pourrait suffire avant que le phénomène arrive .

Voila

Tu es sûre quand chauffant l'air intérieur tu va réussir à augmenter suffisamment la température de ton globe, pour qu'il n'y ait pas de condensation ?
une ventilation de l'air intérieur ne serait pas plus indiquée?

Hello
Alors il faudrait peut etre faire les deux , chauffer et ventiler ..
Mais comment il faudrait faire le code pour une arduino ?

Peut être, cela dépend si la condensation est provoqué par un taux d'humidité proche de 100% ou parce que l'air chaud rencontre une parois froide.

Pour l'arduino, une fois que tu as déterminer qu'elle condition provoque la condensation, tu mesure là ou les température et le taux d'humidité si nécessaire avec donc un ou plusieurs capteurs.
Et en fonction de ce que tu as déterminé par calcule ou expérimentation, tu fait circuler de l'air extérieure ou active une résistance chauffante, pour atteindre les bonnes conditions.

Si par exemple la formule du point de rosé donne de bon résultat, tu peux mesurer la température et l'humidité de l'air avec un DHT22.
Il te faudra alors un autre capteur pour mesurer la température de ton globe.
tu pourra alors savoir si ton globe est en dessous ou au dessus du point de rosé.
Et faire chauffé l'air, pour faire augmenter le point de rosé à une valeur supérieur à la température de ton globe.

Je sais que cela ne te donne pas le code, mais c'est quelque chose d'assez simple àprogrammer et on pourra alors facilement t'aider :slight_smile:

Je ne sais pas par contre si on peut facilement placer un capteur de température sur le globe?

Il faut commencer par identifier le bon capteur : le DHT22 donne température et humidité, mais il existe d'autres capteurs de température (ils font souvent T et pression).

Ensuite, il faut en acheter un jeu et tester le fonctionnement avec les exemples de la bibliothèque ad-hoc.

Pour les DHTxx, celle-ci est parfaite :

Des exemples sont disponibles dans le répertoire 'Examples'.
Pour un tutoriel (installation, branchement, code), voir par exemple ici :

Pour l'achat, tu peux aller sur Aliexpress si tu n'es pas pressé...

Re bonjour
alors dans l'ordre
Terwal:
prendre la température du globe me semble compliquée , d'ailleurs je me demande si c'est pas pour cela que je devrais mesurer la température extérieur et comparer avec celle dedans ,cela me donnerais la température de la structure, non?
je dis ça parce que il me semble que j'avais lu a qqpart que qqun utilisais 2 sondes pour un programme similaire .

Lesept
alors j'ai un capteur DHT22 mais j'ai lu que visiblement le BME280 et plus précis et vu que je dois aussi en avoir un, du coup je vais peut etre me tourné sur le BME

par contre je regarde pour des codes et je vous demanderais ce que vous pensé et les corrections a faire .
A+

Ba disons que ta formule de point de rosé, te donne la température du globe qui va provoqué la condensation.
Si tu prend la température extérieur bien évidement tu va borné à minima, la température de ton globe.
donc tu va majoré la température intérieur que tu dois atteindre pour éviter le phénomène, donc je suppose que cela devrais fonctionner oui.

C'est la ou il faudra surement expérimenter, pour voir ce que cela implique en terme de chauffage.
Peut-être voir si il est possible de mettre un système de ventilation.

pour le pseudo code tu peux partir sur ce genre de chose.
lecture des capteurs, pour avoir T-intérieur, H-intérieur, T-exterieur.
calcule du point de rosé T-rose.
Si T-rose > T-exterieur active le chauffage intérieur.

Il faut ajouter une vérification de la température intérieure aussi, sinon la résistance chauffante va décharger la batterie ou consommer énormément.

  • Si T-intérieur > Seuil arrêter le chauffage (mettre ici l'hystérésis)

Non, le T-rose est fonction de la température intérieur, mais on peut mettre un garde fou.
par contre oui l'hystérésis est nécessaire.

alors j'ai un code du style, mais je sais pas comment mettre la sonde température extérieur

#define DHTTYPE DHT22     // Type de capteur DHT

DHT dht(DHTPIN, DHTTYPE);

int relayPin = 8;        // Broche de connexion du relais
float dewPoint;          // Point de rosée
int hysteresis = 2;      // Hystérésis de 2 degrés

void setup() {
  Serial.begin(9600);
  dht.begin();
  pinMode(relayPin, OUTPUT);
}

void loop() {
  delay(2000);          // Delai de 2 secondes entre les lectures

  float temperature = dht.readTemperature();          // Lecture de la température
  float humidity = dht.readHumidity();                // Lecture de l'humidité

  // Calcul du point de rosée
  double a = 17.27;
  double b = 237.7;
  double temp = (a * temperature) / (b + temperature) + log(humidity/100.0);
  dewPoint = (b * temp) / (a - temp);

  // Vérification si le point de rosée est inférieur de 2 degrés à la température
  if (temperature - dewPoint > hysteresis) {
    digitalWrite(relayPin, HIGH);         // Chauffage ON
    Serial.println("Chauffage ON");
  } else {
    digitalWrite(relayPin, LOW);          // Chauffage OFF
    Serial.println("Chauffage OFF");
  }
}

Avec cette ligne, tu déclares une instance de la classe DHT, c'est à dire un capteur. Si tu en veux deux, il suffit de faire deux instances :

DHT capteur_interieur (DHTint, DHTTYPE);
DHT capteur_exterieur (DHText, DHTTYPE);

et le reste est à l'avenant :
dht.begin();
devient

capteur_interieur.begin();
capteur_exterieur.begin();

etc.

ok je vais essayer,, par contre je pense qu'il me faut un capteur extérieur mais comment l'incruster dans le code pour en avoir l'utilité .
car il me semble que c'est la différence de température entre l'intérieur et l'extérieur qui vas le plus influencer le phénomène ou je me trompe ?

Le point de rosée ou température de rosée est la température sous laquelle de la rosée se dépose naturellement. Plus techniquement, en dessous de cette température qui dépend de la pression et de l'humidité ambiantes, la vapeur d'eau contenue dans l'air se condense sur les surfaces, par effet de saturation

Donc c'est la température et l'humidité relative dans la coupole qui va définir si oui ou non il y aura de la condensation dans celle-ci.
Quand bien même tu aurais la température et l'humidité relative à l'extérieur tu serais bien en peine de modifier l'un des paramètres de l'air extérieur pour modifier le point de rosée.

Si tu prend uniquement le dépôt par la rosé, effectivement la Température dépend du taux d'humidité et pression intérieur. Mais dans ce cas il y aura de la rosé partout, pas uniquement sur le globe de la caméra.
Je pense que @constant1462 parle de condensation sur parois froide, soit son globe qui est en contact avec l'air extérieur.
D'ailleurs je suppose que c'est que calcule la formule qu'il a donné?
Dans ce cas, la température extérieur te permet d'estimer/minorer la température de la surface.