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 » ven. 3 avr. 2015 18:59

Coucou Jean-Marie

Encore une nouvelle version pour les commandes AT la v23 avec le SDK v1.0.1

On peut récupérer les binaires des commandes AT sur le .zip livré par Espressif.
Il n’y a pas besoin de recompiler le code, sauf s’il existe des patchs à appliquer.
Il faut lire les informations sur le BBS d’Espressif pour connaitre l’existence de ces patchs.

Les binaires se trouvent sur deux répertoires :
D:\VM\share\esp_iot_sdk_v1.0.0_15_03_20.zip\esp_iot_sdk_vx.y.z.\bin\
D:\VM\share\esp_iot_sdk_v1.0.0_15_03_20.zip\esp_iot_sdk_vx.y.z\bin\at\

Il faut lire le fichier readme pour connaitre les adresses ou flasher

Code : Tout sélectionner

download:
boot_v1.3+.bin      0x00000
user1.1024.new.bin  0x01000
blank.bin           0x7e000 & 0xfe000

*NOTICE*: If you use Esp Flash Download Tool, please MAKE SURE to choose FLASH SIZE to 8Mbit.
 
Le plus simple est de mettre le .exe du flasher dans le répertoire bin (Attention, il faut flasher à 8Mbits= 1Mbyte)
Je pense que les ESP-12 disposent de 1MOBytes.
Flash_size.JPG
Flash_size.JPG (40.83 Kio) Vu 3841 fois
Les binaires du répertoire AT correspondent à la version avec une mise à jour OTA (On The Go) AT+CIUPDATE.
flash v1.0.1.JPG
flash v1.0.1.JPG (51.08 Kio) Vu 3841 fois
Voici le log au boot + les infos sur la version

Code : Tout sélectionner

AT+RST
OK

 ets Jan  8 2013,rst cause:4, boot mode:(3,6)

wdt reset
load 0x40100000, len 1320, room 16 
tail 8
chksum 0xb8
load 0x3ffe8000, len 776, room 0 
tail 8
chksum 0xd9
load 0x3ffe8308, len 412, room 0 
tail 12
chksum 0xb9
csum 0xb9

2nd boot version : 1.3(b3)
  SPI Speed      : 40MHz
  SPI Mode       : QIO
  SPI Flash Size : 8Mbit
jump to run user1


ready

AT+GMR

AT version:0.23.b1.0(Apr  2 2015 23:27:52)
SDK version:1.0.1(b1)
compile time:Apr  2 2015 23:39:06
OK

Après un AT+CIUPDATE il y a un reboot est la date de compilation est différente de quelques secondes ?

Code : Tout sélectionner

AT+CIUPDATE

+CIPUPDATE:1
+CIPUPDATE:2
+CIPUPDATE:3
+CIPUPDATE:4

OK

----- reboot


ready
AT+GMR

AT version:0.23.b1.0(Apr  2 2015 23:27:52)
SDK version:1.0.1(b1)
compile time:Apr  2 2015 23:39:12

OK
Après une mise à jour le reboot s'effectue sur l'user 2 (celui qui vient d'être mis à jour).
Sur le répertoire bin/AT du SDK, il y a deux binaires un user1 et un user2 l'user2 a du être compilé quelques secondes après l'user1).
Si l'on refait un AT+CIUPDATE le reboot s'effectue sur luser1
Il semble ne pas y avoir de OK après un AT+CIUPDATE, si en cours de mise à jour on fait un AT on a un message
busy p...

Je pense que les users 1 et 2 sont utilisés pour les mises à jour , une mise à jour s'effectue sur l'user non en cours.

Essaye de faire un AT+CIUPDATE pour voir si ta version change !

Attention les mise à jour ne marchent pas à chaque coup, il faut être patient.

A+
SMBA38
Modifié en dernier par smba38 le ven. 3 avr. 2015 21:30, 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 » ven. 3 avr. 2015 20:56

Hello SMBA38

