Bonjour à tous,
j'ai réalisé un projet domotique pour commander mes volets roulant grâce à un NodeMcu et une application Android, et je suis confronté à un problème.
Voilà lorsque j'appuie sur la flèche du Haut de mon smatphone pour faire monter mon volet roulant, celui-ci répond bien et il monte bien, mais si j'appuie par accident sur la flèche du bas pendant qu'il monte, une fois sa course terminé vers le haut, il commencera à exécuter le 2ème ordre à savoir redescendre.
donc je voudrai savoir comment on peut faire pour q'il ne prenne en compte aucun autre ordre et ceux jusqu'à la fin de son programme. j’espère avoir été clair dans mon explication...
merci pour votre aide et voici mon programme:
#include <ESP8266WiFi.h>
String req;
const char* ssid = "xxxxxxxxxxxxx"; // Nom du réseau de ma Wifi
const char* password = "xxxxxxxxxxxxx"; // Code de mon réseau WifiWiFiServer server(80);
void setup() {
Serial.begin(115200);
delay(10);WiFi.disconnect();
delay(3000);pinMode(0, OUTPUT);
pinMode(1, OUTPUT);
digitalWrite(0, 0);
digitalWrite(1, 0);Serial.println();
Serial.println();
Serial.print("Vous êtes connecté à: ");
Serial.println(ssid);WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print("....");
}
Serial.println("");
Serial.println("WiFi connecté");// Démarrer le serveur
server.begin();
Serial.println("Le serveur est prêt");Serial.println("l'Adresse IP de Votre NodeMcu est le:");
Serial.println(WiFi.localIP());
}void loop() {
// Vérifier si un client est connecté
WiFiClient client = server.available();
if (!client) {
return;
}// Attendez que le client envoie des données
Serial.println("Nouveau client");
while(!client.available()){
delay(1);
}// Lire la première ligne de la demande
req = (client.readStringUntil('\r'));
Serial.println(req);
client.flush();// Correspondre à la demande
if (req.indexOf("/Volet1/Monter") != -1)
{client.stop();
digitalWrite(0, 1);
delay(3000);
digitalWrite(0, 0);}if (req.indexOf("/Volet1/Descendre") != -1)
{client.stop();
digitalWrite(1, 1);
delay(3000);
digitalWrite(1, 0);}client.flush();
// Envoyer la réponse au client
delay(1);
Serial.println("Client déconnecté");
}