#include <DHTesp.h> // Bibliothèque DHT
#include <ESP32Servo.h> // Servo
#include <DHT.h> // Bibliothèque DHT
#define DHTPIN 27
#define DHTTYPE DHT22 // Type de capteur DHT utilisé
#define SERVO_PIN 14 // Pin du servomoteur
DHT dht(DHTPIN, DHTTYPE); // Initialisation du capteur DHT
Servo servo; // Initialisation du servomoteur
const int potPin = 13; // Broche analogique pour le potentiomètre sur ESP32
int CO2Threshold = 0; // Seuil initial de CO2
void openWindows() {
for (int angle = 0; angle <= 180; angle += 1) { // Ouvrir les fenêtres progressivement
servo.write(angle);
delay(15);
}
}
void closeWindows() {
for (int angle = 180; angle >= 0; angle -= 1) { // Fermer les fenêtres progressivement
servo.write(angle);
delay(15);
}
}
void setup() {
Serial.begin(115200);
Serial.println("Hello, ESP32!");
dht.begin(); // Initialisation du capteur DHT
servo.attach(SERVO_PIN); // Attache du servomoteur à la broche définie
}
void loop() {
delay(10); // ceci accélère la simulation
// Lecture de la température et de l'humidité depuis le DHT22
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
// Lecture de la valeur du potentiomètre
int potValue = analogRead(potPin);
CO2Threshold = map(potValue, 0, 4095, 0, 1000); // La valeur du seuil de CO2 peut varier de 0 à 1000 ppm sur ESP32
// Affichage des données sur le moniteur série
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.print(" °C\t");
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.print(" %\t");
Serial.print("CO2 Threshold: ");
Serial.println(CO2Threshold);
if (CO2Threshold > 800) { // Si le seuil de CO2 est dépassé
openWindows(); // Appeler la fonction pour ouvrir les fenêtres
} else {
closeWindows(); // Appeler la fonction pour fermer les fenêtres
}
}