ESP8266 8266_petit.jpgESP012
 
Sommaire


Une  révolution ? Un Ethernet "série" programmable Une révolution ? Un Ethernet "série" programmable
Premiers  essais en mode AT Premiers essais en mode AT
Montage initial Montage initial
Conclusion : UDP send et receive Conclusion : UDP send et receive
Mode transparent Mode transparent
Voici, on est donc arrivé à une interface WiFi pilotable par une simple voie série, donc adjoignable à un ARDUINO MiniPRO 3,3V pour le faire communiquer. BRAVO. Voici, on est donc arrivé à une interface WiFi pilotable par une simple voie série, donc adjoignable à un ARDUINO MiniPRO 3,3V pour le faire communiquer. BRAVO.
GerDom  et ESP ? GerDom et ESP ?
Alimentation 3.3 ou 5 volts ? Alimentation 3.3 ou 5 volts ?
Interface série Interface série
Utilisation  en autonome directe, Mise en oeuvre hardware Utilisation en autonome directe, Mise en oeuvre hardware
pour avoir le reset automatique pour programmer pour avoir le reset automatique pour programmer
Problèmes  techniques sur les sorties Problèmes techniques sur les sorties
Programmation  du ESP8266 en autonome Programmation du ESP8266 en autonome
EEPROM EEPROM
IDE  Chargement à partir de l IDE Chargement à partir de l'IDE ARDUINO
Reflasher  le mode AT Reflasher le mode AT
Pin  allocations Pin allocations
sleep sleep
Brochage  ESP12E Brochage ESP12E 'standard GerDom'
Démarrage  d Démarrage d'un "XCSOURCE" D1 TE441 ou Wemos D1 mini
Documents  utiles : Documents utiles :
Autres  liens Autres liens
La page principale ... La page principale ...
   
Vers le début Vers Page 2 Vers sommaire Une révolution ? Un Ethernet "série" programmable
Nota : je discute du domaine du 'système domotique GoodFields', qui communique en UDP. (voir chapitre 22 de ARDUINO)

ESP8266 ESP-12 est une véritable petite bête 'de course' :
* 4M de mémoire flash (ARDUINO 32K). Avec l'IDE ARDUINO, on ne voit que 1M, mais cela suffira ...
* horloge à 80 Mhz (ARDUINO 8 ou 16Mhz)
* 80ko de RAM dont 50 utilisable (ARDUINO 2ko)
* 17 E/S dont 10 utilisables dont 1 en analogique 10 bits et toutes PWM
Dans certains cas, il suffira tout seul (sans ARDUINO) pour faire :
* une télécommande
* un capteur autonome (station météo)
* un relais télécommandable (ou prise ou bandeau leds ou porte de garage ou arrosage ...)
* une horloge murale

Une bonne argumentation:
https://www.baldengineer.com/esp8266-5-reasons-to-use-one.html
Une bonne présentation:
https://www.ekito.fr/people/presentation-de-l-esp8266/
Une bonne carte de développement (19$):
https://www.adafruit.com/product/2821
Un vrai guide pour démarrer :
https://projetsdiy.fr/esp8266-guide-de-choix-achat-projets-diy/
Esp Easy : un IOT tout prêt !
https://projetsdiy.fr/esp-easy-objet-connecte-domotique-esp8266/
Et moins cher évidemment (7€) :
https://www.amazon.fr/gp/product/B01ELFAF1S/ref=ox_sc_act_title_4?smid=A29EZVB447EKA7&psc=1
https://www.fais-le-toi-meme.fr/fr/electronique/materiel/esp8266-arduino-wifi-2-euros
https://www.fais-le-toi-meme.fr/fr/electronique/tutoriel/programmes-arduino-executes-sur-esp8266-arduino-ide
http://arduino.esp8266.com/versions/1.6.5-1160-gef26c5f/doc/reference.html
cliquez pour agrandir : photo//8266_TE441.jpg Une carte avec le programmateur intégré
XCSOURCE Carte de développement Module Sans Fil ESP8266 D1 Mini NodeMcu Lus WiFi pour Arduino TE441 Wemos D1
https://www.amazon.fr/gp/product/B01ELFAF1S/ref=ox_sc_act_title_4?smid=A29EZVB447EKA7&psc=1
https://arduino103.blogspot.com/2017/11/lesp8266-facon-wemos.html?m=1
Notes ATTENTION :
ESP12E ou ESP12F ou Wemos D1 sont en logique 3,3V. PAs de compatibilité directe avec le 5V. Prévoir des interfaces pour les bus I2C, et pour le TX/RX si le programmateur est en 5V.

cliquez pour agrandir : photo//8266_soude.jpg Il faut utiliser le module ESP8266-ESP12 avec sa carte support (breakout) qui permet de planter tout ça sur une breadboard ...
cliquez pour agrandir : photo//8266_soude_arr.jpg Et voilà l'arrière ... avec le régulateur 3,3V fourni


