Tous les capteurs reliés au RPI par Wifi avec module ESP8266

Parce que les applications du Raspberry Pi sont illimités...

Modérateur : Francois

Avatar du membre
Jean-Marie
Raspinaute
Messages : 240
Enregistré le : sam. 24 janv. 2015 18:01
Localisation : Arlon, Belgique
Contact :

Re: Tous les capteurs reliés au RPI par Wifi avec module ESP

Message par Jean-Marie » lun. 16 mars 2015 20:43

Hello tout le monde

Je ne sais pas exactement ce que recouvrent les "paramètres Wifi". Mais j'ai fait les tests suivants.
  • J'ai refait mon expérience des 2 PC, chacun ayant son ESP. Les deux PC sont en mode Station (AT+CWMODE=1)
    L'ESP du PC 1 est configuré en multiple connexion (AT+CIPMUX=1)comme Serveur sur le Port 23 (AT+CIPSERVER=1,23)
    L'ESP du PC 2 ouvre une connexion TCP à l'adresse IP du ESP 1 sur le Port 23 (AT+CIPSTART=...) et envoie un message (AT+CIPSEND...)
    Ce message est bien reçu par l'ESP 1 (+IPD...).
    Si on Reset (AT+RST) ou qu'on reboot l'un des ESP (par interruption de l'alimentation), la connection est interrompue et il faut nécessairement reconfigurer cet ESP. Si cet ESP est le serveur, il faut également réinitialiser la connexion de l'autre ESP.
  • J'ai également tenté l'expérience avec l'ESP serveur web commandé par un Arduino et proposé par Veloce ICI.
    Si on reboot l'ESP, la page web n'est plus disponible. Il faut également rebooter l'Arduino pour reconfigurer l'ESP en serveur web.
Il semble donc évident que les paramètres wifi d'un ESP en commande AT ne sont pas préservées lors d'un reset ou d'un reboot.

smba38
Modérateur
Messages : 193
Enregistré le : mar. 24 févr. 2015 09:28
Localisation : Bourgoin

Re: Tous les capteurs reliés au RPI par Wifi avec module ESP

Message par smba38 » lun. 16 mars 2015 22:11

Bonsoir Jean-Marie.

J'ai fait de mon coté un test sur la conservation de la configuration WIFI (En Lua).

J'ai configuré mon routeur Orange pour affecter l'adresse ip 192.168.1.157 à l'interface station de la puce esp8266.

On peut vérifier la correspondance adresses IP <-> adresses MAC par la commande DOS arp -a
A faire après un Ping 192.168.1.157

Code : Tout sélectionner

c:\Windows\System32>arp -a
Interface : 192.168.1.30 --- 0x4
  Adresse Internet      Adresse physique      Type
  192.168.1.1           34-8a-ae-3c-cc-44     dynamique
  192.168.1.13          90-fd-61-21-40-ca     dynamique
  192.168.1.22          b8-27-eb-47-a1-e8     dynamique
  192.168.1.109         00-19-d2-76-61-a3     dynamique
  192.168.1.157         18-fe-34-9b-9b-0e     dynamique
Ensuite par la commande DOS ping -t 192.168.1.157 je ping la puce esp8266 d'une façon permanente (option -t).
et de temps en temps j'appuie sur le bouton qui reboote la puce.

Code : Tout sélectionner

c:\Windows\System32>ping -t 192.168.1.157
Envoi d'une requête 'Ping'  192.168.1.157 avec 32 octets de do
Réponse de 192.168.1.157 : octets=32 temps=26 ms TTL=255
Réponse de 192.168.1.157 : octets=32 temps=37 ms TTL=255
Réponse de 192.168.1.157 : octets=32 temps=1 ms TTL=255
Délai d'attente de la demande dépassé.
Réponse de 192.168.1.157 : octets=32 temps=11 ms TTL=255
Réponse de 192.168.1.157 : octets=32 temps=17 ms TTL=255
Réponse de 192.168.1.157 : octets=32 temps=24 ms TTL=255
Délai d'attente de la demande dépassé.
Réponse de 192.168.1.157 : octets=32 temps=103 ms TTL=255
Le ping ne répond plus un certain temps, mais la connexion revient automatiquement.
Je n'ai même pas de code Lua qui se lance au reboot.
C'est la configuration de l'interface wifi qui est relancée automatiquement.

J'ai essayé avec les commandes AT, ça fonctionne également.
On n'est pas obligé de refaire un AT+CWMODE=1 et un AT+CWJAP="ssid","mot de passe"
Même en coupant l'alimentation USB le ping répond après la coupure du courant.

mais la connexion TCP AT+CIPSTART pour un client est perdue après un plantage du client ou un Reboot.

il faut de toutes les façon relancer la demande de connexion AT+CIPSTART sur le client planté.

Quant on initialise une connexion TCP via les sockets, il y à une poignée de mains ( handshake) qui s'initialise et si une des deux mains lâche la connexion se plante (un peut comme des trapézistes).

J'ai fait un test avec mon programme serveur TCP en python sur le Raspberry, ça fonctionne le serveur n'est pas à relancer.
mais sur le client il faut relancer

Code : Tout sélectionner

AT+CIPMUX=1
AT+CIPSTART=0,"TCP","192.168.1.22",5005
AT+CIPSEND=0,5 
Le serveur TCP en python initialise automatiquement une nouvelle connexion à la demande d'un client car il peut gérer plusieurs connexions à la fois.

Si le serveur se plante, sur le client on a le message

Code : Tout sélectionner

0,CLOSED
Je n'ai pas testé la partie serveur sur les commandes AT.

En réseau le plus dur n'est pas d'établir une connexion, c'est de relancer celle si suite à un plantage.

Bonne nuit.
SMBA38





Michel.

Avatar du membre
Jean-Marie
Raspinaute
Messages : 240
Enregistré le : sam. 24 janv. 2015 18:01
Localisation : Arlon, Belgique
Contact :

Re: Tous les capteurs reliés au RPI par Wifi avec module ESP

Message par Jean-Marie » mar. 17 mars 2015 11:56

Hello smba38
Je n'ai pas testé la partie serveur sur les commandes AT.
Ce test du ping m'intrigue. J'ai donc fait ton test sur l'ESP serveur de page Web et piloté par Arduino avec les commandes AT (Programme de Veloce). J'interromps l'alimentation de l'ESP, je lance le ping et je réalimente l'ESP.
La photo montre la commande ping en haut et la page web en bas.
503.jpg
503.jpg (78 Kio) Vu 7189 fois
On voit que les 2 premiers ping ont raté mais que les deux suivants ont abouti.
Donc, l'ESP s'est rebranché tout seul à mon réseau wifi (il a donc conservé le SSID et le mot de passe du routeur).
Par contre, la page web reste désespérément inaccessible.
Je ne sais pas si je tire la bonne conclusion mais cela pourrait signifier que les paramètres wifi sont conservés mais que la fonction Serveur doit être réinitialisée?

smba38
Modérateur
Messages : 193
Enregistré le : mar. 24 févr. 2015 09:28
Localisation : Bourgoin

Re: Tous les capteurs reliés au RPI par Wifi avec module ESP

Message par smba38 » mar. 17 mars 2015 13:10

Coucou Jean-Marie,

C'est exactement ce que j'explique dans mon message précédent.
La configuration du Wifi est conservée en mémoire Flash.
Tu peux utiliser l'option -t dans le ping pour pinger en permanence -> ping -t 192.168.0.nn

Si le client se plante, il faut recréer la connexion car la poignée de mains est rompue.
Tu peux vérifier sur un client si le serveur à fermé la connexion par la réception du message -> n,closed.
tu peux également tester si un ESP8266 est actif en envoyant -> AT sur la liaison et vérifier en retour le message OK.
Même après un "AT+CIPSTART" le client doit répondre -> OK à un -> AT.

Au passage, tu n'est pas obligé de passer par ton routeur pour gérer le Wifi.
Tu peux configurer l'ESP8266 serveur en mode AP.
Tu te connecte sur les clients sur l'AP d'adresse IP 192.168.4.1 (Adresse non modifiable).
En principe tu n'as pas besoin de connaître les adresses IP affectées par le DHCP du point d'accès (AP).
C'est la notion de canal qui est utilisée, mais tu peux lister ces adresses par la commande AT+CIFSR .

Tu peux également connecter ton PC en Wifi sur l'esp8266 serveur 192.168.4.1 mais dans ce cas tu n'aura plus accès à Internet(sauf si ton PC est relié en filaire au LAN).

En Lua c'est un peu plus simple car on peut automatiquement lancer un programme Lua au Boot.

A+
SMBA38

smba38
Modérateur
Messages : 193
Enregistré le : mar. 24 févr. 2015 09:28
Localisation : Bourgoin

Re: Tous les capteurs reliés au RPI par Wifi avec module ESP

Message par smba38 » mer. 18 mars 2015 21:53

Bonsoir à tous,

Je regarde de temps en temps les nouvelles informations sur la puce esp8266.
J'ai vu que la version 21 du 23/01/2015 est récupérable pour le commandes AT.
Voir http://pietrushnic.github.io/blog/2015/ ... toolchain/
J'ai récupéré et compilé cette dernière version.

Le SDK est le même que sur la version N°20 c'est le le 0.9.5, c'est l'implémentation des commandes AT qui à changée.
On peut en particulier configurer l'UART?
Elle fonctionne par défaut à 115200 bauds.

Voici l'historique des Mises à jour des versions.
MAJExpressif.JPG
MAJExpressif.JPG (86.32 Kio) Vu 7169 fois
Je n'est pas testé cette version, J'ai juste essayé de faire une connexion TCP, ça fonctionne.

Code : Tout sélectionner

ready
AT+GMR
AT version:0.21.0.0
SDK version:0.9.5
OK
Au lancement de la constitution des fichiers binaires, le système pose des questions.
Il y a deux façons de générer les binaires.
Une sans mise à jour OTA et une avec mise à jour OTA (On The Air).
La mise à jour OTA permet de mettre à jour le Firmware depuis une commande AT (AT+CIUPDATE).

A voir si cette information peut accélérer vos traitements.

A+
SMBA38.

Avatar du membre
Jean-Marie
Raspinaute
Messages : 240
Enregistré le : sam. 24 janv. 2015 18:01
Localisation : Arlon, Belgique
Contact :

Re: Tous les capteurs reliés au RPI par Wifi avec module ESP

Message par Jean-Marie » mer. 18 mars 2015 23:25

Hello Michel smba38
Justement, hier j'ai navigué parmi les infos de la version 21 des commandes AT. J'étais tombé sur ce site en russe mais il y a moyen de s'en sortir avec la traduction google.

J'ai été voir ton site. Sacrebleu, les explications de Pietrushnic sont d'un compliqué !!! C'est bon pour les Linuxiens aguerris !
Déjà rien que cette ligne "First we clone esptool repository", je n'ai aucune idée de ce que cela peut bien vouloir dire et encore moins de la manière de le faire! Non, Michel, ne te lance pas dans des explications. Ce serait la même chose que de m'expliquer qu'une molécule d'eau correspond à H2O. Cela ne donne aucune idée de la nature de l'eau, d'où elle vient, où elle va et ce qu'on peut faire avec.

Je ne me sens pas prêt à me lancer dans des compilations de sources où il faut modifier telle ligne et remplacer tel fichier par un autre après l'avoir modifié pour tes paramètres. Mais il devrait bien y avoir l'un ou l'autre fichier bin à mettre dans le flasher! Tant qu'on y est, pourquoi ne pas d'abord compiler le flasher à partir de ses sources. On pourrait même penser à compiler le compilateur ! Puis quand tout est compilé, il faut encore faire un make ! Putain, y a des fois où j'en ai carrément raz le bol de Linux. Enfin, je ne dois pas crier trop fort car je vais me faire assassiner sur ce forum.

Alors, toi Michel, peux-tu m'expliquer pourquoi je n'ai pas encore trouvé le fichier bin à flasher ?

smba38
Modérateur
Messages : 193
Enregistré le : mar. 24 févr. 2015 09:28
Localisation : Bourgoin

Re: Tous les capteurs reliés au RPI par Wifi avec module ESP

Message par smba38 » mer. 18 mars 2015 23:47

Coucou Jean-Marie.

Voici un zip car il a plusieurs fichiers.
bin.zip
(146.09 Kio) Téléchargé 173 fois
Et voici les adresses ou flasher

Je te donne le fichier .bat car j'utilise python pour flasher.

Il suffit que tu transpose avec ton flasher

Code : Tout sélectionner

python esptool.py  --port \\.\COM4 --baud 115200 write_flash 0x00000 eagle.flash.bin
pause 
python esptool.py  --port \\.\COM4 --baud 115200 write_flash 0x40000 eagle.irom0text.bin
pause
python esptool.py  --port \\.\COM4 --baud 115200 write_flash 0x7C000 esp_init_data_default.bin
pause
python esptool.py  --port \\.\COM4 --baud 115200 write_flash 0x7E000 blank.bin
pause
Indique les 4 fichiers et leurs offsets
Le premier fichier c'est les commandes AT, le second le SDK et le dernier la config WIFI.

La vitesse de connexion aux commandes AT est de 115200.

J'ai du utiliser la commande AT pour forcer l'adresse IP pour faire fonctionner le WIFI?

Code : Tout sélectionner

AT+CIPSTA="192.168.1.157

A+
Michel

Avatar du membre
Jean-Marie
Raspinaute
Messages : 240
Enregistré le : sam. 24 janv. 2015 18:01
Localisation : Arlon, Belgique
Contact :

Re: Tous les capteurs reliés au RPI par Wifi avec module ESP

Message par Jean-Marie » jeu. 19 mars 2015 09:16

Merci Michel, tu me facilites drôlement la vie.
J'essaye ça après ma douche.

smba38
Modérateur
Messages : 193
Enregistré le : mar. 24 févr. 2015 09:28
Localisation : Bourgoin

Re: Tous les capteurs reliés au RPI par Wifi avec module ESP

Message par smba38 » jeu. 19 mars 2015 10:52

bonjour Jean-Marie.

Pour avoir des informations sur la nouvelle version tu regardes ici

http://bbs.espressif.com/viewtopic.php?f=5&t=154

Et tu télécharges le dernier SDK au format ZIP (Juste pour récupérer de la documentation , pas pour compiler)..
http://bbs.espressif.com/download/file.php?id=189

Et tu vas voir dans le sous répertoire esp_iot_sdk_v0.9.5\document\ du ZIP
Tu as le choix entre Chinois ou Anglais, je te conseille de prendre le répertoire "Anglais"
Il y en a qu'ont essayé le répertoire Chines mais ils ont eu des problèmes .

Sur ce répertoire, il y a des fichiers au format PDF (Liste des commandes AT).
J'ai essayé de mettres les fichiers PDF comme pièces jointes au message mais ça passe pas(Ils doivent être trop gros).

J'ai vu sur le BBS d'Espressif qu'il y avait un patch à apporter sur les sources pour corriger deux trois Problèmes.
Quand j'ai un moment je recompile avec le patch.
Je pense également essayer la version OTA (On The Air) pour faire automatiquement les mises à jour avec une commande AT.

A+
Michel.
Modifié en dernier par smba38 le jeu. 19 mars 2015 21:06, modifié 1 fois.

Avatar du membre
Jean-Marie
Raspinaute
Messages : 240
Enregistré le : sam. 24 janv. 2015 18:01
Localisation : Arlon, Belgique
Contact :

Re: Tous les capteurs reliés au RPI par Wifi avec module ESP

Message par Jean-Marie » jeu. 19 mars 2015 11:01

Merveilleux ! Tout a fonctionné avant même que je ne voie ton message de 09:52
Merci Michel.

Pour ceux qui ne se sont pas encore lancé dans l'aventure, je prépare un petit dossier qui rassemble tout ce qu'il faut faire pour flasher un ESP-7 ou ESP-12.

Répondre

Retourner vers « Et tout le reste »