Pular para o conteúdo
Aprenda

Como Atualizar ESP32 e ESP8266 sem Cabos usando OTA

Julia P. Metzger 5 min de leitura

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:

  1. O ESP inicia e tenta se conectar à última rede configurada.
  2. 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”).
  3. Você se conecta a essa rede temporária pelo celular.
  4. Uma página é aberta com todas as redes disponíveis na casa, permitindo que você selecione a sua rede.
  5. 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:

Confira o vídeo

Publicidade

Loja
Compartilhar:

Leia também