Manual

do

Maker

.

com

ESP8266 - Atualização sem fio pelo browser

ESP8266 - Atualização sem fio pelo browser

No post anterior foi apresentada a introdução à atualização sem fio via OTA, previamente upado pela IDE do Arduino para o ESP8266 na board Wemos.

Nesse post veremos como fazer a atualização via browser. Se não leu o post anterior e seu ESP8266 ainda não tem OTA configurado, sugiro fortemente a leitura desse post, que lhe auxiliará introduzindo-o aos processos necessários para obter o suporte em sua ESP.

O tutorial é feito utilizando a board Wemos, mas serve para qualquer ESP8266. Nessa board o modelo é ESP-12EX.

Casos de uso

Para os Arduineiros de plantão, claro que é mais simples já estar na IDE do Arduino e fazer o upload da imagem de forma transparente, mas existem casos de uso que realmente esse método se torna ideal, dentre os quais:

  • Você tem o recurso habilitado mas não tem uma IDE do Arduino à mão.
  • O recurso está disponível, mas você não tem acesso a um servidor externo.
  • O parque de dispositivos é pequeno demais para valer a pena utilizar um servidor externo.

O poder desse ARM é realmente impressionante e seus recursos são generosos. Para essa implementação serão utilizadas duas classes principais, sendo a ESP8266mDNS e a ESP8266WebServer. Por pouco os includes não ocupam mais espaço que o código necessário para habilitar o servidor no ESP.

setup()

MDNS.begin(host);

httpUpdater.setup(&httpServer);
httpServer.begin();
MDNS.addService("http","tcp",80);

Pode não parecer nada, mas é fabulosa a implementação de um multicast DNS para resolução de nomes no Arduino. No ESP8266 não espanta tanto porque ele tem recursos para mais. Esse protocolo MDNS é utilizado para resolução de nomes na rede local. Claro que ele não trabalha sozinho e uma estação da rede precisar ter o "other side" instalado. Em Linux, use o Avahi. Em Windows e Mac, use o Bonjour.

Configurar Avahi

Para configurar o Avahi no Linux é bastante simples. Em distribuições Linux com gerenciador de pacote apt:

apt-get install avahi-daemon

E apenas uma modificação será necessária no sistema. Edit o arquivo /etc/nsswitch.conf e deixe a linha "host:" assim:

files mdns_minimal [NOTFOUND=return] dns myhostname

Basicamente, isso determina a ordem de busca. Caso não encontrado pelos meios padrão, segue buscando posteriormente no DNS então myhostname etc. Essa é uma maneira de tentar suplantar as chances de erro.

Na parte do servidor HTTP inicia-se uma instancia e então adiciona-se o recurso do serviço ao MDNS.

loop()

Uma única linha é necessária para o handshake:

httpServer.handleClient();

Como indicado no post anterior, A versão mais atual da IDE do Arduino e a URL para a board manager (https://github.com/esp8266/Arduino#installing-with-boards-manager) são necessárias.

File→Examples→ESP8266HTTPUpdateServer→WebUpdater

Implemente a configuração inicial no sketch WebUpdater, seguindo os menus acima. Mude as credenciais wireless para conectar o dispositivo à sua rede.

Algo fora do padrão a fazer

É uma pena, mas será necessário para esse processo que você desmarque a opção "compilation" no menu File→Preferences.

Após esses passos, você já pode subir o sketch e em seguida abrir o terminal para ver a mensagem contendo a URL para o update via OTA.

Digite a URL em seu browser e então você verá essa belezinha:

url-ota-300x191.webp

No pior dos casos, se a URL não funcionar, você pode substituir a parte do nome por IP, ou então utilizar a melhor solução (em minha humilde opinião), que é configurar um servidor DNS para resolver nomes de Internet e de sua rede local, como descrevo nesse outro post.

Pegar o arquivo para o upload

Como você desmarcou um ítem na IDE citado mais acima (assim espero), ao compilar o sketch agora você poderá ver o path do firmware compilado e desse modo ficará mais fácil compiá-lo rapidamente e enviá-lo pelo browser. Claro, se você for colocar esse binário em um ESP8266 fora da sua rede, leve-o em um pendrive ou envie para algum email no destino (não se esquecendo de tirar o hash da origem e destino para comprovar a autenticidade).

Ansiedade e tensão

Daí você faz o upload pelo browser, mas só terá um "OK" de resposta no final e até que isso aconteça, você ficará apreensivo. Mas a boa notícia é que o upload é extremamente rápido.

Inscreva-se no nosso canal Manual do Maker Brasil no YouTube.

Próximo post a caminho!

Nome do Autor

Djames Suhanko

Autor do blog "Do bit Ao Byte / Manual do Maker".

Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.