sábado, 10 de dezembro de 2016

Gravação e teste do firmware ESP easy no esp8266-01




O ESP8266 é um módulo wifi que tem revolucionado por seu baixo custo e versatilidade. Ele traz em uma placa muito pequena um CI contendo os elementos necessários a comunicação wifi e um microcontrolador de 32bist além de um CI de memória.
Existem alguns modelos deste módulo. Todos os modelos utilizam o mesmo circuito integrado principal. Sendo diferentes basicamente em número de pinos disponibilizados na placa e no tamanho de memória e alguns outros componentes em certos modelos.

O módulo mais básico é o ESP-01. Ele sai de fábrica com um firmware que possibilita controla-lo via comandos AT através de sua interface serial RS232, nível de tensão TTL 3,3V.  Nessa configuração ele funciona como um modulo wifi para um dispositivo externo, como o Arduino, por exemplo.

A nodemcu disponibiliza outros firmwares que possibilitam a programação do microcontrolado interno permitindo que o módulo funcione de forma independente de microcontrolador externo. Essa  programação pode ser feita pela linguagem LUA através de interface adequada ou pela interface de programação do Arduino, adicionando-se para isso os módulos convenientes.

Uma terceira possibilidade, a que usamos aqui, é instalar no ESP8266 a firmware EASY  ESP da letscontrolit.com. Esse firmware permite controlara vários dispositivos com comandos via web por um navegador de internet ou aplicativo. Quando necessário as configurações  adicionais ao modulo poder ser feitas também via browser acessando através do endereço IP a página de configuração do modulo. Isso facilita muito o uso do ESP8266.



Montando o circuito para gravação

O primeiro passo caso não tenha um adaptador pronto para ligar o ESP8266 ao computador é montar o circuito abaixo ou circuito semelhante:


Observe:
a. A alimentação e comunicação deve ser em 3,3V
b. O pino GPIO-0 deve ser ligado ao GND para que seja possível gravar o firmware



Gravando o firmware no ESP8266-ESP01


O tutorial oficial para instalação do firmware no ESP pode ser visto no seguinte link
1 -  Fazer o download do arquivo zip contendo o firmware e ferramentas.  Descompactar. Link 

2 - Clique duas vezes em "flash.cmd". Uma janela de comandos deve começar com três perguntas.


3 - Digite o número da porta COM em que está conectado o ESP8266 via modulo FTDI. Por exemplo se estiver conectado na porta COM9 digite 9.

 


4 - Digite o tamanho da memória flash de seu ESP8266, 512, 1024 ou 4096 (depende do modelo)


5 - Selecione a versão de compilação. 120 ou mais recente.


6 - A gravação será iniciada e terminará, aproximadamente como na seguinte tela.


7 -  Após concluir a instalação do firmware pressionar o reset do ESP ou desligue e religue


Configuração preliminar

Assim que é ligado após a instalação do firmware do EasyESP o ESP8266  criará uma rede wifi que pode ser acessada com um celular, por exemplo, para configuração inicial. Isso permite que ele seja acessado para configurar sua conexão com a rede wifi em que deverá se conectar.

1 - Acessar a rede criada pelo ESP

REDE:  ESP_0
SENHA: configesp

2 - Após conectar nessa rede será possível ajustar as configurações para que o ESP8266 possa se conectar em sua rede wifi.

Para isso acesse com qualquer navegador de internet o IP: 192.168.4.1
Será aberta a seguinte página:


Nela selecione sua rede wifi, digite a senha e pressione connect

Será exibido uma contagem regressiva e logo em seguida, dando tudo certo, será mostrado o IP do ESP8266 em sua rede wifi.

Com esse IP é possível acessar a página de configuração do ESP e também enviar comandos.


Teste com LEDs

Após conectar o ESP8266 a rede via wifi podemos fazer o seguinte teste.

Ligar um LED no GPIO-0 e GPIO-2. Conforme figura abaixo.




Para esse teste não será necessária nenhuma configuração adicional no ESP.

Controlar o estado dos GPIO do ESP com o EASY ESP pe bastante simples.

Utilizei um computador conectado a mesma rede em que está conectado o ESP8266

Para alterar o estado via browser enviamos o seguinte:
http://ESP_IP_address/control?cmd=GPIO,pin,state

Onde:

ESP_IP_address : IP do ESP8266 em sua rede
pin : Pino correspondente ao GPIO
state: Estado desejado para o GPIO. 0 para nivel baixo e 1 para nivel alto.

Por exemplo:
No meu caso o IP do esp8266 é 192.168.0.102. Então:

Para acender o led no GPIO-2 envio:  http://192.168.0.102/control?cmd=GPIO,2,1
Para apagar o led no GPIO-2 envio:  http://192.168.0.102/control?cmd=GPIO,2,0

Para apagar o led no GPIO-0 envio:  http://192.168.0.102/control?cmd=GPIO,0,1
Para apagar o led no GPIO-0 envio:   http://192.168.0.102/control?cmd=GPIO,0,0