On peut programmer la bête en 'stand-alone' avec l'IDE ARDUINO v1.8.0+ ... voir plus loin.

Consommation : mesure sur le 5 Volts du CP2102 : moins de 10 à 20 mA pointe,
prévoir en moyenne 50 à 60 mA annoncé jusqu'à 215 mA sur la datasheet sur le 3,3V,
donc alimentation de l'Arduino en 3,3v un peu juste en dehors de tests (50mA maxi). Dans la pratique une alimentation 3,3V autonome est nécéssaire, sinon on a des aléas nombreux ...
Il existe des modes d'économie d'énergie (deep sleep) ... à creuser si on peut (transmetteurs de capteurs par exemple)

Specifications 8266 Specifications 8266

   
Vers le début Vers Page 2 Vers sommaire Premiers essais en mode AT
 
Montage initial
* Soudure du esp8266 sur sa plaque (breakout).
* Le régulateur sous la plaque : 6206A 1601/33 n'est utile que si vous alimentez en 5 Volts, il faut alors supprimer le pont R2 (0 Ohms) qui shunte le VCC avec l'alim du ESP12 lui-même. Un inconvénient de ce régulateur est que le 3,3V n'est pas facilmenet accessible dans ce cas-là pour les interfaces extérieurs au breakout.
Si on ne met pas le régulateur et que l'on laisse R2, il faut fournir du 3,3V (250mA au moins).

R1 = 103 = 10kOhms tire le GPIO15 au GND
R3 = 103 = 10kOhms tire le CH_PC au VCC (validation I2C du module)

Fct Fil    Pin ESP Pin MiniPRO
--- ------ ------- ----------
GND marron GND      1-GND
3V3 rouge  VCC      3-VCC
TXD orange RXD      4-RX
RXD jaune  TXD      5-TX
RST vert   REST     6-DTR  ce reset ne marche pas, voir plus loin (il faut tirer le REST au VCC)

Mise sous tension : 1 puis 2 bips sur la led bleue ... bon ok.
Dans un premier temps, je m'aperçois qu'un wifi a démarré : AI-THINKER-132B04 (Farylink... avec les D1 TE441)
Je tente une connexion avec mon PC, ok, ca marche !

Carte réseau sans fil Connexion réseau sans fil :
Suffixe DNS propre à la connexion. . . :
Adresse IPv4. . . . . . . . . . . . . .: 192.168.4.2
Masque de sous-réseau. . . . . . . . . : 255.255.255.0
Passerelle par défaut. . . . . . . . . : 192.168.4.1

Je tente http://192.168.4.1 NON, cela ne marche pas ! En telnet ou SSH non plus. BON.
En fait, on a des possibilités d'upgrade du firmware ... et peut-être plus ?

Sur l'IDE ARDUINO :
Outils, type de carte, en bas on trouve l'ESP8266, je prends 'Generic ESP8266 module'.
Mais on a aussi, qui marche : NodeMCU 1.0(ESP-12E Module)
Je sélectionne COM10 (mon interface CP2102), je lance le moniteur série à 115200 bauds
et j'obtiens une réponse...se terminant par 'Ai-Thinker Technology Co. Ltd. ready'
Je tente ATI, réponse : ERROR. Tout va bien ! ou presque !
Mettre dans l'option nouvelle ligne en bas, 'Les deux, NL et CR'
AT
OK
Ca marche !

Ensuite, il va falloir trouver de la doc ...
Des exemples sympas Les commandes AT http://www.espressif.com/en/products/hardware/esp8266ex/resources
COMMANDES PRINCIPALES
=====================
Starting test :
Command 	Description
AT+GMR  	output the firmware revision number
AT+CWMODE=3	Set Wifi mode to both Access Point and STAtion
AT+CWLAP	List Access Points
AT+CWJAP=“SSID”,“password**************

Other commands :
Command 	Description
AT 			Test AT startup
AT+RST 	Restart module
AT+GMR 	View version info
AT+GSLP 	Enter deep-sleep mode
ATE 	AT commands echo or not
AT+RESTORE 	Factory reset
AT+UART 	UART configuration, [@deprecated]
AT+UART_CUR 	UART current configuration
AT+UART_DEF 	UART default configuration, save to flash
AT+SLEEP 	Sleep mode
AT+WAKEUPGPIO 	Set a GPIO to wake ESP8266 up from light-sleep mode
AT+RFPOWER 	Set maximum value of RF TX Power
AT+RFVDD 	Set RF TX Power according to VDD33

*** First AT Commands ***
The first AT command you will want to try is:
it will output the firmware revision number similar to:
0018000902-AI03.
000902 means firmware version 0.9.2, 0018 is the version level of the AT command support.

Then, you may want to list the Access Points that are visible from your ESP module:

