ESP8266 – Atualização sem fio pelo browser

wifi-wireless-logoNo post anterior foi apresentada a introdução à atualização 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()

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:

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

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:

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:

Botões
Botões

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).

A imagem a seguir contém todas as informações úteis para você durante todo o processo.

Terminal serial, browser e arquivo binário
Terminal serial, browser e arquivo binário

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.

Siga-nos no Do bit Ao Byte no Facebook.

Prefere twitter? @DobitAoByte.

Inscreva-se no nosso canal Do bit Ao Byte Brasil no YouTube.

Visite também:

Sistemas Embarcados

BR-Arduino.org

Próximo post a caminho!

Agregador de Links - Loucuras da Net





euler_banner

Comments

comments

Djames Suhanko

Djames Suhanko é Perito Forense Digital. Já atuou com deployer em sistemas de missão critica em diversos países pelo mundão. Programador Shell, Python, C, C++ e Qt, tendo contato com embarcados ( ora profissionalmente, ora por lazer ) desde 2009.

Deixe uma resposta