Go Down

Topic: [Résolu] Fermeture volet par simulation d'appui sur télécommande (Read 1 time) previous topic - next topic

ChristiaM

Bonjour,
Sur une Wemos D1 mini v2, et dans le cadre d'une domotisation, je simule l'appui sur le bouton de la télécommande de mes volets (il ne sont pas domotisables et fonctionnent par télécommande).
Le schéma se trouve ici : https://circuits.io/circuits/3831607-telecommande-volets-bubendorf

Par contre je ne comprends pas pourquoi mon programme s'exécute 10 fois de suite lorsque je le teste avec des leds.

Voici le croquis en cause :

Code: [Select]
/*
 Date : 16/01/2017
 Description : Pilotage LED avec un browser WEB
 Source : Exemple IDE Arduino
*/

#include <ESP8266WiFi.h>

int tempo = 250;      // durée d'appui sur la touche télécommande
String s;
int val;
int up = 5;           // broche pour ouvrir --> sur Wemos à brancher sur D1
int down = 4;         // broche pour fermer --> sur Wemos à brancher sur D2


// Nom et mot de passe du réseau WIFI
const char* ssid = "Livebox-XXXX";
const char* password = "XXXXXXXXXXXXXXXXXXXXXXXXXX";

// Creation d un serveur qui ecoute sur le port 80
WiFiServer server(80);

// ----------------- SETUP ---------------------------------

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

 // Declaration port "down" en sortie
 pinMode(down, OUTPUT);
 digitalWrite(down, 0);

 // Declaration port "up" en sortie
 pinMode(up, OUTPUT);
 digitalWrite(up, 0);

 // Connection au réseau WiFi
 Serial.print("Connection a ");
 Serial.println(ssid);
 WiFi.begin(ssid, password);

 while (WiFi.status() != WL_CONNECTED) {
   delay(250);
   Serial.print(".");
   }
 Serial.println("");
 Serial.println("WiFi OK");
 
 // demarrage du serveur
 server.begin();
 Serial.println("Server OK");

 // Adresse IP locale attribuee
 Serial.println(WiFi.localIP());
 
}  // -------------------     fin du Setup                 

// ----------------- LOOP ----------------------------

void loop() {
 // Un client est-il connecte ?
 WiFiClient client = server.available();
 if (!client) {
 return;
 }

 // Attente donnees envoyees par un client
 Serial.println("Nouveau client");
 while (!client.available()) {
 delay(1);
 }

 // Lecture premiere ligne de la requete
 String req = client.readStringUntil('\r');
 client.flush();

 // Decodage de la requete recue
 int val;
 //------------------------------- FERMER -------------------------------------------------
 if (req.indexOf("/FERMER") != -1) {
   Serial.println("Demande fermeture volet");

   // Positionnement port "down"
   digitalWrite(down, 1);                   // Début appui pour fermeture volet
   delay(tempo);                            // durée d'appui sur télécommande
   digitalWrite(down, 0);                   // Fin appui pour fermeture volet
   client.flush();
 }

 //------------------------------- OUVRIR -------------------------------------------------
 else if (req.indexOf("/OUVRIR") != -1) {
   Serial.println("Demande ouverture volet");

   // Positionnement port "up"
   digitalWrite(up, 1);                    // Début appui pour ouverture volet
   delay(tempo);                           // durée d'appui sur télécommande
   digitalWrite(up, 0);                    // Fin appui pour ouverture volet
   client.flush();
 }

 //------------------------------- ERREUR -------------------------------------------------

 else {
   Serial.println("Requete invalide");
   client.stop();
   return;
 }
 //-----------------------------------------------------------------------------------------

/*Envoi de la reponse au client
  client.print(s);
   delay(1);
Serial.println("Client deconnecte");
*/

}   // ---------------------   Fin du Loop




Merci par avance de votre aide.

infobarquee

mauvaise section, demande à un modo de déplacer le sujet en cliquant sur

    Report to moderator en bas du post


code entre balise code </>
AUCUNE AIDE PAR MP

ChristiaM

Réponse à moi-même :
C'était la dernière partie du programme, "ERREUR", qui provoquait cette redondance.
Mais une question que je n'ai pas résolue : pourquoi 10 fois et par infini ?

Go Up