90 lines
2.7 KiB
C++
90 lines
2.7 KiB
C++
#include <ESP8266WiFi.h>
|
|
#include <ESP8266WebServer.h>
|
|
|
|
// Remplacez par les informations de votre réseau WiFi
|
|
const char* ssid = "Le chateau de Chantenay";
|
|
const char* password = "crevette4ever";
|
|
|
|
// Adresse du serveur HTTP sur le PC
|
|
const char* host = "192.168.1.62"; // Remplacez par l'adresse IP de votre PC
|
|
const int port = 5000;
|
|
|
|
const int buttonPin = D7; // Définir le pin du bouton
|
|
const int ledPin = D5; // Définir le pin de la LED
|
|
|
|
// Variables pour la gestion de l'état du jeu
|
|
bool gameActive = false;
|
|
|
|
void setup() {
|
|
Serial.begin(115200);
|
|
delay(10);
|
|
|
|
pinMode(buttonPin, INPUT_PULLUP);
|
|
pinMode(ledPin, OUTPUT);
|
|
digitalWrite(ledPin, LOW); // Éteindre la LED au démarrage
|
|
|
|
WiFi.begin(ssid, password);
|
|
Serial.print("Connexion à ");
|
|
Serial.print(ssid);
|
|
while (WiFi.status() != WL_CONNECTED) {
|
|
delay(500);
|
|
Serial.print(".");
|
|
}
|
|
Serial.println(" connectée");
|
|
}
|
|
|
|
void loop() {
|
|
// Lire l'état du bouton
|
|
if (digitalRead(buttonPin) == HIGH) { // Si le bouton est pressé
|
|
Serial.println("Bouton pressé! Envoi de la requête...");
|
|
sendRequest();
|
|
delay(500); // Attendre la réponse
|
|
}
|
|
|
|
// Vérifier si le jeu est actif
|
|
if (gameActive) {
|
|
// Clignoter la LED pendant que le jeu est actif
|
|
digitalWrite(ledPin, HIGH);
|
|
delay(250);
|
|
digitalWrite(ledPin, LOW);
|
|
delay(250);
|
|
}
|
|
}
|
|
|
|
void sendRequest() {
|
|
WiFiClient client;
|
|
if (client.connect(host, port)) {
|
|
client.print(String("GET /execute?box_id=1 HTTP/1.1\r\n") +
|
|
"Host: " + host + "\r\n" +
|
|
"Connection: close\r\n\r\n");
|
|
|
|
while (client.available()) {
|
|
String line = client.readStringUntil('\r');
|
|
Serial.print(line);
|
|
// Gérer les messages reçus pour changer l'état de la LED
|
|
if (line.indexOf("fastest") >= 0) {
|
|
// Allumer la LED si le message "fastest" est reçu
|
|
digitalWrite(ledPin, HIGH);
|
|
gameActive = false; // Arrêter le clignotement
|
|
} else if (line.indexOf("second") >= 0) {
|
|
// Éteindre la LED si le message "second" est reçu
|
|
digitalWrite(ledPin, LOW);
|
|
} else if (line.indexOf("game_active") >= 0) {
|
|
// Si le jeu est actif, activer le clignotement
|
|
gameActive = true;
|
|
} else if (line.indexOf("reset_game") >= 0) {
|
|
// Réinitialiser le jeu et faire clignoter la LED
|
|
gameActive = false; // Arrêter le clignotement
|
|
for (int i = 0; i < 5; i++) { // Clignoter 5 fois pour signaler la réinitialisation
|
|
digitalWrite(ledPin, HIGH);
|
|
delay(250);
|
|
digitalWrite(ledPin, LOW);
|
|
delay(250);
|
|
}
|
|
}
|
|
}
|
|
client.stop();
|
|
} else {
|
|
Serial.println("Échec de la connexion au serveur.");
|
|
}
|
|
} |