Page 7 sur 53
Re: Tous les capteurs reliés au RPI par Wifi avec module ESP
Posté : mer. 4 mars 2015 12:33
par Jean-Marie
Hello smba38,
Dans un de mes messages j'ai indiqué mes essais sur les commandes AT.
J'ai utilisé la commande netcat sur Windows pour récupérer les données envoyées d'un esp8266 par des commande AT.
http://sourceforge.net/projects/nc110/
OK, mais il y a bien une raison pour laquelle Putty ne veut pas marcher. La raison est certainement à chercher dans le fait que je suis absolument novice dans ces questions de réseau et de communication.
En plus, ces moyens de communication du style Console, Terminal, Putty, Realterm ou autre ne me sont d'aucune utilité dans mon projet de domotique, sauf peut-être pour des tests. En effet, je cherche à relier (wireless) divers capteurs à une unité centrale de type Raspberry ou microcontrôleur, à l'intérieur d'un programme écrit par moi-même (de préférence en C), capable de prendre des décisions et éventuellement d'actionner une alarme, un éclairage, un moteur, une pompe .....
La question est donc double:
- Comment s'y prendre pour qu'un ESP envoie "ABCD" à un Raspberry dont on connait l'adresse dans le réseau ?
- Comment s'y prendre pour qu'un programme homemade tournant sur le Raspberry capte le "ABCD" ?
D'après ce que j'ai lu des commandes AT, l'ESP ne peut envoyer qu'en ouvrant une session "TCP" ou "UDP".
Le programme tournant sur le Raspi doit donc être capable de gérer le protocole TCP ou UDP.
Les choses sont-elles plus simples en Lua ?
On parle aussi du protocole MQTT implantable sur l'ESP ?
Re: Tous les capteurs reliés au RPI par Wifi avec module ESP
Posté : mer. 4 mars 2015 14:11
par Veloce
Salut Jean-Marie,
je ne sais pas si j'ai bien compris tes manips, mais normalement:
1)- sur le PC n°1 tu dois démarrer un serveur qui écoute sur le port 23:
2)- sur le PC n°2 tu crées un socket pour communiquer avec le PC n°1:
3)- sur le PC n°2 tu envoies un message au PC n°1:
4)- sur le PC n°1 tu dois recevoir le message sous cette forme :
Tu as peut-être oublié quelque chose dans l'étape 1 ?
Ou alors c'est parce que tu as choisi UDP, alors que telnet c'est du TCP ?
Veloce
Re: Tous les capteurs reliés au RPI par Wifi avec module ESP
Posté : mer. 4 mars 2015 14:17
par Veloce
Ah, et puis ce mode 3 tu n'en n'as pas besoin :
même si tu as un serveur d'un côté et un client de l'autre, les deux sont reliés à ton routeur,
donc il faut configurer les deux en station:
Veloce
Re: Tous les capteurs reliés au RPI par Wifi avec module ESP
Posté : mer. 4 mars 2015 16:52
par smba38
Bonjour Veloce et jean-marie,
Quelques remarques sur les commandes AT:
Syntaxe à vérifier :
AT+CIPSTART=0,"TCP","192.168.1.30",4444
A voir si le N° de port est à mettre en double quottes ?
Il me semble que la syntaxe du send est canal, longueur
AT+CIPSEND=0,5
En plus quelle est la version du firmware que tu utilises ?
https://drive.google.com/folderview?id= ... 1lvSkJmNU0
Voici la mienne.
Je pense que les choses sont bien plus simples en LUA.
A+
Michel.
Re: Tous les capteurs reliés au RPI par Wifi avec module ESP
Posté : mer. 4 mars 2015 17:31
par Jean-Marie
Hello Veloce,
Merci pour ces instructions précises. C'est vraiment ce qui me convient car je me sens perdu avec ce vocabulaire nouveau. Par exemple, j'aurais eu tendance à appeler "Serveur" le côté qui envoie et "client" le côté qui reçoit. Or, apparemment c'est le contraire.
Je viens d'essayer ta recette. Malheureusement, ça coince. Je vais donc détailler exactement ce que j'ai fait. Peut-être verras-tu une erreur.
J'ai d'abord configuré l'ESP du PC n°1
Code : Tout sélectionner
Terminal log file
Date: 4/03/2015 - 15:47:41
---------------------------
AT+CWMODE=1
no change
AT+CIPMUX=1
OK
AT+CIPSERVER=1,23
OK
AT+CIFSR
192.168.0.102
OK
---------------------------
Date: 4/03/2015 - 15:50:43
End log file
Je prends note de l'adresse 192.168.0.102 de l'ESP du PC n°1 pour la reporter dans l'autre PC.
Je me suis ensuite rendu sur le PC n°2 pour entrer les commandes suivantes:
Code : Tout sélectionner
Terminal log file
Date: 4/03/2015 - 16:02:30
----------------------------
AT+CWMODE=1
no change
AT+CIPSTART="TCP","192.168.0.102","23"
ERROR
Unlink
---------------------------
Date: 4/03/2015 - 16:03:41
End log file
Comme tu le vois, la commande AT+CIPSTART a échoué.
Par contre, j'ai essayé en remplaçant "TCP" par "UDP" et la commande a été acceptée:
Code : Tout sélectionner
Terminal log file
Date: 4/03/2015 - 17:22:34
-----------------------------------------------
AT+CIPSTART="UDP","192.168.0.102","23"
OK
AT+CIPSEND=7
> Bonjour
SEND OK
-----------------------------------------------
Date: 4/03/2015 - 17:24:42
End log file
Malheureusement, le terminal de l'ESP du PC n°1 n'a rien reçu. Donc, si l'ESP a reçu le bonjour, celui-ci n'a pas été exporté vers le PC par la liaison série.
Re: Tous les capteurs reliés au RPI par Wifi avec module ESP
Posté : mer. 4 mars 2015 18:23
par Veloce
J'ai peut-être trouvé l'os rigolo (comme dans Docteur Maboul) :
Tu as mis le numéro de port entre guillemets, et il ne faut pas !
C'est normal qu'en UDP il dise OK tout le temps, puisque c'est un socket sans connexion :
imagine une communication par CB. Tu appuies sur le bouton et tu dis "y'a quelqu'un ?".
Tu ne sais pas si ça a marché, mais ta CB a affiché une led qui dit que tu as émis quelque chose.
Maintenant en TCP, on doit établir une connexion. Pense au téléphone, tu composes le numéro,
mais ça sonne occupé. Ou ça t'indique que tu as fait un numéro qui n'existe pas.
Bon ce coup-ci, dis moi que ça marche !
Veloce
Re: Tous les capteurs reliés au RPI par Wifi avec module ESP
Posté : mer. 4 mars 2015 18:24
par Jean-Marie
Hello Michel, alias smba38,
Ton message s'est ajouté pendant que je préparais le mien.
Selon un document d'ESSPRESSIF, la syntaxe de la commande AT+CIPSTART est la suivante:
- 487.jpg (103.94 Kio) Vu 8908 fois
On voit que cette version V0.20 est datée du 28 novembre 2014.
Si je demande la version de mon ESP (commande AT+GMR), j'obtiens
0018000902-A103.
Tout ce que je peux dire, c'est que ma version AT est 0018.
Et lors de AT+RST, j'obtiens
[Vendor:www.ai-thinker.com Version:0.9.2.4]
Je vois sur la page web que tu renseignes que la version serait
0.9.5.0 Mais par ailleurs, dans le log, les commandes utilisées ici n'ont pas été modifiées.
Pour la commande
CIPSTART, on voit que <type>,<addr> et <port> sont des strings (entourés de guillemets).
Par contre, le paramètre <id> ne prend pas de guillemets mais n'est nécessaire que si CIPMUX=1. Dans mon cas, CIPMUX=0
De même, pour
CIPSEND, le paramètre <id> (canal) n'est à mettre que quand CIPMUX=1.
Re: Tous les capteurs reliés au RPI par Wifi avec module ESP
Posté : mer. 4 mars 2015 18:31
par smba38
Bonsoir Jean-marie.
Dans ton exemple, le 18 est la version du SDK, la version des commandes AT est 9.0.2.
Si on dispose d’un Raspberry, on peut utiliser des commandes pour visualiser le trafic sur un port.
On peut utiliser la commande netcat (nc) pour visualiser le trafic
-4 pour IPV4, -u pour UDP et –l pour listen (écoute du port)
Et la commande netstat permet de lister les connexions actives
J’ai verifié, ça fonctionne avec les commandes AT (avec le protocole UDP dans l'exemple).
Sur le raspberry lancer nc pour écouter en UDP sur le port 5005
Sur l’ESP8266 lancer les commandes AT
Code : Tout sélectionner
AT+CWMODE=3
OK
AT+CWJAP="WRT54G_409B","mot de passe"
OK
AT+CIPMUX=1
OK
AT+CIPSTART=0,"UDP","192.168.1.22",5005
0,CONNECT
OK
AT+CIPSEND=0,5
> 12345busy s...
SEND OK
Su le Raspberry on récupère les données
On peut vérifier que la connexion est active par netstat
Code : Tout sélectionner
netstat |grep 5005
udp 0 0 pc33.home:5005 pc33.home:29406 ESTABLISHED
Avec le protocole TCP , ça marche également, mais le "nc -4 -l 5005" doit être lancé en premier sur le Raspberry
Ne pas mettre -u (UDP) dans la commande nc
Essayes de récupérer la dernière version du firmware des commandes AT.
Courage.
SMBA38
Re: Tous les capteurs reliés au RPI par Wifi avec module ESP
Posté : mer. 4 mars 2015 18:50
par Jean-Marie
Hello Veloce,
De nouveau un croisement de message.
YOUPIIIIE
Tout a fonctionné.
Le PC2 a envoyé un grand Bonjour au PC1 qui l'a reçu.
Whaou ! Je suis pas mal content !
Bon, ce soir, j'ai une émission TV intéressante mais dès que possible, je poste l'ensemble définitif des commandes de chacun des PC.
Re: Tous les capteurs reliés au RPI par Wifi avec module ESP
Posté : mer. 4 mars 2015 18:56
par Jean-Marie
Hello, Michel,
Croisement de message !
Ce serait probablement une bonne idée de flasher la dernière version des commandes AT. Mais avant, je vais refaire un petit topo de tout ce qu'il faut faire pour que ça marche (dès fois que la mise-à-jour du firmware cafouille).
Pour le moment, je laisse netcat en réserve.