[IoT] Como fazer upload de códigos para a ESP8266 via Wi-Fi

Italo Lelis
Aug 28, 2017 · 4 min read

O módulo ESP8266 da Espressif, que vem com Wi-Fi integrado, permite o rápido desenvolvimento de protótipos que necessitam conectividade à internet, o que o torna adequado para projetos de IoT (Internet das Coisas). Além disso, uma outra vantagem da conectividade Wi-Fi é a possibilidade de enviar o código a ser executado no módulo sem a necessidade de fios, como apontado pelo blog do Pedro Minatel.

Módulo Wi-Fi NodeMcu ESP8266

Neste tutorial, será explicado passo a passo como descarregar um firmware para a ESP8266 sem fios (over-the-air).

Instalando o PlatformIO

O PlatformIO é uma IDE open-source voltado para o desenvolvimento de aplicações IoT. É desenvolvida em Python e roda em cima do editor de texto Atom.

Caso você já tenha o Atom instalado, pode instalar o PlataformIO seguindo as instruções na página oficial.

Criar novo projeto

Caso a instalação ocorra corretamente, após reiniciar o Atom, você será recebido com uma janela de boas-vindas. Selecione a opção New Project para criar um novo projeto para a ESP8266.

Janela de Boas-Vindas do PlatformIO

Na janela de configurações que se abrir, seleciona a placa que será utilizada no projeto.

Janela de configuração de Novo Projeto do PlatformIO

Para este tutorial, estou utilizando um Módulo ESP8266 NodeMCU v3, que é uma placa de desenvolvimento que possui a ESP8266 integrada. Você deve escolher o modelo da placa que irá utilizar.

Upload do firmware inicial

Na primeira vez que for configurar a sua ESP8266 para receber as atualizações via Wi-Fi, será necessário descarregar um código via USB. O código a ser utilizado utilizará a biblioteca ArduinoOTA. A biblioteca deverá ser colocada dentro da pasta lib do projeto, da seguinte forma:

Organização dos arquivos na pasta lib

Você pode usar o código de exemplo fornecido pela biblioteca para fazer a gravação na ESP8266. O arquivo deve ser salvo dentro da pasta src com a extensão .ino. Por exemplo, src/esp8266_ota.ino.

Código de exemplo da biblioteca ArduinoOTA

Para configurar corretamente o código de exemplo, substitua SSID pelo nome da sua rede Wi-Fi:

E SENHA pela senha da sua rede Wi-Fi:

Descarregue o código de exemplo para a ESP8266.

Caso não consiga fazer upload do código no Ubuntu, tente rodar o Atom como usuário root, usando o comando sudo atom em um terminal, ou adicione o seu usuário à lista de permissão de acesso às portas seriais com o comando sudo usermod -a -G dialout $USER e reinicie o seu computador.

Abra o Serial Monitor e pressione o botão de reset na placa para consultar o IP local do seu módulo.

Serial Monitor

Configurando o upload sem fio no PlatformIO

Será necessário alterar o arquivo platformio.ini. Adicione ao arquivo a linha:

Alterando o valor para o endereço de IP mostrado no Serial Monitor.

Caso você deseje dar um nome à placa, para que não seja necessário consultar o endereço de IP constantemente, adicione um nome à sua ESP8266 na linha:

Substitua o endereço IP no arquivo platformio.ino pelo nome definido, como no exemplo a seguir:

Lembrando que é necessário que o seu computador e a placa estejam conectados à mesma rede Wi-Fi.

Código de teste (Piscar LED)

Agora, mesmo se você desconectar a placa do computador e ligar a uma alimentação externa, será possível descarregar os seus códigos.

Caso você queira testar se o envio do código está funcionando corretamente, altere o void loop () do código de exemplo, adicionando o comando de piscar o LED interno, e faça upload do código:

Código para fazer o LED interno piscar em intervalos regulares

No módulo NodeMCU, o LED interno está ligado à porta GPIO 2. Você deve consultar o GPIO correspondente para a sua placa.

O código final a ser utilizado deve conter as funções e chamadas do código de exemplo da biblioteca ArduinoOTA, pois o novo código que for descarregado irá sobrescrever o código presente na memória flash. Ou seja, caso você não adicione a biblioteca ArduinoOTA e as suas funções no novo código descarregado, não será mais possível fazer upload de códigos sem fio e o próximo upload deverá ser feito novamente via porta USB.


Originally published at www.italolelis.com.

)

Italo Lelis

Written by

I love to explore new solutions to old problems… Engineering Student @ UFMG

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade