Arduino Forum

International => Français => Le bar => Topic started by: ChristiaM on Feb 10, 2017, 12:09 pm

Title: [Résolu] Fermeture volet par simulation d'appui sur télécommande
Post by: ChristiaM on Feb 10, 2017, 12:09 pm
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.
Title: Re: Fermeture volet par simulation d'appui sur télécommande
Post by: infobarquee on Feb 10, 2017, 01:41 pm
mauvaise section, demande à un modo de déplacer le sujet en cliquant sur

    Report to moderator en bas du post


code entre balise code </>
Title: Re: Fermeture volet par simulation d'appui sur télécommande
Post by: ChristiaM on Feb 11, 2017, 09:18 am
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 ?