J'étais certain d'avoir envoyé cet après-midi un message au forum pour te remercier de tes infos sur LUA et I2C.
Je disais que j'étais seulement en train d'étudier la communication I2C avec un atmega mais que l'utilisation de LUA permettait donc de commander directement l'horloge DS1337 pour la gestion de l'alimentation et qu'on pouvait donc théoriquement se passer du microcontrôleur. Je ne sais pas où est passé mon message, ou plutôt je ne sais pas pourquoi il a volé à la poubelle :o

J'en profitais pour anoncer la dernière version de SDK à cette adresse
Je vois dans ton message qu'il n'y a pas besoin de compiler. Je vais examiner ça en détail.

Avatar du membre
vague nerd
Modérateur
Messages : 1473
Enregistré le : mar. 14 oct. 2014 11:42
Localisation : France !

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

Message par vague nerd » ven. 3 avr. 2015 21:46

Bonjour Jean-Marie, et merci pour vos contributions pour le moins éclairées.
Je ne sais pas où est passé mon message, ou plutôt je ne sais pas pourquoi il a volé à la poubelle
SI vous êtes bien sûr de l'avoir posté sur le forum, pourriez-vous nous indiquer les dates et heures approximatives de post svp ?
Nous pouvons peut-être tenter de le retrouver...

Cordialement.
Cordialement,

Vague Nerd

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 » ven. 3 avr. 2015 22:54

Hello vague nerd

Mes contributions ne font que refléter ma recherche de lumière car je navigue souvent dans le noir !

Quant à mon message, je suis certain de l'avoir écrit mais j'ai probablement ouvert d'autres fenêtres dans le browser et je l'ai effacé sans m'en rendre compte.
C'est pas grave, j'ai repris les éléments importants ci-dessus.

Merci quand même !

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 » sam. 4 avr. 2015 23:13

Hello les amis,

Comme vous l'avez vu ci-dessus, une nouvelle version des commandes AT (v0.23) et de SDK (v1.0.1) est disponible depuis deux jours.

J'ai fait la mise à jour du premier de mes nouveaux modules (des ESP-12), monté sur une petite platine d'adaptation au format DIP.
27.JPG
27.JPG (155.91 Kio) Vu 3811 fois
Il n'est pas difficile de souder le module sur l'adaptateur. A la face inférieure de l'adaptateur, la place est prévue pour un régulateur de tension 3.3V SMD. Comme j'alimente directement en 3.3V, ce régulateur n'est pas nécessaire. Du coup il faut shunter 2 pattes avec un peu de soudure.

La mise à jour s'est parfaitement passée.

Pour ceux qui voudraient se lancer dans l'opération, j'ai préparé un nouveau document au format Word rappelant les diverses manipulations et étapes à respecter. Cela fera office d'oeuf de Pâques. :P

Avatar du membre
Clemzo
Messages : 55
Enregistré le : ven. 17 oct. 2014 16:36

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

Message par Clemzo » sam. 4 avr. 2015 23:29

Bonjour,

Je suis depuis le début vos sujets sur l'ESP et vous remercie grandement pour vos recherches et avancées sur ce module.
J'aimerais apporter à mon tour une bien faible contribution pour signaler que bien que l'alimentation nominale de l'ESP8266 soit de 3,3V, il supporte jusqu'à 5.8V donc le faire fonctionner en 5V (sans convertisseur) est tout à fait possible.
Le mien (ESP8266-1) fonctionne depuis 1 mois 24/24h de cette manière sans poser problème.
Il n'est pas impossible que certaines caractéristiques changent dans ces conditions (consommation, portée,...), mais je n'ai pas fait de mesures en ce sens.

Voilà, l'objectif étant de simplifier les choses au moins pour les tests.
Raspberry Pi B, B+, Orange Pi et Arduino Pro Mini

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. 5 avr. 2015 10:35

