- 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" />

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