AT+GMR
AT version:1.1.0.0(May 11 2016 18:09:56)
SDK version:1.5.4(baaeaebb)
Ai-Thinker Technology Co. Ltd.
Jun 13 2016 11:29:20
OK

AT+RST
OK
ets Jan 8 2013,rst cause:2, boot mode:(3,6)
load 0x40100000, len 1856, room 16
tail 0
chksum 0x63
load 0x3ffe8000, len 776, room 8
tail 0
chksum 0x02
load 0x3ffe8310, len 552, room 8
tail 0
chksum 0x79
csum 0x79
2nd boot version : 1.5
SPI Speed : 40MHz
SPI Mode : DIO
SPI Flash Size & Map: 32Mbit(512KB+512KB)
jump to run user1 @ 1000

grabouillas !
Ai-Thinker Technology Co. Ltd.
ready

* passage en mode client du Wifi, par défaut il est 'AP'
AT+CWMODE_CUR=1
OK
(AT+CWMODE_DEF=1 pour mettre en flash)

* scan des Wifi
AT+CWLAP
+CWLAP:(2,"chilesse_1",-63,"00:24:d4:c9:9c:f0",10,-16,0)
+CWLAP:(0,"FreeWifi",-64,"00:24:d4:c9:9c:f1",10,-16,0)
+CWLAP:(5,"FreeWifi_secure",-62,"00:24:d4:c9:9c:f2",10,-16,0)
OK

* connection au réseau désiré
AT+CWJAP_CUR="chilesse_1","*****************"

WIFI CONNECTED
WIFI GOT IP
OK

* Voir IP
AT+CIPSTA_CUR?
+CIPSTA_CUR:ip:"192.168.0.33"
+CIPSTA_CUR:gateway:"192.168.0.254"
+CIPSTA_CUR:netmask:"255.255.255.0"
OK

* Forcage IP
AT+CWDHCP_CUR=0
AT+CIPSTA_CUR=,,
AT+CIPSTA_CUR="192.168.0.151","192.168.0.254","255.255.255.0"

******* émission UDP (page59)
AT+CIPSTART="UDP",,,,
AT+CIPSEND=
datas ...

* J'essaie un envoi spécifique au PC (qui tourne sur GERDOMUDP.EXE):
AT+CIPSTART="UDP","192.168.0.23",1000,1001
AT+CIPSEND=20
0XM-Message de test1

>>CA MARCHE !!!

* décrocher le lien UDP :
AT+CIPCLOSE
OK

* J'essaie un envoi sur adresse multicast :
AT+CIPSTART="UDP","192.168.0.255",1000,1001
AT+CIPSEND=20
0XM-Message de test2
OK

>>CA MARCHE !!!

 
Conclusion : UDP send et receive
* Résumé des commandes à passer pour paramétrer en FLASH
AT+RESTORE reset 'usine' si besoin

* configuration WiFi
AT+CWMODE_DEF=1
AT+CWJAP_DEF="chilesse_1","*****************"
AT+CIPSTA_DEF="192.168.0.151","192.168.0.254","255.255.255.0"

éventuellement : AT+CIPSTA_CUR? pour voir les adresses IP

* envoi en UDP @IP-broadcast sur le port 1000, reception aussi sur le 1000
AT+CIPSTART="UDP","192.168.0.255",1000,1000
AT+CIPSEND=20
>0blabla_10_blabla_20

* réception sur le port 1000: +IPD,n:données
+IPD,4:0ZU-

* arrêt de l'UDP
AT+CIPCLOSE

* Il est judicieux d'utiliser la commande AT+CIPSENDEX plutôt que AT+CIPSEND.
La longueur est alors le maximum que l'on peut envoyer. Les données doivent se terminer par un NULL (caractère \0)
AT+CIPSENDEX=50
>
blabla\0 emission

 
Mode transparent
Ce mode permet de 'bloquer' la transmission permanente entre le WiFi et la voie série.
On en sort par +++

