Skip to content

Commit ea8fd94

Browse files
authored
Merge pull request #22 from AuFilElec/hallard
Connexions TCP Async
2 parents 38e2e03 + 748a2a5 commit ea8fd94

17 files changed

+1517
-1408
lines changed

README.md

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,15 @@ Installation (Arduino ESP8266 NodeMCU)
2626
- Lancer l'IDE Arduino
2727
- Installer la librairie [NeoPixelBus](https://github.com/Makuna/NeoPixelBus) depuis l'IDE Menu Sketch / Include Library / Manage Library => NeoPixelBus by Makuna
2828
- Installer la librairie [Blynk](https://github.com/blynkkk/blynk-library) depuis l'IDE Menu Sketch / Include Library / Manage Library / Blynk by Volodymyr Shymanskyy
29+
- Installer la bibliothèque [ESPAsyncTCP](https://github.com/me-no-dev/ESPAsyncTCP) depuis l'IDE. Télécharger la dernière release au format *zip*, puis Menu **Croquis** / **Inclure une bibliothèque** / **Ajouter la bibliothèque .ZIP**
30+
- Installer la bibliothèque [ESPAsyncWebServer](https://github.com/me-no-dev/ESPAsyncWebServer) depuis l'IDE. Télécharger la dernière release au format *zip*, puis Menu **Croquis** / **Inclure une bibliothèque** / **Ajouter la bibliothèque .ZIP**
2931
- Lancer ensuite l'IDE Arduino et ouvrir depuis celui-ci le ficher `remora_soft.ino`
3032
- Selectionner la version de carte utilisé dans le fichier [remora.h](https://github.com/hallard/remora_soft/blob/master/remora.h#L22-L26) (les defines REMORA_BOARD_Vxx)
3133
- Selectionner les modules utilisés dans le fichier [remora.h](https://github.com/hallard/remora_soft/blob/master/remora.h#L28-L32) (les defines MOD_xxxx)
3234
- choisir dans l'IDE Arduino Menu Tools / Board => **NodeMCU 1.0 (ESP12E-Module)** ainsi que le bon serial port
3335
- choisir dans l'IDE Arduino Menu Tools / CPU Frequency => **160MHz**
3436
- choisir dans l'IDE Arduino Menu Tools / Flash Size => **4M (1M SPIFFS)**
35-
- mettre votre SSID et mot de passe Wifi dans le fichier remora.h.
37+
- mettre votre SSID et mot de passe Wifi dans le fichier remora.h.
3638
`DEFAULT_WIFI_AP_PASS` est le mot de passe de connection Wifi au remora quand celui ci se positionne en point d'accès (lorsqu'il n'arrive pas à se connecter à vôtre Wifi par exemple) son IP est alors 192.168.4.1
3739
````arduino
3840
// Définir ici les identifiants de
@@ -41,22 +43,22 @@ Installation (Arduino ESP8266 NodeMCU)
4143
#define DEFAULT_WIFI_SSID "VotreSSID"
4244
#define DEFAULT_WIFI_PASS "VotreClé"
4345
#define DEFAULT_WIFI_AP_PASS "Remora_WiFi"
44-
// =====================================
46+
// =====================================
4547
````
4648
- Lancer l'upload SPIFFS (les fichiers WEB) Menu Tools / ESP8266 Sketch Data Upload (c'est assez long)
4749
- Lancer la compilation + upload (CTRL-U)
4850

4951
**Attention**, pour pouvoir uploader via le cable USB, la téléinfo ne doit pas être connectée (en OTA pas de soucis avec ça) car le port série est partagé. Donc soit il faut la débrancher soit il faut sortir le module NodeMCU du support.
5052

51-
Pour les mêmes raisons, et afin d'afficher les informations de debug dans une console, celle-ci doit être configurée à la même vitesse que la téléinfo (car c'est le même port série) donc 1200 bps, parité paire et 7 bits de data, or **cette configuration n'est pas possible dans le moniteur série de l'Arduino**. Il faut alors prendre un autre terminal comme putty, coolterm, ...
53+
Pour les mêmes raisons, et afin d'afficher les informations de debug dans une console, celle-ci doit être configurée à la même vitesse que la téléinfo (car c'est le même port série) donc 1200 bps, parité paire et 7 bits de data, or **cette configuration n'est pas possible dans le moniteur série de l'Arduino**. Il faut alors prendre un autre terminal comme putty, coolterm, ...
5254

5355
- La procédure OTA (télédéversement sans fil) est disponible [ici][8]
5456

5557

5658
API Exposée (Particle)
5759
----------------------
5860

59-
Toutes les API se font via des requêtes HTTP sur le cloud Particle.
61+
Toutes les API se font via des requêtes HTTP sur le cloud Particle.
6062

6163
A documenter!
6264

@@ -66,7 +68,7 @@ API Exposée (ESP8266 NodeMCU)
6668

6769
Toutes les API se font via des requêtes HTTP sur le Remora. Il existe deux formats possibles si l'on veut récupérer des données ou exécuter des action avec le Remora. Chaque requête se verra retourner des données (ou un code de bonne éxécution) au format JSON.
6870

69-
Toute requête sera donc adressée sous la forme
71+
Toute requête sera donc adressée sous la forme
7072
`http://adresse_ip_du_remora/requete_plus_ou_moins_longue` dans les exemples ci dessous l'adresse IP de mon Remora est la 192.168.1.201, veillez à bien la changer pour mettre la vôtre. Les exemples ont été exécutés depuis la ligne de commande avec curl mais ils pourraient l'être depuis la barre d'addresse de votre navigateur.
7173

7274
**Les Etats de fil pilote**
@@ -92,7 +94,7 @@ Voici les différents modes de fonctionnement du relais que vous pourrez trouver
9294

9395
**Les API d'intérrogation**
9496

95-
Les API d'intérrogation se presentent sous la forme
97+
Les API d'intérrogation se presentent sous la forme
9698
`http://adresse_ip_du_remora/ma_donnee` et la/les donnée(s) sont retournées au format JSON (j'ai volontairement supprimé certains sauts de lignes de sortie pour une meilleure lecture)
9799

98100
- Durée de fonctionnement en secondes depuis le dernier reboot/reset/allumage `http://ip_du_remora/uptime`
@@ -156,16 +158,16 @@ Si le délestage est désactivé `http://ip_du_remora/delestage`
156158
"IMAX":1,
157159
"PAPP":170,
158160
"HHPHC":3,
159-
"MOTDETAT":0
161+
"MOTDETAT":0
160162
}
161163
````
162164
A noter la présence de certaines étiquettes virtuelles commencant par un `_`
163165
164166
165167
**Les API d'action**
166168

167-
Les API d'action se presentent sous la forme
168-
`http://adresse_ip_du_remora/?action=ma_donnee`, notez la différence avec les intérrogations, le `?`. Le résultat est retourné au format JSON avec un code réponse, il est :
169+
Les API d'action se presentent sous la forme
170+
`http://adresse_ip_du_remora/?action=ma_donnee`, notez la différence avec les intérrogations, le `?`. Le résultat est retourné au format JSON avec un code réponse, il est :
169171
- négatif en cas d'erreur
170172
- à 0 si tout est OK
171173
- positif pour indiquer un code retour OK différent si besoin.
@@ -219,7 +221,7 @@ Il est aussi possible de forcer le relais jusqu'au prochain changement de pério
219221
# curl http://192.168.1.201/?relais=1
220222
{ "response": 0 }
221223
````
222-
- selectionne le mode d'un des fils pilotes `http://ip_du_remora/?setfp=na` avec n=numéro du fil pilote et a=le mode à positionner (non sensible à la casse)
224+
- selectionne le mode d'un des fils pilotes `http://ip_du_remora/?setfp=na` avec n=numéro du fil pilote et a=le mode à positionner (non sensible à la casse)
223225
Fil pilote 1 en arret
224226
````shell
225227
# curl http://192.168.1.201?setfp=1a
@@ -283,7 +285,7 @@ Historiques des Modifications
283285

284286
14/04/2015 : Ajout d'une variable spark pour la teleinfo. Passage en un seul appel pour script jeedom. Les variables d'origine restent utilisables.
285287

286-
30/09/2015 : voir le post [dédié][6].
288+
30/09/2015 : voir le post [dédié][6].
287289

288290
02/12/2015 : Ajout [Version 1.3][7] Remora NodeMCU
289291

@@ -293,6 +295,10 @@ Historiques des Modifications
293295

294296
07/01/2017 : Modification de la taille de la clé API pour Jeedom (32 => 48)
295297

298+
08/02/2017 : Ajout de la variable RELAIS_REVERSE à décommenter dans remora.h pour inverser l'état du relais en cas de problème
299+
300+
04/03/2017 : Ajout des connexions TCP Asynchrones
301+
296302
Exemple
297303
-------
298304

data/css/remora.css.gz

14 Bytes
Binary file not shown.

data/index.htm.gz

-4.22 KB
Binary file not shown.

data/js/remora.js.gz

3.22 KB
Binary file not shown.

pilotes.cpp

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -344,22 +344,28 @@ Comments: exposée par l'API spark donc attaquable par requête HTTP(S)
344344
int relais(String command)
345345
{
346346
command.trim();
347-
uint8_t cmd = command[0];
347+
uint8_t cmd = command.toInt();
348348

349-
Debug("relais=");
349+
DebugF("relais=");
350350
Debugln(command);
351351
Debugflush();
352352

353353
// Vérifier que l'on a la commande d'un seul caractère
354-
if (command.length()!=1 || (cmd!='1' && cmd!='0'))
354+
if (command.length()!=1 || cmd < 0 || cmd > 1)
355355
return (-1);
356356

357357
// Conversion en 0,1 numerique
358-
etatrelais= cmd - '0';
358+
etatrelais = cmd;
359+
int etatRelaisPin = cmd;
360+
361+
// Inverse etat pin relais si definit dans remora.h
362+
#ifdef RELAIS_REVERSE
363+
etatRelaisPin = !etatRelaisPin;
364+
#endif
359365

360366
// Allumer/Etteindre le relais et la LED
361367
#ifdef RELAIS_PIN
362-
_digitalWrite(RELAIS_PIN, etatrelais);
368+
_digitalWrite(RELAIS_PIN, etatRelaisPin);
363369
#endif
364370
#ifdef LED_PIN
365371
_digitalWrite(LED_PIN, etatrelais);
@@ -408,7 +414,7 @@ int fnct_relais(String command)
408414
// go to next node
409415
me = me->next;
410416
// we're there
411-
ESP.wdtFeed();
417+
_wdt_feed();
412418
//DebugF("me->name: "); Debug(me->name); DebugF(" - value: "); Debugln(me->value);
413419
// Check PTEC label
414420
if (me->name && !strcmp(me->name, "PTEC")) {

remora.h

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,11 @@
99
// 15/09/2015 Charles-Henri Hallard : Ajout compatibilité ESP8266
1010
// 02/12/2015 Charles-Henri Hallard : Ajout API WEB ESP8266 et Remora V1.3
1111
// 04/01/2016 Charles-Henri Hallard : Ajout Interface WEB GUIT
12+
// 04/03/2017 Manuel Hervo : Ajout des connexions TCP Asynchrones
1213
//
1314
// **********************************************************************************
14-
#ifndef REMORA_h
15-
#define REMORA_h
15+
#ifndef REMORA_H_
16+
#define REMORA_H_
1617

1718
// Spark Core main firmware include file
1819
#ifdef SPARK
@@ -33,7 +34,7 @@
3334
#define MOD_ADPS /* Délestage */
3435

3536
// Version logicielle remora
36-
#define REMORA_VERSION "1.3.3"
37+
#define REMORA_VERSION "1.3.4"
3738

3839
// Définir ici votre authentification blynk, cela
3940
// Activera automatiquement blynk http://blynk.cc
@@ -89,7 +90,10 @@
8990
#include <FS.h>
9091
#include <ESP8266WiFi.h>
9192
#include <ESP8266HTTPClient.h>
92-
#include <ESP8266WebServer.h>
93+
// #include <ESP8266WebServer.h>
94+
#include <ESPAsyncTCP.h>
95+
#include <ESPAsyncWebServer.h>
96+
#include <WiFiUdp.h>
9397
#include <Ticker.h>
9498
#include <NeoPixelBus.h>
9599

@@ -110,10 +114,11 @@ extern "C" {
110114
#define _yield yield
111115
#define _wdt_feed ESP.wdtFeed
112116
#define DEBUG_SERIAL Serial
113-
//#define DEBUG_INIT // Décommenter cette ligne si DEBUG_SERIAL est Serial1
117+
//#define DEBUG_INIT
118+
#define REBOOT_DELAY 100 /* Delay for rebooting once reboot flag is set */
114119
#endif
115120

116-
//#define DEBUG // Décommenter cette ligne pour activer le DEBUG serial
121+
#define DEBUG // Décommenter cette ligne pour activer le DEBUG serial
117122

118123
// I prefix debug macro to be sure to use specific for THIS library
119124
// debugging, this should not interfere with main sketch or other
@@ -213,6 +218,7 @@ extern "C" {
213218
#elif defined (REMORA_BOARD_V13)
214219
#define LED_PIN 8
215220
#define RELAIS_PIN 9
221+
#define RELAIS_REVERSE // Decommenter pour inverser le relais (si problème de relais on au lieu de off)
216222

217223
// Creation macro unique et indépendante du type de
218224
// carte pour le controle des I/O
@@ -246,7 +252,7 @@ extern unsigned long uptime ;
246252
typedef NeoPixelBus<NeoRgbFeature, NeoEsp8266BitBang800KbpsMethod> MyPixelBus;
247253

248254
// ESP8266 WebServer
249-
extern ESP8266WebServer server;
255+
extern AsyncWebServer server;
250256
// RGB LED
251257
//extern NeoPixelBus rgb_led;
252258
//extern NeoPixelBus rgb_led(1, RGB_LED_PIN);
@@ -260,6 +266,8 @@ extern unsigned long uptime ;
260266

261267
extern Ticker Tick_emoncms;
262268
extern Ticker Tick_jeedom;
269+
extern bool reboot; /* Flag to reboot the ESP */
270+
extern bool ota_blink;
263271
#endif
264272

265273

0 commit comments

Comments
 (0)