#include <WiFi.h>
#include <HTTPClient.h>

//const int sensorPin = 32; // Broche de lecture du capteur de courant
#define lampe1 12
#define lampe2 14
#define lampe3 15
#define pouss1 25
#define pouss2 26
#define pouss3 27

void allumage(int);
void extinction(int);
int scan(int lampe, int lec_pouss, int etat, int num);

void setup() {
  Serial.begin(115200);

  // Se connecter à votre réseau WiFi
  //WiFi.begin("NomDuReseau", "MotDePasse");
  Serial.println("Connexion en cours...");
  /*while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.println("...");
    }*/
  pinMode(lampe1, OUTPUT);
  pinMode(lampe2, OUTPUT);
  pinMode(lampe3, OUTPUT);
  pinMode(pouss1, INPUT_PULLUP);
  pinMode(pouss2, INPUT_PULLUP);
  pinMode(pouss3, INPUT_PULLUP);

  Serial.println("Connecté au réseau WiFi !");
}

void loop() {
  // Lire la valeur du capteur de courant
  //int currentReading = analogRead(sensorPin);

  // Envoyer les données à votre serveur Web
  /*
    HTTPClient http;
    http.begin("http://www.monserveurweb.com/enregistrer-donnees.php?courant=" + String(currentReading));
    int httpResponseCode = http.GET();
    http.end();

    Serial.print("Données envoyées au serveur Web. Code de réponse HTTP : ");
    Serial.println(httpResponseCode);
  */

  int etat1 = 0, etat2 = 0, etat3 = 0;
  /*allumage(lampe1);
    allumage(lampe2);
    allumage(lampe3);
    extinction(lampe1);
    extinction(lampe2);
    extinction(lampe3);*/
  Serial.println("Lampe 1 ");
  etat1 = scan(lampe1, digitalRead(pouss1), etat1, 1);
  delay(5000);
  Serial.println("Lampe 2 ");
  etat2 = scan(lampe2, digitalRead(pouss2), etat2, 2);
  delay(5000);
  Serial.println("Lampe 3 ");
  etat3 = scan(lampe3, digitalRead(pouss3), etat3, 3);
  delay(5000);
}

void allumage(int lampe) {
  digitalWrite(lampe, HIGH);
  delay(1000);
}
void extinction(int lampe) {
  digitalWrite(lampe, LOW);
  delay(1000);
}

int  scan(int lampe, int lec_pouss, int etat, int num) {
  if (lec_pouss != HIGH) { // Si le bouton est pressé
    etat = !etat; // Inversion de l'état de la LED
    Serial.print("AhfdsqeEDFGHV");
    delay(10000);
    digitalWrite(lampe, etat); // Mise à jour de l'état de la LED
    delay(10); // Attente pour éviter les rebonds
    if (!etat){
      Serial.print("Lampe ");
      Serial.print(num);
      Serial.println(": Eteinte");
    }
    else{
      Serial.print("Lampe ");
      Serial.print(num);
      Serial.println(": Allumée");
    }
  }
  return etat;
}