AT+RESTORE reset 'usine' si besoin
* modification UART série (pour mini PRO dont c'est la vitesse maximale)
AT+UART_DEF=57600,8,1,0,0
* paramétrage
AT+CWMODE_DEF=1
AT+CWJAP_DEF="chilesse_1","*****************"
Nb : on est en DHCP par défaut, si on ne veut pas, faire :
AT+CIPSTA_DEF="192.168.0.151","192.168.0.254","255.255.255.0"
Eventuellement pour voir les adresses IP :
AT+CIPSTA_CUR? ou AT+CIPSTA_DEF?
Jusque là, tout est en mémoire, et donc après redémarrage, on n'a plus besoin de le renvoyer.

* communication UDP
AT+CIPSTART="UDP","192.168.0.255",1000,1000,0
AT+CIPMODE=1
AT+CIPSEND
blabla\0 emission
+IPD,20:ZAW-SHACK reception

* CLOSE si besoin, reprendre ensuite au CIPSTART
AT+CIPCLOSE

 
Voici, on est donc arrivé à une interface WiFi pilotable par une simple voie série, donc adjoignable à un ARDUINO MiniPRO 3,3V pour le faire communiquer. BRAVO.

   
Vers le début Vers Page 3 Vers Page 1 Vers sommaire GerDom et ESP ?
Avec un arduino mini pro en 3.3v j'essaie d'intégrer un ESP dans le réseau GerDom. On peut prévoir une sortie en PWM pour piloter une lampe, un bouton poussoir pour la commander localement et envoyer sur les bus GerDom une commande générale d'allumage des lampes de tous les modules. A terme, on pourra envisager d'avoir un afficheur 2 lignes de 16 caractères, 2 boutons CHOIX ET VALIDATION , un bouton rotatif ... une sortie pour actionner un relais ...
Également, il est possible de se passer de l'Arduino car l'ESP peut porter un programme et possède des entrées sorties...

 
Alimentation 3.3 ou 5 volts ?
La carte break-out de l'ESP12 possède un régulateur. Il est parfois court-circuité par une résisatnce de 0 Ohms. On peut donc l'alimenter en 3,3V , ou en 5V si on dessoude cette résistance.
Par contre, il faut savoir que les GPIO sont en 3,3V !

 
Interface série
L'ESP12 a deux interfaces série : un TX+RX et un TX seulement. Le premier est utilisable avec les commandes AT comme dans les essais cités. Le second (TX seulement) semble être fait pour envoyer des infos à un afficheur série ....

   
Vers le début Vers Page 4 Vers Page 2 Vers sommaire Utilisation en autonome directe, Mise en oeuvre hardware
Mais, comme on peut le constater, l'ESP8266 a des GPIO, autrement dit des entrées sorties.
Mis à part toutes les E/S occupées basiquement (Interfaces série UART, SPI, HSPI, I2C, I2S, IR remote control, ...) et qui peuvent être (peut-être) réutilisées à autre chose, on a au moins :
* TOUT pin 6 ADC input 10 bits = 1024 points (chapitre 4 de la doc référencée ci-dessous)
* sorties PWM avec 10 bits soit 0 à 1023
* 1 led câblée sur GPIO2, mais connectée en inverse au VCC
* 1 BP pour le reset, (NON)

La mise en oeuvre doit respecter quelques précautions, en particulier ceci peut expliquer qu'en mode 'test-plateforme' on ait eu quelques aléas et déboires :
* alimentation 3,3V indépendante 250 mA minimum (pas la sortie de l'ARDUINO qui est limitée à 50 mA)
* résistances de tirage à mettre en place, voir ci-dessous (le breakout comporte le tirage de GPIO15 au GND et CH_PD au VCC)


Minimal Hardware Setup for Bootloading and Usage
PIN Resistor Serial Adapter
VCC VCC (3.3V)
GND GND
TX or GPIO2(1) RX
RX TX
GPIO0 PullUp(2) DTR + Bouton poussoir local
Reset(3) PullUp(2) RTS
GPIO15(4) PullDown(2)
CH_PD PullUp(2)
Notes :
PullUp : résistance de 10K vers le VCC
PullDown : résistance de 10K vers le GND
(1) GPIO2 is alternative TX for the boot loader mode
(2) PullUP inclus sur le breakout. Validation du module(voir I2C). Directly connecting a pin to VCC or GND is not a substitute for a PullUp or PullDown resistor, doing this can break upload management and the serial console, instability has also been noted in some cases.
(3) Reset is also named RSBT or REST (adding PullUp improves the stability of the module)
(4) PullDown inclus sur le breakout. GPIO15 is also named MTDO

cliquez pour agrandir : photo//ESP12_to_serial.png Voici le schema pour programmation directe
NB: le système avec DTR et CTS ne marche pas. Il faut appuyer sur les boutons pour mettre GPIO0 à la masse pendant le reset pour flasher. Voir plus loin un montage qui permet cela...

 
pour avoir le reset automatique pour programmer
http://www.arduinesp.com/blink
Par contre, mon programmateur n'a qu'une sortie pour le reset ... pas le DTR et CTS !?

   
Vers le début Vers Page 5 Vers Page 3 Vers sommaire Problèmes techniques sur les sorties
Pour que l'ESP démarre normalement sur le programme chargé en flash, il faut que ces 3 ports soient correctements tirés.
Si vous utilisez ces ports, je vous conseille l'usage décrit dans la 5° colonne ci-dessous.
fonction ESP8266 ESP12E tirage D1 TE441 Usage conseillé
Flash mode GPIO0 10k Pull-up 3.3V D3 BP au GND
BUILTIN_LED GPIO2 10k Pull-up 3.3V D4 Led inverse ou BP au GND
SS GPIO15 10k Pull-down GND D8 Sortie directe ou BP au +

GPIO0 : L'ESP ne peut pas démarrer si la GPIO0 est à la masse (on est alors en mode flashage). L'usage pour un BP est idéal, il servira pour passer en mode flashage, mais aussi comme bouton de validation dans l'application.
de ce fait nous allons utiliser un optocoupleur et la patte de masse de l'entrée de l'opto sera reliée à notre GPIO0. La patte d'entrée de l'opto étant reliée au travers d'une résistance au 3.3v. Comme cela, lorsque l'ESP démarre, la gpio est reliée au +3.3V

GPIO2 : c'est la led bleue sur la carte. Elle est utilisée lors du boot. Un usage en entrée est possible (BP au GND), mais il peut aussi servir de sortie série pour une LCD série (c'est Serial1).

GPIO15 : peut servir pour une sortie directe (1 transistor et un relais par exemple), ou un BP (au +3,3V).

NB : 12 mA maxi sur les sorties (une led rouge avec 150 Ohms au moins)

   
Vers le début Vers Page 6 Vers Page 4 Vers sommaire Programmation du ESP8266 en autonome
https://create.arduino.cc/projecthub/jaiprak/control-led-from-web-app-using-esp8266-serial-wifi-module-cdf419
https://www.fais-le-toi-meme.fr/fr/electronique/tutoriel/programmes-arduino-executes-sur-esp8266-arduino-ide
 
EEPROM
En fait, émulation en flash d'une EEPROm de 4ko :
http://esp8266.github.io/Arduino/versions/2.0.0/doc/libraries.html#eeprom
This is a bit different from standard EEPROM class. You need to call EEPROM.begin(size) before you start reading or writing, size being the number of bytes you want to use. Size can be anywhere between 4 and 4096 bytes.

EEPROM.write does not write to flash immediately, instead you must call EEPROM.commit() whenever you wish to save changes to flash. EEPROM.end() will also commit, and will release the RAM copy of EEPROM contents.

EEPROM library uses one sector of flash located just after the SPIFFS.

Three examples included.

   
Vers le début Vers Page 7 Vers Page 5 Vers sommaire IDE Chargement à partir de l'IDE ARDUINO
Now you'll need to put the board into bootload mode. You'll have to do this before each upload. There is no timeout for bootload mode, so you don't have to rush!
1.Hold down the GPIO0 button, the red LED will be lit
2.While holding down GPIO0, click the RESET button
3.Release RESET, then release GPIO0
4.When you release the RESET button, the red LED will be lit dimly, this means its ready to bootload

Once the ESP board is in bootload mode, upload the sketch via the IDE

En fait c'est assez simple :
* tirer le port GPIO0 au VCC par une résistance (10 à 47 k)
* mettre un BP entre ce GPIO0 et la masse
* mettre un BP entre le REST/RESET et la masse
Pour Flasher, lancer le téléversement sur l'IDE ARDUINO, puis
* tenir le BP GPIO0 appuyé
* appuyer sur le RESET (la led bleue donne un tout petit flash)
* lâcher tout : on est en flashage (la led bleue clignote rapidement pendant le flashage)

   
Vers le début Vers Page 8 Vers Page 6 Vers sommaire Reflasher le mode AT
Bon, on s'est bien ammusé à programmer l'ESP, mais on voudrait retourner au mode AT !
http://electroniqueamateur.blogspot.fr/2015/08/reinstallation-du-firmware-de-lesp8266.html
   
Vers le début Vers Page 9 Vers Page 7 Vers sommaire Pin allocations
http://www.esp8266.com/wiki/doku.php?id=esp8266_gpio_pin_allocations
pinMode(), digitalRead(), digitalWrite(), analogWrite() work as usual.

Pin numbers correspond directly to the esp8266 GPIO pin numbers. To read GPIO2, call digitalRead(2);

All digital IO pins are protected from over-voltage with a snap-back circuit connected between the pad and ground. The snap back voltage is typically about 6V, and the holding voltage is 5.8V. This provides protection from over-voltages and ESD. The output devices are also protected from reversed voltages with diodes.

At startup, pins are configured as INPUT.
GPIO0-GPIO15 can be INPUT, OUTPUT, or INPUT_PULLUP.
GPIO16 can be INPUT, OUTPUT, or INPUT_PULLDOWN_16. It is also XPD for deepSleep() (perhaps via a small capacitor.)
Note that GPIO6-GPIO11 are typically used to interface with the flash memory ICs on most esp8266 modules, so these pins should not generally be used.

analogRead(A0) reads the value of the ADC channel connected to the TOUT pin.

Analog ADC
ESP8266EX also integrates a generic purpose 10-bit analog ADC. The ADC range is from 0V to 1.0V. It is typically used to measure the voltages from the sensor or battery status. The ADC cannot be used when the chip is transmitting. Otherwise the voltage may be inaccurate. (From Expressif datasheet CH 8.5)

 
sleep
ESP.deepSleep(microseconds, mode) will put the chip into deep sleep.
mode is one of WAKE_RF_DEFAULT, WAKE_RFCAL, WAKE_NO_RFCAL, WAKE_RF_DISABLED.
(GPIO16 needs to be tied to RST to wake from deepSleep.)
http://esp8266.github.io/Arduino/versions/2.0.0/doc/libraries.html
   
Vers le début Vers Page 10 Vers Page 8 Vers sommaire Brochage ESP12E 'standard GerDom'

ESP12E Pin Function MP(0)
ESP12-E brochage et utilisation 'standard GerDom'

BP RESET RST * TXD * GPIO1 prog Serial
POT ADC * RXD * GPIO3 prog Serial
EN * (+) * GPIO5 I2C, Bus 1 Fil DS1820
Q3 BP16 GPIO16 * * GPIO4 I2C, BP4
Q2 GPIO14 * (+) * GPIO0 BP0 et DHT11/22
Q0=LAMPE GPIO12 * TXD1(+) * GPIO2 LED2 ou sortie Serial
Q1=REMOTE GPIO13 * (-) * GPIO15 Q3(sens direct)
VCC * + - * GND
* * * * * *
CSO MISO GPIO09 GPIO10 MOSI SCLK
(+) tirage au VCC
(-) tirage au GND
LED2 : sortie Serial pour afficheur série ou LED (led bleue de la carte)
BP0 : indispensable pour RESET+BP0 pour flashage, utilisable ensuite comme 'VALIDATION'
BP4 :
BP16 : sortie pour relier au RESET si on utilise le mode DeeepSleep
BP16 : sortie pour relier au RESET si on utilise le mode DeeepSleep

   
Vers le début Vers Page 11 Vers Page 9 Vers sommaire Démarrage d'un "XCSOURCE" D1 TE441 ou Wemos D1 mini
Janvier 2018 : Nouveau ! voir aussi ESP32 Thing chez Sparkfun !

Site sympa pour ce module :
https://wiki.wemos.cc/products:d1:d1_mini
https://picclick.fr/Wemos-D1-Mini-NodeMcu-WIFI-ESP8266-Development-Board-272626109070.html
ATTENTION ! Le brochage est légèrement différent de l'ESP12-E breakout, et sérigraphié autrement.
Les broches 5V/3.3V et GND ne sont pas compatibles !
*** Donc ne pas intervertir directement ! ***

Wemos D1
Pin
Fonction
Wemos D1
Fonction
ESP-8266
MP(0) . MP(0) Fonction
ESP-8266
Fonction
Wemos D1
Wemos D1
Pin
RST Reset RST (0) | | (0) TXD TXD TX
A0 Analog input, max 3.3V A0 1V max(1) (0) | | (0) RXD RXD RX
D0 GPIO16 CH_PD (3) | | (0) GPIO5 GPIO5, SCL D1
D5 GPIO14, SCK GPIO16,CH_PD . | | (0) GPIO4, SCA GPIO4 D2
D6 GPIO12, MISO GPIO14,SCK . | | (0) GPIO0, 10k Pull-up GPIO0, 10k Pull-up D3
D7 GPIO13, MOSI GPIO12,MISO . | | (0) GPIO2, 10k Pull-up, LED GPIO2, 10k Pull-up, LED D4
D8 GPIO15, 10k Pull-down, GPIO13,MOSI . | | Non! GPIO15 GND G
3V3 3.3V VCC 5V ou 3V3 (2) | | Non! GND VCC 5V 5V
Wemos D1
Pin
Fonction
Wemos D1
Fonction
ESP-8266
MP(0) . MP(0) Fonction
ESP-8266
Fonction
Wemos D1
Wemos D1
Pin

(0) Même Position entre D1 et ESP12-E breakout
(1) Sur le Wemos D1 ou TE441 : 3,2V (pas 3,3V ! diviseur intégré) : Sur le ESP12-E 1V seulement !
(2) sur l'ESP12-E breakout, VCC=3,3V power, On peut cependant avoir un régulateur 3,3V intégré, alors la pin VCC est 5V !
(3) sur l'ESP12-E breakout, Select

Pour Wemos D1 / TE441 et ESP12-E breakout :
* Toutes les entrées sorties sont en 3,3 Volts. Elles sont protégées jusqu'à 6 volts, mais une adaptation 5V/3,3V est toujours préférable (pour I2C par exemple)
* Toutes les entrées sorties sont utilisables popour INTERUPTIONS/pwm/I2C/one-wire
!* SAUF ! GPIO16-D0. Donc ne pas utiliser GPIO16-D0 pour toute application de communication (SoftSerial par exemple).
* GPIO16 est particulière, car utilisée dans le mode 'deep sleep' pour réveiller le module (reliée à RST)
* Au démarrage, les Entrées Sorties sont à l'état haut et en mode INPUT, il faut en tenir compte pour les interfaces de sorties qui seront de préférence traités avec des opto-coupleurs reliés au VCC.
!* SAUF ! Au démarrage, il faut que GPIO0 soit tiré au VCC et GPIO15 au GND. En tenir compte encore pour les E/S.

Le nom exact (pour trouver sur Amazon pour moins de 8 euros) est :
"Carte de développement Module Sans Fil ESP8266 D1 Mini NodeMcu Lus WiFi pour Arduino TE441"
ou :
"Wemos D1 Mini"

Il s'agit d'une carte avec un ESP12E, avec un régulateur 3,3v, un bouton reset et un programmateur intégrés. Une prise micro-USB permet de l'utiliser très rapidement. ATTENTION ! le brochage est légèrement différent de l'ESP12E+ breakboard et le repérage des GPIO différent aussi ! Egalement, le circuit de reset est intégré, et l'IDE maîtrise donc le flashage automatique !
Dans un premier temps, on démarre l'IDE ARDUINO, puis après avoir sélectionné le bon port (COM15 chez moi), on ouvre le terminal série (icone à droite de l'IDE), et on règle la vitesse à 74880 (c'est bizarre, mais c'est comme ça !), vérifier que l'on a une fin de ligne (les deux NL et CR).
On reboote avec le reset et on obtient :

