Arduino sonde température et ventilateur

Dorian1975

Jeune CannaWeedeur
CannaNewbie
Messages
5
Réactions
1
Points
0
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 :)/emoticons/default_basic-smile.png" srcset="/emoticons/[email protected] 2x" title=":)" width="18" />

aff.webp
 
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
 
Merci pour les info toujours bon a prendre , pour mon info perso quel sont les pb en particulier avec le DHT?
 
Retour
Haut