Hello Clemzo
J'aimerais apporter à mon tour une bien faible contribution
Ne soit pas si modeste. C'est quand même une contribution de 2.5V , soit une augmentation de 75% :D

Blague à part, comment se fait-il que tu aies osé l'alimenter en 5.8V ? avais-tu lu quelque chose à ce sujet ou bien n'avais-tu pas saisi qu'il fallait 3.3V ?
Ceci dit, même si le module résiste à 5.8V, il y a quand même des chances que tu limites sa durée de vie. Je préfère donc en rester à 3.3V

Pour ceux que le 3.3V ennuie, la face inférieure des platines d'adaptation permet de souder un LM1117 3.3V en format SMD, de sorte qu'on ne doive plus se soucier de l'alimentation du module.
30.JPG
30.JPG (90.71 Kio) Vu 3804 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. 5 avr. 2015 11:02

Bonjour à tous,

Quelques précisions sur la taille de la mémoire flash des modules ESP-XX

Voici le fichier release_note.txt de la version 1.01 du SDK des commandes AT.
Ce fichier se trouve à la racine de l'arborescence des fichiers du SDK.

Espressif indique qu'il faut Flaser à 1MBytes?.
AT_v0.23_b1 release note
Note: AT added some functions so flash size need to be 1024KB or more than that.

Code : Tout sélectionner

esp_iot_sdk_v1.0.1_b1_15_04_02 release note

Fix bugs:
1.Connect to ESP8266 softAP fail after SmartConfig;
2.SmartConfig loses one bit of SSID

Optimize:
1.espconn_set_opt: set configuration of TCP connection,add parameter for TCP keep-alive

Add APIs:
1.espconn_clear_opt: clear configuration of TCP connection
2.espconn_set_keepalive: set configuration of TCP keep-alive to detect if TCP connection broke
3.espconn_get_keepalive: get configuration of TCP keep-alive

AT_v0.23_b1 release note
Note: AT added some functions so flash size need to be 1024KB or more than that.

Fix bug:
1.Always "busy" if TCP connection abnormally broke during AT+CIPSEND

Optimize:
1.Add UDP transparent transmission
2.Optimize the initial value of AT+CWDHCP?
3.Add TCP keep-alive function in AT+CIPSTART

Add AT command:
1.Add AT+CIPSENDEX which support quit from sending mode by "\0" (so an useful "\0" need to be "\\0")
 
l'ESP-12 dispose de 4MBytes, le kit de développement nodemcu à base de ESP-12 également.
Je n'ai pas essayé la version V23 sur un ESP-01 qui ne dispose que de 0,512MBytes.

Je pense qu'une des fonction nécessitant 1MBytes est AT+CIUPDATE qui utilise deux Users (User1 et User2) pour faire les mises à jour OTA (On the Air).

A partir des dernières versions du SDK la librairie des commandes AT "libat.a" fait partie du SDK.
L'user2 doit nécessiter plus de 0,512MBytes car chaque User dispose d'un SDK séparé.

L'User2 (Avec son SDK) est chargé à la suite de l'User1.
Après une mise à jour l'ESP lance automatiquement l'User mis à jour.
User2 si mise à jour depuis l'User1 l'User1 si mise à jour depuis l'User2

Voir le document 2A-SDK-Espressif IoT SDK User Manual_EN_V1.0.1.pdf
Ce document se trouve sur esp_iot_sdk_v1.0.1_b1\document\English
ou pour ceux qui maitrisent le Chinois: \esp_iot_sdk_v1.0.1_b1\document\Íð╬─

Les binaires livrés par Espressif dans le répértoire AT sont ceux des Users1 et User2
Dans son document Esperssif indique que pour Flasher à 0,512MBytes sans OTA il faut utiliser le binaire eagle.app.v6.irom0text.bin
Ce binaire n'est pas livré avec le SDK, il faut le compiler.

Code : Tout sélectionner

