#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://diverec.iloveyoupihost.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() {
temperature = dht.readTemperature();
humidity = dht.readHumidity();
if (isnan(temperature) || isnan(humidity)){
Serial.println("Erreur de lecture DHT");
return;
}
if (WiFi.status() == WL_CONNECTED) {
HTTPClient http;
// 1. On construit l'URL proprement
// Attention : j'ai retiré le '+' de fin si tu ne mets pas l'humidité
String url = SERVER_URL + "?APP_ID=" + APP_ID +
"&APP_KEY=" + APP_KEY +
"&P1=" + String(temperature) +
"&P2=" + String(humidity); // Ajouté ici
Serial.println("Envoi vers : " + url);
// 2. Initialisation
http.begin(url);
// 3. INDISPENSABLE pour le HTTPS sur ESP32 si tu n'as pas de certificat
http.setInsecure();
// 4. Envoi
int httpResponseCode = http.GET();
if (httpResponseCode > 0) {
Serial.printf("Code de réponse : %d\n", httpResponseCode);
String payload = http.getString();
Serial.println("Réponse : " + payload);
} else {
Serial.printf("Erreur HTTP : %s\n", http.errorToString(httpResponseCode).c_str());
}
http.end();
}
delay(10000);
}