ets Jan 8 2013,rst cause:2, boot mode:(3,7)

load 0x40100000, len 2408, room 16
tail 8
chksum 0xe5
load 0x3ffe8000, len 776, room 0
tail 8
chksum 0x84
load 0x3ffe8310, len 632, room 0
tail 8
chksum 0xd8
csum 0xd8

2nd boot version : 1.6
SPI Speed : 40MHz
SPI Mode : QIO
SPI Flash Size & Map: 32Mbit(512KB+512KB)
jump to run user1 @ 1000

rf cal sector: 1017
rf[112] : 00
rf[113] : 00
rf[114] : 01

SDK ver: 2.0.0(5a875ba) compiled @ Aug 9 2016 15:12:27
phy ver: 1055, pp ver: 10.2

)ÍNOã

* On est content ! A la fin, c'est un peu crypté ... En fait, la voie série commute à 115200 bauds. Donc, passer à cette vitesse et rebooter, on a alors du charabia (qui est à 74880 bds) puis :

ready

* C'est mieux ! on tape AT, on obtient OK ou ERROR. Insister pour avoir OK, puis essayer AT+GMR :
AT
OK
AT+GMR
AT version:1.3.0.0(Jul 14 2016 18:54:01)
SDK version:2.0.0(5a875ba)
Farylink Technology Co., Ltd. v1.0.0.2
May 11 2017 22:23:58
OK

