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

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 » sam. 13 juin 2015 19:52

Coucou Fidoboulettes,

Pour les version 0.9.6
https://github.com/nodemcu/nodemcu-firm ... v_20150406
Utilise la version integer car si tu utilise la version float je pense qu’il faut adapter le programme bmp085.

Avec la version Integer il faut calculer séparément la partie entière et la partie décimale d’un nombre.
Avec la version Float on peut manipuler les nombres entiers ou décimaux.
Si l’on écrit f=10.5 , avec la version integer on à l’erreur « testintfloat.lua:1: malformed number near '10.5' »


Pour la version 0.9.5 j’utilise le NodeMcu Firmware programmer avec la configuration par défaut.
firmware programmer.JPG
firmware programmer.JPG (61.65 Kio) Vu 4691 fois
NodeMCU 0.9.5 build 20150213 powered by Lua 5.1.4

Dans les options il faut indiquer la taille de la mémoire Flash (4MO dans mon cas car c’est le kit NodeMcu).
firmware programmer-options.JPG
firmware programmer-options.JPG (38.08 Kio) Vu 4691 fois
Comme IDE j’utilise NodeMcu Studio 2015-06-13
http://bbs.nodemcu.com/t/nodemcu-studio ... 50111/64/1

Quelques problèmes que j’ai rencontrés sur ton programme.

error loading module 'bmp085' from file 'bmp085.lua':
not enough memory
Il faut compiler bmp085.lua -> node.compile("bmp085.lua")

Si il y a un message manque de mémoire, il faut faire un Reset avant d’exécuter un programme.

bmp085.getUT(false ) ne marche pas utiliser bmp085.getUT(true)
Mais ceci provient peut-être que je n’ai pas de BMP085 de connecté.

Print ("heap=" .. node.heap() ) ne marche pas (reboot de l’ESP)
Utiliser print(node.heap() .."<-heap") ou print(node.heap()) tout seul.
Il est délicat de faire appel de fonctions à l’intérieur des événements "conn:on"

Après un flash s’il existe encore des fichiers dans la mémoire flash faire un file.format()

Faire un reset avant de mettre à jour un fichier lua car si un programme est en train de s’exécuter avec un trm.alarm (…) en cours d’exécution ,l es prints vont perturber la mise à jour du fichier Lua.


Pour ta question sur la compilation:
Un compilateur transforme un langage source en binaire directement utilisable par le CPU de l'ESP8266.
C'est le cas si l'on utilise le langage C par exemple dans l'IDE ESP8266/ Arduino.
C'est également le cas si l'on utilise un compilateur C (gcc) .
Après la compilation il y a une phase "edition de lien" qui permet de rajouter les fonctions fournies déjà compilées du SDK d'Espressif.