1. 512KB Flash  sans (OTA)
• blank.bin: provided in SDK; to be written to 0x7E000
• eagle.app.v6.flash.bin: compiled by the steps said above; to be written to 0x0000
• master_device_key.bin: obtained from Espressif Cloud Server; to be written to 0x3E000
• eagle.app.v6.irom0text.bin: compiled by the steps said above; to be written to 0x40000
• esp_init_data_default.bin: provided by Espressif; stores default parameter values and to
be written to 0x7C000.
Jean-Marie ces précisions vont surement te conforter dans ton idée de l'esprit compliqué des développeurs.

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 » dim. 5 avr. 2015 12:11

Hello SMBA38
SMBA38 a écrit :Jean-Marie ces précisions vont surement te conforter dans ton idée de l'esprit compliqué des développeurs.
31.jpg
31.jpg (6.77 Kio) Vu 3796 fois
C'est fou comme tu résumes bien ma pensée.

J'avoue que je n'ai pas essayé de mettre à jour on the air. Je me contente de rester les deux pieds on the earth.
J'ai donc flashé ceci:
32.jpg
32.jpg (56.54 Kio) Vu 3797 fois
Le gros fichier, c'est user1.1024.new.bin avec 238K
Les fichiers boot et blank ne font que 3 et 4K
Donc je suppose que ça devrait passer pour l'ESP-1.

Petite question: si tu ouvres le fichier blank.bin, tu verras qu'il ne contient que des 0xff. Donc,
  • pourquoi le flasher ?
  • pourqoi deux fois ?
Peut-être pour être sûr d'effacer ce qui aurait pu y avoir avant ?

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. 5 avr. 2015 13:31

Coucou Jean-Marie

Il existe un programme python esptool qui permet de manipuler les mémoires Ram et Flash.

Code : Tout sélectionner

python esptool.py -h
usage: esptool [-h] [--port PORT] [--baud BAUD]
               {dump_mem,write_mem,run,load_ram,make_image,flash_id,read_mac,read_flash,read_mem,image_info,el
f2image,erase_flash,write_flash}       ...
ESP8266 ROM Bootloader Utility

positional arguments:  {dump_mem,write_mem,run,load_ram,make_image,flash_id,read_mac,read_flash,read_mem,image_info,elf2image,erase_flash,write_flash}
    Run esptool {command} -h for additional help
    load_ram            Download an image to RAM and execute
    dump_mem            Dump arbitrary memory to disk
    read_mem            Read arbitrary memory location
    write_mem           Read-modify-write to arbitrary memory location
    write_flash         Write a binary blob to flash
    run                 Run application code in flash
    image_info          Dump headers from an application image
    make_image          Create an application image from binary files
    elf2image           Create an application image from ELF file
    read_mac            Read MAC address from OTP ROM
    flash_id            Read SPI flash manufacturer and device ID
    read_flash          Read SPI flash content
    erase_flash         Perform Chip Erase on SPI flash

optional arguments:   -h, --help            show this help message and exit   --port PORT, -p PORT  Serial port device
  --baud BAUD, -b BAUD  Serial port baud rate
 
On peut avec esptool :
flasher un firmware
Concaténer des fichiers . bin pour en faire un seul.
Faire des sauvegardes de la mémoire Flash.
Flasher un fichier binaire sauvegardé en mémoire Flash.
Obtenir des information sur un fichier .bin
Le fichier Blank.bin est Flashé aux deux emplacement réservés pour la configuration par défaut et la configuration Wifi.

Avec esptool, on pourrait faire des sauvegardes de ces emplacements et utiliser ces sauvegardes à la place du fichier Blank.bin.

On ne serait donc pas obligé de relancer les commandes AT de configuration du Wifi.

Mais esptool c'est du python, il faut installer python, esptool.py et un ou deux packages python ( sur raspberry : apt-get install python-serial.).

esptool fonctionne également sur Windows.

A+
SMBA38
Modifié en dernier par smba38 le dim. 5 avr. 2015 18:26, modifié 1 fois.

Répondre

Retourner vers « Et tout le reste »