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. Si j'envoie "FERMER" par exemple, la led correspondante clignote 10 fois !
Voici le croquis en cause :
Merci de votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116 /* Date : 16/01/2016 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
Partager