Programando o ESP8266 pela Arduino IDE




Introdução

O módulo ESP8266 é muito utilizado dentro do #MovimentoMaker para conectar o seu projeto à internet. Ele é normalmente utilizado através de uma comunicação serial com uma placa da plataforma Arduino, como no tutorial Conectando o ESP8266 com o Arduino. Porém, é possível programar o ESP8266 como uma placa da plataforma Arduino, embora pouco feito, e utilizar suas portas GPIOs como entrada ou saída, aproveitando a sua capacidade de memória maior (quando comparada com a placa Arduino UNO).

Neste tutorial você vai aprender a programar o módulo Wi-Fi ESP8266 através da Arduino IDE.

Lista de Materiais

Circuito

Assim como a BlackBoard UNO, o primeiro código que queremos enviar para a placa para verificar o seu funcionamento é o exemplo "Blink" da Arduino IDE. Para isso, monte o circuito da imagem abaixo. Vale lembrar que, para carregar o código para a placa, é indispensável a utilização do jumper conectando os pinos IO0 e GND de seu adaptador para ESP8266. Essa conexão altera o modo do ESP8266 para o modo de programação ("programming mode"). Ao pressionar o botão reset com a placa em modo de programação, a placa executa uma rotina de gravação, que aguarda o envio de dados pela comunicação serial.

circuit1
Circuito Elétrico

Programação

Primeiramente, é necessário adicionar o pacote de placas do módulo ESP8266. Para isso, abra o painel "Preferências" da Arduino IDE (Arquivo > Preferência). Com o painel aberto, digite o link https://arduino.esp8266.com/stable/package_esp8266com_index.json no campo "URLs Adicionais para Gerenciadores de Placas", como na imagem abaixo.

preferences
Painel de Preferências

Então, pressione o botão "OK" para salvar as alterações. Agora, para baixar o pacote de placas compatíveis com o módulo ESP8266, abra o "Gerenciador de Placas" (Ferramentas > Placa > Gerenciador de Placas), digite no campo de pesquisa esp8266, e instale o pacote do resultado da pesquisa, como na imagem abaixo.

pacote
Instalação do Pacote

Com a instalação finalizada, abra o exemplo "Blink" da Arduino IDE (Arquivo > Exemplos > ESP8266 > Blink). Ele deve ser similar ao código abaixo, que foi extraído da IDE.

Em seguida, conecte o módulo FTDI ao computador, selecione a porta COM correspondente ao módulo, assim como o módulo ESP8266 na opção "Placa", como na imagem a seguir.

placa
Seleção do Modelo de Placa Correto

Após selecionar o modelo de placa correto, é necessário alterar a porta do LED interno da placa (LED_BUILTIN), de 2 para 1, como na imagem abaixo. As outras opções mostradas em "Ferramentas" não necessitam de alteração ou configuração.

builtin
Seleção da Porta para o "LED_BUILTIN"

Alerta: a porta do "LED_BUILTIN" pode mudar de acordo com a versão e o fabricante do módulo.

Após selecionar a porta correta, pressione o botão de reset do circuito montado, para o módulo ESP8266 entrar em modo de gravação, e carregue o código para a placa. O processo de gravação de código pode levar um minuto ou dois, mas ele é automático. Quando a gravação for concluída, a Arduino IDE retornará uma mensagem informando o sucesso na gravação do código, como na imagem abaixo.

retorno
Mensagens de Retorno da Arduino IDE

As outras informações retornadas pela IDE são os estados de gravação do código para a placa.

Execução do Código Carregado

Para executar o código que foi carregado para a placa, desconecte o jumper que conecta os pinos IO0 e GND, como na imagem a seguir.

circuit2
Circuito Elétrico

Após desconectar o jumper, pressione o botão de reset da placa. Mesmo ao desconectar o jumper, a placa ainda está executando a rotina do modo de programação, portanto é necessário pressionar o botão reset para que o módulo saia do modo de programação.

O Que Deve Acontecer

Após a reinicialização da placa, o LED azul interno da placa irá piscar com o intervalo de 1 segundo, como no GIF abaixo.

Resultado Final

Solucação de Problemas

Mensagem de Erro "esptool.FatalError: Failed to connect to ESP8266: Timed out waiting for packet header"

Esta mensagem de erro é retornada quando a Arduino IDE não é capaz de se conectar ao módulo ESP8266. Esse erro é causado pela falta de reset da placa antes de carregar o código para a mesma. Portanto, tente carregar novamente o código para a placa, porém reinicie a placa antes de iniciar o processo, lembrando que os pinos IO0 e GND devem estar previamente conectados.

Outro possível problema que pode causar esse erro é a inversão na conexão dos pinos RXH e TXH do adaptador para ESP8266. Portanto, inverta a conexão dos pinos e carregue novamente o código para a placa.

O Código Gravado Não Executa

Em alguns casos é necessário mudar o método de gravação para carregar o programa corretamente para o módulo. Nesse caso, tente variar entre os métodos na configuração "Flash Mode" no menu "Ferramentas". São quatro opções possíveis: DOUT, DIO, QOUT e QIO.

Avatar