Voir ensuite au-dessus comme pour l'ESP12E.

On trouve des composants additionnels et des infos aussi ici :
https://www.ebay.fr/itm/263231972352?rmvSB=true
http://boutique.dol-fablab.com/produit/xcsource-carte-de-developpement-module-sans-fil-esp8266-d1-mini-nodemcu-lus-wifi-pour-arduino-te441/
   
Vers le début Vers Page 12 Vers Page 10 Vers sommaire Documents utiles :
Voir les docs et schémas ici :
github github

cliquez pour agrandir : photo//8266_pins_FCH0MSCI697OYRQ_MEDIUM.jpg Câblage direct avec un programmateur type 2102 :

cliquez pour agrandir : photo//esp12.png Brochage de l'ESP12

cliquez pour agrandir : photo//esp12_pins.jpg Brochage de l'ESP12

cliquez pour agrandir : photo//esp12b.jpg ARDUINO 5V - Serial - ESP8266

Site sympa pour le module D1 TE441 XCSOURCE :
https://wiki.wemos.cc/products:d1:d1_mini
ARDUINO contre ESP12 :
http://linuxfr.org/news/nodemcu-esp8266-une-alternative-a-l-arduino
Getting Started
http://www.instructables.com/id/Getting-Started-with-the-ESP8266-ESP-12/
On peut programmer la bête en 'stand-alone' avec l'IDE ARDUINO v1.8.0 :
http://www.instructables.com/id/Programming-the-ESP8266-12E-using-Arduino-software/
http://www.instructables.com/id/Programming-the-ESP8266-12E-using-Arduino-software/step2/Installing-the-CP120x-Drivers/
http://linuxfr.org/news/internet-des-objets-l-esp8266-et-ma-porte-de-garage http://www.fais-le-toi-meme.fr/fr/electronique/materiel/esp8266-arduino-wifi-2-euros http://www.instructables.com/id/Getting-Started-with-the-ESP8266-ESP-12/
Une carte compatible ARDUINO avec ESP8266 :
https://www.amazon.fr/gp/product/B01FVKTL9O/ref=pe_3039911_204369341_em_1p_4_ti

