#include <WiFi.h>
#include <HTTPClient.h>
// Wi-Fi
#define WIFI_SSID "Wokwi-GUEST"
#define WIFI_PASSWORD ""
// Firebase
#define databaseURL "esp32led-7d8ee-default-rtdb.europe-west1.firebasedatabase.app"
#define apiKey "AIzaSyCiGPDCRIm-MODVbEbo6UxLCI8ulHlFAl0"
// LEDs
#define LED_1_PIN 12
#define LED_2_PIN 14
bool led1State = false;
bool led2State = false;
void setup() {
Serial.begin(115200);
pinMode(LED_1_PIN, OUTPUT);
pinMode(LED_2_PIN, OUTPUT);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.println("Connexion au Wi-Fi...");
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connexion au Wi-Fi...");
}
Serial.println("Connecté au Wi-Fi !");
Serial.print("Adresse IP : "); Serial.println(WiFi.localIP());
}
void loop() {
getLedStateFromFirebase();
// Appliquer la logique : LED2 = inverse de LED1
digitalWrite(LED_1_PIN, led1State ? HIGH : LOW);
digitalWrite(LED_2_PIN, led1State ? LOW : HIGH);
Serial.print("LED ROUGE : "); Serial.println(led1State ? "ON" : "OFF");
Serial.print("LED VERT : "); Serial.println(led1State ? "OFF" : "ON");
delay(2000);
}
void getLedStateFromFirebase() {
String url = String("https://") + databaseURL + "/Test_iot.json?auth=" + apiKey;
Serial.println("URL Firebase : " + url);
HTTPClient http;
http.begin(url);
int httpResponseCode = http.GET();
if (httpResponseCode > 0) {
String payload = http.getString();
Serial.println("Réponse Firebase : " + payload);
// LED 1 contrôlée par le bouton ON/OFF dans l'app
if (payload.indexOf("\"LED_STTUS\":\"1\"") != -1) {
led1State = true; // ON
} else if (payload.indexOf("\"LED_STTUS\":\"0\"") != -1) {
led1State = false; // OFF
}
} else {
Serial.println("Échec de la requête !");
Serial.println("Code HTTP : " + String(httpResponseCode));
}
http.end();
}