ESP-01 conectado no PC pelo Prolific PL2303 |
SDK oficial
http://espressif.com/new-sdk-release/
Segundo o datasheet do ESP8266
https://nurdspace.nl/images/e/e0/ESP8266_Specifications_English.pdf
O máximo permitido em qualquer pino é 3.6V
Portanto para ligar em I/O de 5V (ex: Arduino) precisa usar um shift level de 5v para 3.3v.
Pelo que vi alguns makers ligam direto no i/o 5v sem shift level, e funciona, mas a risco de queimar o esp8266. Testei ligando no PL2303 com i/o de 3.3v e com i/o de 5v e funcinou, para minimizar a change de queimar resolvi continuar usando o 3.3v que está dentro das especificações.
Pinout do ESP-01 |
Quem determinar o modo de operação é o GPIO0 durante o boot.
Se GPIO0 estiver em Low durante o boot, vai em entrar em modo de gravação.
Se GPIO0 estiver em High durante o boot, vai em entrar em modo normal.
Depois do boot dá para usar o GPIO0 como uma saída digital, mas eu não gosto de usar esse pinos de gravação para outras finalidades pois em alguns casos ocorrem problemas.
O pino CH_PD (chip select) deve se ligado ao VCC senão o ESP8266 fica travado antes do boot.
ESP-01 com pullup de 2.2k no CH_PD. |
Também é preciso garantir a corrente necessária para o funcionamento do ESP8266, que no pico de transmissão pode chegar até 300mA
Mode | Min | Typical | Max | Units |
---|---|---|---|---|
802.11b, CCK 1Mbps, POUT=+19.5dBm | 215 | mA | ||
802.11b, CCK 11Mbps, POUT=+18.5dBm | 197 | mA | ||
802.11g, OFDM 54Mbps, POUT=+16dBm | 145 | mA | ||
802.11n, MCS7, POUT =+14dBm | 135 | mA | ||
802.11b, packet size of 1024 bytes, -80dBm | 60 | mA | ||
802.11b, packet size of 1024 bytes, -70dBm | 60 | mA | ||
802.11b, packet size of 1024 bytes, -65dBm | 62 | mA | ||
Standby | 0.9 | uA | ||
Deep sleep | 10 | mA | ||
Saving mode DTIM 1 | 1.2 | mA | ||
Saving mode DTIM 3 | 0.86 | mA | ||
Shutdown | 0.5 | uA |
É possível ligar o RTS do PL2303 no RST do ESP-01 e o DTR do PL2303 no GPIO0 do ESP-01, assim dá para controlar o modo de operação dinamicamente pela serial sem ficar mexendo nos fios.
https://github.com/themadinventor/esptool/blob/master/esptool.py
# RTS = CH_PD (i.e reset)
# DTR = GPIO0
Firmware com Comandos AT
http://www.electrodragon.com/w/ESP8266_Firmware
Código para Arduino/Energia
http://www.electrodragon.com/w/ESP8266_with_Arduino
Firmware com script Lua:
https://github.com/nodemcu/nodemcu-firmware
Ferramenta de gravação de firmware:
https://github.com/nodemcu/nodemcu-flasher
Existe uma opção de gravar o firmware que vem embutido nessa ferramenta, que no caso é umas das últimas versões do nodemcu com suporte a Lua.
nodemcu firmware programmer |
AT version:0.21.0.0
SDK version:0.9.5
https://drive.google.com/folderview?id=0B_ctPy0pJuW6fnVLeGYzWmhzeGtZa1hwTF9zakJUOEdNejVhcFZXYi02Zk5GLXp6ckRNZkE&usp=drive_web&tid=0B3dUKfqzZnlwRjFaNTUzZFptbzg#list
nodemcu firmware programmer configurar para gravar o firmware AT 0.952 |
Log do firmware que veio pré instalado no ESP-01:
não tem como sabe qual a versão do AT e nem do SDK que compilou, já que o AT+GMR não retorna nada muito útil.
OK
AT+RST
OK
7!aSÊS:6à;Ì;!ÕýAÆ [ýÊêþ
[Vendor:www.ai-thinker.com Version:0.9.2.4]
ready
AT+GMR
0018000902-AI03
OK
AT+RST
OK
ets Jan 8 2013,rst cause:4, boot mode:(3,7)
wdt reset
load 0x40100000, len 816, room 16
tail 0
chksum 0x8d
load 0x3ffe8000, len 788, room 8
tail 12
chksum 0xcf
ho 0 tail 12 room 4
load 0x3ffe8314, len 288, room 12
tail 4
chksum 0xcf
csum 0xcf
2nd boot version : 1.2
SPI Speed : 40MHz
SPI Mode : QIO
SPI Flash Size : 4Mbit
jump to run user1
rlŽ‚ÿ
Ai-Thinker Technology Co. Ltd.
ready
AT+GMR
AT version:0.21.0.0
SDK version:0.9.5
OK
O firmware acima foi compilado com o SDK 0.9.5 com parser AT 0.21 cabe em 512kb de flash
ESP8266 SDK (esp_iot_sdk_v0.9.5_15_01_23) released
com o SDK 1.0.0 entrou o parser AT 0.22 cabe em 512kb de flash
ESP8266 SDK (esp_iot_sdk_v1.0.0_15_03_20) released
como o SDK >= 1.0.1 os novos comandos AT precisam de pelo menos 1024kb de flash.
Ferramenta de exploração com suporte a Nodemcu/Lua e comandos AT
http://esp8266.ru/esplorer/
Esplorer tool |
API do Arduino para ESP8266
https://github.com/esp8266/arduino
Arduino IDE com suporte a ESP8266 |
Onde comprar:
http://lista.mercadolivre.com.br/esp8266
http://www.banggood.com/buy/Esp8266.html
http://www.aliexpress.com/wholesale?SearchText=esp8266
http://www.dx.com/s/esp8266
http://www.seeedstudio.com/depot/s/esp8266.html