#include <WiFi.h>
#include <ThingSpeak.h>
#include <DHT.h>
WiFiClient client; // Déclaration du client WiFi
const char *ssid = "Wokwi-GUEST";
const char *password = "";
const char *thingSpeakApiKey = "IZQI5ILGM3YK8FF";
const int THING_SPEAK_CHANNEL = 2382718;
#define DHT_Pin 15
#define LDR_Pin A12
#define LED_Temperature 25
#define LED_Humidity 27
#define LED_Light 33
#define DHTTYPE DHT22
DHT dht(DHT_Pin, DHTTYPE);
void setup() {
Serial.begin(115200);
pinMode(LDR_Pin, INPUT);
pinMode(LED_Temperature, OUTPUT);
pinMode(LED_Humidity, OUTPUT);
pinMode(LED_Light, OUTPUT);
dht.begin();
// Connexion au réseau WiFi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connexion au WiFi en cours...");
}
Serial.println("Connecté au WiFi!");
// Initialisation de ThingSpeak avec le client WiFi
ThingSpeak.begin(client);
}
void loop() {
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
int lightLevel = analogRead(LDR_Pin);
// Contrôle de la LED en fonction de la température
if (temperature > 50.0) {
digitalWrite(LED_Temperature, HIGH);
} else {
digitalWrite(LED_Temperature, LOW);
}
// Contrôle de la LED en fonction de l'humidité
if (humidity > 50.0) {
digitalWrite(LED_Humidity, HIGH);
} else {
digitalWrite(LED_Humidity, LOW);
}
// Contrôle de la LED en fonction de la luminosité
if (lightLevel < 60) {
digitalWrite(LED_Light, HIGH);
} else {
digitalWrite(LED_Light, LOW);
}
// Envoi des données à ThingSpeak
ThingSpeak.writeField(THING_SPEAK_CHANNEL, 1, temperature, thingSpeakApiKey);
// Affichage des données sur le port série
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.print(" °C, Humidity: ");
Serial.print(humidity);
Serial.print(" %, Light Level: ");
Serial.println(lightLevel);
delay(1000); // Attente d'une seconde entre chaque itération
}