Autres cartes de développement :
https://www.amazon.fr/NodeMCU-Development-Internet-ESP8266-ESP-12E/dp/B01GCK3J40/ref=pd_sim_147_2?_encoding=UTF8&psc=1&refRID=J0CFEFNJ9PZSJ68GETTF
https://www.amazon.fr/gp/product/B01FVKTL9O/ref=pe_3081061_212136151_em_1p_0_im
https://www.amazon.fr/gp/product/B01ELFAF1S/ref=pe_3081061_212136151_em_1p_1_im
https://www.amazon.fr/gp/product/B01GCK3J40/ref=pe_3081061_212136151_em_1p_2_im

_8266_0a-esp8266ex_datasheet_en.pdf _8266_0a-esp8266ex_datasheet_en.pdf _8266_4a-esp8266_at_instruction_set_en.pdf _8266_4a-esp8266_at_instruction_set_en.pdf _8266_4b-esp8266_at_command_examples_en.pdf _8266_4b-esp8266_at_command_examples_en.pdf
_8266_99a-sdk-espressif_iot_flash_rw_operation_en_v1.0_0.pdf _8266_99a-sdk-espressif_iot_flash_rw_operation_en_v1.0_0.pdf _8266_esp8266_quick_start_guide_en.pdf _8266_esp8266_quick_start_guide_en.pdf

   
Vers le début Vers Page 13 Vers Page 11 Vers sommaire Autres liens
Téléversement ... câblage
https://create.arduino.cc/projecthub/ROBINTHOMAS/esp8266-esp-01-webserver-7248ca
https://www.mathieulefebvre.fr/?post/2016/02/15/Cr%C3%A9ation-d-une-breadboard-de-programmation-pour-ESP-01
https://andrologiciels.wordpress.com/materiels-android/esp8266/
http://www.evola.cc/prise-en-main-du-module-wifi-esp8266-avec-arduino/
Documentations
Flashing firmware
https://pixhawk.org/peripherals/8266
Ressources
http://www.espressif.com/en/products/hardware/esp8266ex/resources
Météo
https://create.arduino.cc/projecthub/hgpt/wireless-weather-station-arduiono-esp8266-thingspeak-2b6d4a
IDE
http://www.instructables.com/id/Programming-the-ESP8266-12E-using-Arduino-software/
http://www.instructables.com/id/Programming-the-ESP8266-12E-using-Arduino-software/step2/Installing-the-CP120x-Drivers/
http://www.instructables.com/id/Getting-Started-with-the-ESP8266-ESP-12/
http://www.esp8266.com/viewforum.php?f=25
WEMOS D1 mini
https://projetsdiy.fr/wemos-d1-mini-esp8266-test/
ESP01
http://linuxfr.org/news/internet-des-objets-l-esp8266-et-ma-porte-de-garage
http://www.fais-le-toi-meme.fr/fr/electronique/materiel/esp8266-arduino-wifi-2-euros
https://www.allaboutcircuits.com/projects/update-the-firmware-in-your-esp8266-wi-fi-module/
https://nurdspace.nl/ESP8266#Translated_datasheet
ESP01 ESP12-E ESP12-F ESP32
https://projetsdiy.fr/esp8266/#.Wctp5027odU
IOT MQQT kit (Internet Of Things)
https://www.amazon.fr/gp/product/B01N1XBXTZ/ref=pe_3081121_215533371_em_1p_3_im
https://projetsdiy.fr/esp-easy-objet-connecte-domotique-esp8266/
https://blog.guiguiabloc.fr/index.php/2014/11/13/mqtt-faites-communiquer-vos-objets-simplement/
Un tas d'idées :
http://benlo.com/esp8266/esp8266Projects.html


Répéteur WiFi automesh !
https://github.com/martin-ger/esp_wifi_repeater
Flash firmware dowload tools:
https://www.espressif.com/en/products/hardware/esp32/resources
ESP01 :
auto-reset :
http://hallard.me/esp8266-autoreset/
https://www.allaboutcircuits.com/projects/breadboard-and-program-an-esp-01-circuit-with-the-arduino-ide/
https://www.instructables.com/id/ESP-01-Module-Programming-Board/
https://blog.3sigma.fr/arduino/esp8266-comment-televerser-facilement-un-programme/
http://idehack.com/blog/programmer-lesp8266-esp-01-avec-le-logiciel-arduino/
https://www.instructables.com/id/How-to-use-the-ESP8266-01-pins/
http://carrefour-numerique.cite-sciences.fr/fablab/wiki/doku.php?id=trucs_astuces:programmer_un_esp8266_avec_l_environnement_arduino_genuino
https://www.electroschematics.com/the-mighty-esp-01-adapter/



Dernière mise à jour : 11:40:14 18/09/2020