Os módulos ESP8266 são muito poderosos e bem conhecidos dos profissionais e hobistas da área de eletrônica. Hoje vamos falar sobre o módulo mais básico dessa família, o ESP8266-01, e como podemos desenvolver firmware para ele fazendo upload direto da IDE do Arduino.
Requisitos
Para utilizarmos o ESP8266 na IDE do Arduino é necessário que o pacote do módulo esteja instalado. Na versão atual da IDE (1.6.12) o pacote já vem instalado, nas versões anteriores (a partir da versão 1.6.4) este pacote pode ser instalado manualmente. Caso precise fazer essa instalação basta seguir esses passos bem simples:
- Ir em Arquivo/Preferências e no campo “URLs Adicionais de Gerenciamento de Placas” inserir o link do pacote ESP8266, depois clique em OK.
- Ir em Ferramentas/Placa:/Gerenciador de Placas. Procure pelo pacote do ESP8266 e instale.
- Em Ferramentas/Placa agora devem aparecer várias versões dos módulos ESP.
Para fazer a comunicação com o módulo precisaremos de um conversor USB-Serial, eu irei utilizar o conversor que usa o chip FT232R da FTDI.
Pode ser necessário fazer a compatibilização de tensão de 5V para 3,3V, mais a frente daremos opções de como fazer isso e os itens necessários.
Para iniciar o ESP8266-01 em modo de programação pela serial iremos precisar de ao menos 2 botões e 3 resistores de 10KR.
Configuração
Com o pacote instalado, devemos ir em Ferramentas/Placa: e selecionar o primeiro item “Generic ESP8266 Module”.
Volte em ferramentas e verifique se a configuração está como na imagem a seguir. Se não estiver, configure os campos que estiverem diferentes. Você deverá escolher a porta correspondente ao conversor USB-Serial que irá usar.
Vamos fazer o upload do exemplo Blink do ESP8266 para fazer a demostração. Para isso vamos em Arquivo/Exemplos/ESP8266/Blink.
Este exemplo deverá piscar o led azul do módulo ESP8266-01 que é ligado ao GPIO1 (compartilhado com o pino TX da serial).
Para fazer o upload do exemplo para o módulo é importante que tenhamos comunicação serial entre a IDE e o módulo e que o módulo esteja em modo de programação pela serial.
Para fazer a comunicação utilizamos um conversor USB-Serial FT232. A grande vantagem de utilizar este conversor é que ele tem um regulador interno de 3,3V, o que possibilita alimentarmos o ESP a partir dele e elimina a necessidade de um conversor de nível para a linha serial (5V – 3,3V). Para fazer com que o conversor funcione com 3,3V existe na placa um jumper para configuração. É muito importante checar esse jumper antes de iniciar as ligações.
Neste momento é importante reforçarmos que o módulo ESP funciona com 3,3V, portanto, a ligação de 5V em seus pinos de alimentação, IOs ou serial pode danifica-lo permanentemente.
Além da comunicação, precisamos colocar o módulo em modo de programação serial, fazemos isso reiniciando o módulo com o GPIO0 em nível baixo. Para isso precisamos de dois botões, um para o reset e outro para o GPIO0 (o reset também é acionado em nível baixo), e alguns resistores para usar como pull up.
Abaixo segue o circuito utilizado para fazer a gravação do ESP-01.
É possível utilizar outro conversor USB-Serial para fazer a gravação, para isso será necessário usar um regulador de tensão para 3,3V para alimentar o ESP, podemos utilizar o regulador LM1117-3,3. Para a comunicação serial, devemos fazer a conversão do nível que vem do pino TX do conversor para o RX do ESP, podemos utilizar um conversor de nível lógico ou um simples divisor resistivo.
Abaixo vemos o esquema de montagem para gravação do ESP-01 usando um outro conversor USB-Serial. Utilizamos o LM1117-3,3 como regulador e dois resistores (180R e 330R) ligados à linha TX do conversor fazendo o divisor resistivo.
Upload do firmware
Com o circuito montado e devidamente testado, voltamos a IDE do Arduino. Com o Blink aberto, mantemos pressionado o botão correspondente ao GPIO0 e damos um pulso no botão correspondente ao reset do ESP-01.
Devemos perceber que o led azul do ESP-01 pisca, neste momento ele está em modo programação via serial, podemos soltar o botão do GPIO0.
Na IDE, mandamos fazer o upload de firmware e aguardamos o termino da gravação.
Se tudo correu bem, devemos ver o módulo ESP8266-01 piscando o led azul.
Conclusão
Neste artigo vimos como utilizar a IDE do Arduino para programar o ESP8266-01 e como gravar o módulo pela própria IDE. Agora você já tem a ferramenta para criar seus códigos direto no ESP. Oque pretende fazer com ela? Deixe seu comentário falando sobre seus projetos e ideias com o ESP-01. Grande abraço e até a próxima.
Não consigo de forma alguma instalar esp8266 na ide do arduino. O que pode ser?
Olá Josemar, tudo certo?
Estou em um trabalho de conclusão de curso e tendo problemas pra implementar essa biblioteca. Tenho somente o ESP-01 8266 e o adaptador com 4 saídas (link abaixo). Achas possível eu conseguir gravar o programa no módulo somente com esse adaptador do link e o adaptador usb-serial?
Link: https://www.filipeflop.com/produto/adaptador-para-modulo-wifi-esp8266-esp-01/
Abraços.
Ola Jorge. Tudo certo sim, e contigo?
Com esse adaptador é possível sim, inclusive já usei ele, como pode ver na figura 7 do artigo.
Porem você irá precisar adicionar botões externos (Reset e GPIO0) para fazer o ESP entrar em modo gravação. Eu fiz isso soldando fios no adaptador e interligando-os com os botões na protoboard.
No artigo explico o nível lógico que deve ligar esses botões e a sequencia que deve seguir para o ESP iniciar em modo gravação..
Abraço.
Seguidos estes passos e realizada a programação com sucesso, como retornar o ESP-01 ao modo de operação por comandos AT? Estou levando em conta que não foi necessário gravar nenhum tipo de bootloader antes de seguir este passo-a-passo.
Ola Wellington.
Atualize o firmware do seu ESP. Tente seguir este tutorial:
https://www.jonis.com.br/2016/01/30/atualizar-firmware-do-modulo-esp8266/
Valeu pela dica!!!
Segui um passo-a-passo semelhante ao descrito no seu tutorial e o código funcionou corretamente. No entanto, quando eu tento incluir a biblioteca ESP8266WiFi.h para fazer algo mais sofisticado, começo a ter problemas. Mantive o mesmo código que você apresentou e só acrescentei um #include no início. A IDE compilou e fez o upload normalmente. Porém o ESP8266 para de executar o código para piscar o LED, e fica resetando a cada 8 segundos mais ou menos. Pela serial, recebo a seguinte mensagem: ets Jan 8 2013,rst cause:4, boot mode:(3,7) wdt reset load 0x4010f000, len 1384, room 16 tail 8 chksum… Leia mais »
Ola Igor.
A versão atual do pacote para usar o ESP na IDE do arduino é a 2.3.0, eu tive alguns problemas de conexão com essa versão mas não esse que você está mencionando.
A versão 2.2.0 do pacote não apresentou nenhum problema, faça o downgrade do pacote no gerenciador de placas do arduino e veja se resolve seu problema.