Lua est un interpréteur , le code Lua va être transformé par un node.compile en pseudo code.
Ce pseudo code est lu par l'interpréteur Lua qui transforme le pseudo code en binaire.
On compilant du code lua on gagne sur la taille du programme en mémoire ( en particulier il n'y a plus de commentaires).
Si on ne compile pas un programme, lua le compile en pseudo code avant de l'interpréter.
L'avantage d'un interpréteur c'est que l'on peut saisir du code lua directement dans la console Lua (même si un programme lua est en train de s'exécuter).



C'est tout pour aujourd'hui.

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 » dim. 14 juin 2015 10:26

Désolé Fidoboulettes si je suis sur une autre longueur d'onde que toi car je ne suis pas en LUA.
J'en suis encore à me dépatouiller avec les commandes AT et justement j'ai un drôle de blocage.

J'utilisais un ancien module ESP (MAC 18:FE:34:A0:46:03) qui avait déjà reçu dans le DHCP de mon routeur Wifi une réservation d'adresse avec IP à 192.168.0.50.
Depuis lors, tous les modules ont été reflashés avec la dernière version du firmware (esp_iot_sdk_v1.1.1_15_06_05).
Lors de la connexion, tout se passa normalement au branchement de mon wifi (ssid: "Wifi Collette", sans password) et à l'autre module (sur le PC) qui avait reçu de manière dynamique l'IP 192.168.0.101:

Code : Tout sélectionner

AT+GMR
     AT version:0.25.0.0(Jun  5 2015 16:27:16)
     SDK version:1.1.1
     compile time:Jun  5 2015 21:03:10
     OK
AT+CWMODE_DEF=1
     OK
AT+CWJAP_DEF="Wifi Collette",""
     WIFI CONNECTED
     WIFI GOT IP
     OK
AT+CIFSR
     +CIFSR:STAIP,'192.168.0.50"
     +CIFSR:STAMA,"18:fe:34:a0:46:03"
     OK
AT+CIPSTART="TCP","192.168.0.101",23
     CONNECT
     OK
Mais, mais, mais .......
Après 20 à 30 minutes, j'ai reçu au terminal l'avis que j'étais déconnecté et un AT+CIFSR me montrait +CIFSR:STAIP,"0.0.0.0"

Sur ce, j'ai essayé AT+RESTORE: connexion au routeur impossible.
Puis reflash avec le même firmware: idem.
Puis suppression d'adresse réservée dans le routeur et rétablissement de l'attribution automatique d'IP: idem
Puis essai avec un autre module: idem. Connexion au routeur impossible. Voici la trace au terminal:

Code : Tout sélectionner

AT+GMR
     AT version:0.25.0.0(Jun  5 2015 16:27:16)
     SDK version:1.1.1
     compile time:Jun  5 2015 21:03:10  
     OK
AT+CWMODE=1
     OK
AT+CWJAP_DEF="Wifi Collette",""
     WIFI CONNECTED
     +CWJAP:1
                       ... Quelques secondes, puis
     FAIL
     WIFI DISCONNECT
Je pense que le problème vient de Windows8.1 ou de mon portable car si je transporte le module sur le PC de bureau avec WinXP, j'obtient la trace suivante:
103.jpg
103.jpg (10.57 Kio) Vu 4683 fois

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 » dim. 14 juin 2015 12:04

Coucou Jean-Marie.

En principe du coté W8 tu as:

W8 connecté sur ton Arduino en USB .
l'ESP connecté sur ton Arduino en série.
L'ESP connecté en Wifi sur ton routeur.

Donc il n'y a pas de liaison directe entre W8 et l'ISP.

Tu as peut-être un problème d'interférences WifI.
Essaye de couper le WifI de W8,
Sur W8 le WifI ne te sert pas pour tes manipulations entre les deux ESP.
C'est entre l'ESP et ta box que la liaison Wifi est rompue.

Tu peux également essayer de changer le canal Wifi de ta box.

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 » dim. 14 juin 2015 15:58

Hello SMBA38

Ma configuration est différente de ce que tu imagines.
104.jpg
104.jpg (164.65 Kio) Vu 4674 fois
Un Modem Câble amène Internet par Ethernet à un routeur Wifi. Celui-ci sert le Wifi et Internet à tous les périphériques.
Actuellement, le module ESP est seulement relié au Wifi d'une part et à l'USB du Portable d'autre part (pour le convertisseur Série et le terminal).
L'Atmega, l'horloge et le MOSFET sont présents mais non connectés au module et au portable.

Donc, comme tu le dis ...
il n'y a pas de liaison directe entre W8 et l'ESP.

Tu as peut-être un problème d'interférences WifI.
Que ferait-on sans toi !
J'ai été chercher une rallonge USB et j'ai placé l'ESP plus loin
......... et ça marche !!!
Voici la trace:
105.jpg
105.jpg (12 Kio) Vu 4674 fois
Merci SMBA38.

fidoboulettes
Messages : 33
Enregistré le : mar. 26 mai 2015 07:18

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

Message par fidoboulettes » dim. 14 juin 2015 18:44

smba38 a écrit : Pour la version 0.9.5 j’utilise le NodeMcu Firmware programmer avec la configuration par défaut.
firmware programmer.JPG
NodeMCU 0.9.5 build 20150213 powered by Lua 5.1.4

Dans les options il faut indiquer la taille de la mémoire Flash (4MO dans mon cas car c’est le kit NodeMcu).
firmware programmer-options.JPG
Hello SMBA, et aux autres... perso, impossible de flasher mon esp01 avec la version 0.9.6... j'ai systématiquement des erreurs qui s'affichent... Tu dis que tu lui mets 4MO ds la mémoire Flash car tu as le kit nodemcu.... je me demandais ce qu'il fallait mettre pour un ESP01.... 1MO?

J'ai aussi essayé de faire un file.format() car j'avais a nouveau ce fichier parasite... mais une fois fait, je n'arrive plus à avoir la main sur l'esp... même si je fait un reset avant (reset à la masse).... c'est un peu pénible...
merci à toi de toutes tes indications

EDIT: chui con, tu m'avais répondu ds ton message du 12 Juin ESP01 --> 512k... bon bah je m'y remets... en fait les 512 k c'est la place qu'il y a pour installer des scripts (?)... bon je commence à comprendre tt doucement.... mais alors vraiment doucement.... :roll:

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. 15 juin 2015 19:44

Coucou Jean-Marie.

Pour tes problèmes de Wifi, tu peux peut-être connecter les deux ESP entre eux sans passer par ton routeur.
l'ESP maitre en mode AP (Adresse IP fixe 192.168.4.1 non modifiable ) et l'autre ESP en mode station.
c'est L'AP qui va fournir via son DHCP une adress IP de la forme 192.168.4.x à la station.

Quelques infos sur http://tech.scargill.net/esp8266-as-an-access-point/


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 » lun. 15 juin 2015 22:00

Helo Fidoboulettes,

512KO c'est la taille totale de la mémoire flash sur un ESP-01.
Dans cette mémoire, il va y avoir : l'interpreteur Lua + le SDK + les configurations user et Wifi.
Pour ton pb de flash regarde https://github.com/nodemcu/nodemcu-firmware/issues/307

L'dée est flasher la mémoire de 512KO (à partir de 0x00000) avec un fichier binaire avec tous les bits à 1 (blank512.bin).
Comme je n'ai pas trouvé ce fichier sur la toile je l'ai créé avec un petit programme python

Code : Tout sélectionner

i=0
file = open("blank512.bin","wb")
while i<512*1024:
	file.write("\xFF")
	i=i+1
file.close()
blank512.zip
(783 Octets) Téléchargé 75 fois
Il existe déjà des fichier binaires blank.bin (de 4KO) qui servent à écraser les emplacement en mémoire flash ou se trouvent les configurations utilisateur et Wifi.

Essaye avant de flasher NodeMcu un raz de la mémoire flash avec blank512.bin ( à partir de 0x0000)

Un autre lien que j'ai trouvé :http://fr.slideshare.net/geekscape/node ... workshop-1

Courage

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 » mar. 16 juin 2015 07:34

Hello SMBA38

Ce n'est pas la première fois que j'accède aux pages de ce Peter Scargill. Je crois que c'estbun australien qui semble très actif.
Ton idée me donne des idées .......

Il y a la solution que tu as signalée, qui consiste à créer un propre réseau ESP avec le maître en mode AP et les autres en mode station, sans passer par le routeur ordinaire qui délivre Internet. Mais ,le maître, qui est aussi l'unité centrale, n'est pas nécessairement en position centrale dans la maison. Cela pourrait créer des difficultés de réseau. A voir.
Une autre solution est que mon portable qui est près de l'ESP ne sert que de contrôle pour les échanges Série. Il n'a pas besoin de son Wifi pur ces contrôles. Donc, je peux couper le Wifi du portable pendant les essais. Je vais d'abord essayer ça.
Une troisième solution est de mettre en place un réseau spécifique des ESP avec un autre routeur qui peut être placé en position centrale dans la maison. les PC et Portables n’accéderaient pas à ce réseau mais resteraient sur leur routeur habituel. J'ai un routeur en réserve et j'essayerai aussi cette solution.

Aujourd'hui je n'aurai pas beaucoup de temps pour le forum et les essais car je dois encore préparer des choses et demain matin je pars pour une semaine dans le sud de la France.

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. 16 juin 2015 09:36

Le routeur supplémentaire, c'est déjà raté car il a la même adresse IP de base que mon routeur habituel: 192.168.0.1

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. 16 juin 2015 12:31

Coucou Jean-Marie.
Jean-Marie a écrit : Le routeur supplémentaire, c'est déjà raté car il a la même adresse IP de base que mon routeur habituel: 192.168.0.1
Mais une adresse IP associée à un routeur ça se change.
Quelle est le modèle de ton routeur ?.

SMBA38

Répondre

Retourner vers « Et tout le reste »