#include <DHT.h>
#include <WiFi.h>
#include <HTTPClient.h> // Ajout pour les requêtes API
// Configuration WiFi Wokwi
#define WLAN_SSID "Wokwi-GUEST"
#define WLAN_PASS ""
// Configuration Youpilab IoT
const String APP_ID = "temaec3e"; // Ton ID
const String APP_KEY = "725e0bb7"; // Ta Clé
const String SERVER_URL = "https://iot.youpilab.com/api/data/send";
// Configuration DHT
#define DHTPIN 15
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
float temperature, humidity;
void setup() {
Serial.begin(115200);
Serial.println("Initialisation ESP32...");
dht.begin();
// Connexion WiFi
Serial.print("Connexion au WiFi...");
WiFi.begin(WLAN_SSID, WLAN_PASS);
while(WiFi.status() != WL_CONNECTED){
delay(500);
Serial.print(".");
}
Serial.println("\nWiFi CONNECTED");
}
void loop() {
// Lecture du capteur
temperature = dht.readTemperature();
humidity = dht.readHumidity();
// Vérification des erreurs de lecture
if (isnan(temperature) || isnan(humidity)){
Serial.println("Erreur de lecture DHT");
return;
}
Serial.print("Temp: "); Serial.print(temperature);
Serial.print("°C | Hum: "); Serial.print(humidity); Serial.println("%");
// Envoi des données vers Youpilab via HTTP GET
if (WiFi.status() == WL_CONNECTED) {
HTTPClient http;
// Construction de l'URL avec les paramètres
// Format : URL?APP_ID=xxx&APP_KEY=xxx&p1=val1&p2=val2
String url = SERVER_URL + "?APP_ID=" + APP_ID +
"&APP_KEY=" + APP_KEY +
"&p1=" + String(temperature) +
"&p2=" + String(humidity);
Serial.println("Envoi vers Youpilab...");
http.begin(url); // Initialisation de la requête
int httpResponseCode = http.GET(); // Envoi effectif
if (httpResponseCode > 0) {
Serial.print("Réponse API : ");
Serial.println(httpResponseCode);
String payload = http.getString();
Serial.println(payload);
} else {
Serial.print("Erreur d'envoi HTTP : ");
Serial.println(httpResponseCode);
}
http.end(); // Libération des ressources
}
// Délai de 10 secondes (pour ne pas saturer l'API)
delay(10000);
}