Dorian1975 2 Posté(e) novembre 6, 2020 Partager Posté(e) novembre 6, 2020 Bonjour J'ai fait un petit programme pour arduino avec une sonde de température de type DTH22 ( il fait aussi le taux d'humidité) Bref le programme a juste pour bute de lancer une ventilation pour faire redescendre la température quand celle ci atteint un seuil donner dans le programme 25° modifiable facilement en plus ou en moins chaud. Une fois la valeur atteinte il déclenche un relay qui va allumer une ventilation jusqu'à la refaire passer en dessous des 25° , et se coupé une fois la température inférieur a 25° Rien d extra ordinaire mais a un coup relativement bas pour maintenir une température . J ai aussi un affichage 16x2 pour avoir les valeurs en temps réel Le programme open source #include <DHT.h> // inclure les librairies #include <Wire.h> #include <LiquidCrystal_I2C.h> const int relayPin = A2; // PIN a2 pour test modifiable en A1 A3 A4 au choix const int DHTPIN = A0; // Type de capteur utiliser #define DHTTYPE DHT22 DHT dht(DHTPIN, DHTTYPE);// Initialise le capteur DHT22 LiquidCrystal_I2C lcd(0x38, 16,2); // Initialise le module 1602 I2C modifiable en fonction des modèles l'adresse peu être différente void setup() { Serial.begin(9600); pinMode(relayPin, OUTPUT); dht.begin(); // Définit l'écran LCD 16 colonnes par 2 lignes lcd.init(); // Réglage du rétroéclairage lcd.setBacklight(HIGH); } void loop() { float h = dht.readHumidity(); // Lit la temperature en degres Celsius (valeur par defaut float t = dht.readTemperature(); float c = dht.readTemperature(true); // Vérifie si toutes les lectures ont échoué et quitte le début (pour réessayer). if (isnan(h) || isnan(t) || isnan(c)) { Serial.println("Failed to read from DHT sensor!"); return; } lcd.setCursor(0, 0); lcd.print("Temp = "); lcd.print(t); lcd.print(" *C "); lcd.setCursor(0, 1); lcd.print(" Hum = "); lcd.print(h); lcd.print(" % "); Serial.print("Temperature = "); Serial.print(t); Serial.print(" *C "); Serial.print("Humidity = "); Serial.print(h); Serial.print(" %\t "); Serial.println(); if (t >= 20 && t <= 25) // si temperature est = ou sup. a 20 ET t infer. ou = a 25 relais ouvert içi on peu modifie la température limite avant le déclanchement du relay. { digitalWrite(relayPin, HIGH); } delay(2000);// Delai deux seconde entre les mesures modifiable 1000 pour l'avoir toute les secondes par exemple } Si cela peu dépanner quelqu'un 1 Lien à poster Partager sur d’autres sites
Dorian1975 2 Posté(e) novembre 6, 2020 Auteur Partager Posté(e) novembre 6, 2020 Il faut compter 21€ livrer l'ensemble sur un site bien connue chinois . Lien à poster Partager sur d’autres sites
Gen 2 808 Posté(e) novembre 6, 2020 Partager Posté(e) novembre 6, 2020 Yop Tout cela n'a pas lieu d'être ,une fois le programme chargé Serial.print("Temperature = "); Serial.print(t); Serial.print(" *C "); Serial.print("Humidity = "); Serial.print(h); Serial.print(" %\t "); Serial.println(); de plus ceci, ce n'est pas vers le Serial que cela doit-être envoyé, mais vers le LCD sinon comment savoir que la sonde ne fonctionne pas ? if (isnan(h) || isnan(t) || isnan(c)) { Serial.println("Failed to read from DHT sensor!"); return; } PS : Nous avons rencontré trop de problème avec les DHT, il est préférable d'utiliser les AM2320 Bon bricolage ++ GEN Lien à poster Partager sur d’autres sites
Dorian1975 2 Posté(e) novembre 6, 2020 Auteur Partager Posté(e) novembre 6, 2020 Merci pour les info toujours bon a prendre , pour mon info perso quel sont les pb en particulier avec le DHT? Lien à poster Partager sur d’autres sites
Gen 2 808 Posté(e) novembre 6, 2020 Partager Posté(e) novembre 6, 2020 Yop des blocages intempestifs des process ++ GEN 1 Lien à poster Partager sur d’autres sites
Messages recommandés