Como Atualizar ESP32 e ESP8266 sem Cabos usando OTA
Adeus aos Cabos nos Projetos IoT: Como Atualizar o ESP32 e ESP8266 via Wi-Fi!
Se você trabalha com desenvolvimento de hardware ou cria seus próprios projetos de Internet das Coisas (IoT) usando o ESP32 ou o ESP8266, com certeza já passou TERROOOOOOOOOOOORR de ter que desplugar o dispositivo só para corrigir um pequeno bug ou atualizar uma linha de código. Mas e se eu te disser que você pode fazer tudo isso sem fios, direto do seu computador?
Hoje eu vou te mostrar como usar o OTA (Over-the-Air) combinado com o Wi-Fi Manager para subir códigos remotamente para o seu ESP.
1. O que é OTA?
A comunicação OTA (Over-the-Air) é um método que permite atualizar o dispositivo IoT de forma totalmente sem fios, utilizando a própria rede Wi-Fi local. Isso significa que você não precisa remover o seu microcontrolador de onde ele estiver instalado ( Um seguidor já me mandou fotos de um ESP no telhado sendo atualizado, achei maravilhoso).
Eu fiz por aqui um quadrinho de pixels que funciona como decoração de um cenário. Ele é alimentado diretamente por um cabo de energia e possui um ESP8266 interno. Com o OTA configurado, caso seja necessário fazer ajustes no código ou corrigir bugs, não é preciso desparafusar nada ou trazer a peça até o computador: basta enviar o código remotamente pela rede.
Inclusive, esse quadrinho pode criar desenhos que a comunidade manda no chat durante nossa live!

2. O Grande Problema do Código OTA Padrão
Se você abrir a Arduino IDE e carregar o exemplo padrão de OTA (o famoso BasicOTA.ino), vai notar que ele funciona muito bem, mas tem dois problemas na minha opinião:
- Sujeira no Sketch Principal: O código básico vem com dezenas de linhas de tratamento de erros e configurações de rede que poluem e atrapalham a visualização da lógica do projeto e fica uma bagunça.
- Credenciais Hardcoded: Você é obrigado a deixar o nome e a senha da sua rede Wi-Fi fixos no código principal e eu não acho isso legal.
A boa notícia é que podemos resolver isso de forma elegante.
3. Limpando seu código com ‘ota.h’
A melhor forma de organizar o seu projeto é escondendo a complexidade das configurações de Wi-Fi e tratamento de erros do OTA. Na Arduino IDE, você pode fazer isso criando uma nova aba (uma “tab” secundária) com o nome de ota.he colocar toda a configuração dentro dessa aba. Por aqui eu criei neste novo arquivo uma função chamada setupOTA(); para chamar no Setup do projeto.
Ao isolar todo o código pesado de inicialização, tratamento de erros e conexões nessa aba secundária, seu sketch principal volta a ficar extremamente limpo. E seu código principal inicial deve ficar parecido com esse:
// 1. Incluir o arquivo local com aspas duplas
#include "ota.h"
#define LED_PIN 2
void setup() {
setupOTA();
pinMode(LED_PIN, OUTPUT);
Serial.print1n(WiFi.localIP());
}
void loop() {
ArduinoOTA.handle();
digitalWrite(LED_PIN, HIGH);
}
Dessa forma, sempre que você atualizar o código remotamente, o suporte ao OTA continuará ativo no seu firmware para os próximos uploads sem que a bagunça atrapalhe a sua visualização e programação.

4. Combo : Wi-Fi Manager + OTA
Deixar o login e a senha da internet fixados no código é ruim se você pensa em transformar seu protótipo em um produto real. Se o usuário final mudar a senha do roteador, ele perderá o acesso e não terá como atualizar o dispositivo e você terá que configurar o Wifi para cada cliente, isso não dá né? A solução que eu uso é o combo de Wi-Fi Manager + OTA.
O Wi-Fi Manager é uma biblioteca incrível que funciona assim:
- O ESP inicia e tenta se conectar à última rede configurada.
- Caso não encontre a rede ou não consiga se conectar, ele cria o seu próprio ponto de acesso Wi-Fi temporário (por exemplo, uma rede chamada “ESP Julia”).
- Você se conecta a essa rede temporária pelo celular.
- Uma página é aberta com todas as redes disponíveis na casa, permitindo que você selecione a sua rede.
- Após salvar, o ESP guarda as credenciais na memória interna, exclui a rede temporária e conecta-se a internet local.
Após a conexão ser bem-sucedida, o ESP ativa o OTA e você já pode atualizar os códigos dele de forma 100% sem fios, eu amo isso!

5. Dica de Ouro: O Sketch Inicial Perfeito
Para não precisar configurar tudo do zero toda vez que iniciar um novo dispositivo, por aqui eu tenho salvo o código base integrado (com o arquivo ota.h e o Wi-Fi Manager pré-configurados) em uma pasta no meu computador .
Use esse template como um “sketch inicial” para todos os seus projetos IoT. Assim, você sempre começará seus projetos com a conveniência de fazer uploads wireless e com uma interface profissional para configuração de redes, economizando tempo e evitando estresse com cabos e conexões físicas.
Assista este vídeo para ver como eu faço cada um destes códigos: