blog-eletrogate-logo-desktop blog-eletrogate-logo-mobile
  • Categorias
    • Voltar
    • INICIANTES
    • INTERMEDIÁRIOS
    • AVANÇADOS
    • divide
    • Automação Residencial
    • Componentes Eletrônicos
    • Impressão 3D
    • IoT
    • Modelagem 3D
    • Módulos Wifi
    • Por trás da tecnologia
    • Projetos
    • Raspberry Pi
    • Robótica
    • Sensores
    • Shields
    • Sistemas Operacionais
    • Tipos de Arduino
    • Tutoriais
  • Apostilas
  • Quem Somos
  • Seja um redator
  • Trabalhe Conosco
    • Categorias
      • Voltar
      • INICIANTES
      • INTERMEDIÁRIOS
      • AVANÇADOS
      • divide
      • Automação Residencial
      • Componentes Eletrônicos
      • Impressão 3D
      • IoT
      • Modelagem 3D
      • Módulos Wifi
      • Por trás da tecnologia
      • Projetos
      • Raspberry Pi
      • Robótica
      • Sensores
      • Shields
      • Sistemas Operacionais
      • Tipos de Arduino
      • Tutoriais
    • Apostilas
    • Quem Somos
    • Seja um redator
    • Trabalhe Conosco
Loja Eletrogate
voltar
  • Introdução
  • Materiais e Requisitos para Realizar o OTA
  • Instalando o Python
  • Instalando Arduino IDE
  • Instalando o Módulo ESP8266
  • Primeiro Upload por meio de uma Porta Serial
  • Primeiro Upload via Wi-Fi - OTA
  • Segurança
  • Criptografia
  • Considerações Finais
  • Sobre o Autor
IoT

Atualizando o ESP8266 via OTA Wi-Fi

Eletrogate 17 de agosto de 2021Atualizado em: 13 jun 202210 minutos

Introdução

Por diversas vezes é necessário atualizar o firmware do Esp8266 para implementar uma nova funcionalidade, mas as vezes ele está instalado em uma área de difícil acesso, como por exemplo, uma estação meteorológica que normalmente é instalada encima dos telhados ou em máquinas que para atualizar é necessário desmontar todos o equipamento gerando muito trabalho e perda de tempo.

Assim, uma solução para esse problema é efetuar o upload a firmware do Modulo Esp8266 utilizando a conexão Wi-Fi (OTA – Over the Air) já existente.

É importante salientar que a implementação dessa habilidade só se dá depois de uma configuração inicial através da porta serial/USB. Assim, o primeiro upload necessariamente deve ser realizado via conexão Serial/USB, permitindo que todas as demais subsequentes possam ser feitas via OTA.

Essa atualização via OTA é muito boa, já que ela acelera o processo de aperfeiçoamento do equipamento não sendo necessários grandes esforços para realizar o upload do novo Firmware do Modulo Esp8622, mas antes de liberar essa habilidade o desenvolvedor precisa criar boas práticas de programação para que não ocorra nenhuma invasão do sistema que possa possibilitar a implementação de software de fontes não legitimas.

Assim, nesse artigo vamos ver como é feito a atualização via OTA bem como também maneiras para evitar ataques e acesso de terceiros não autorizados.


Materiais e Requisitos para Realizar o OTA

  • Módulo Esp8266 e cabo de conexão
  • O Tamanho da Flash necessita ser superior ao tamanho da firmware antiga (que está funcionando) e nova firmware somadas
  • Computador
  • Arduino IDE mais recente
  • Pacote da plataforma esp8266 / Arduino 2.0.0 ou mais recente
  • Python instalado na versão mais recente

Instalando o Python

Entre no site oficial do Python e baixe e instale a versão mais recente de acordo com o seu sistema e aceite todos os paramentos oferecido pelo sistema.

Página oficial Python

Página oficial Python


Instalando Arduino IDE

Baixe e instale a IDE do Arduino de acordo com sua versão do seu sistema Operacional no site oficial da Arduíno.

Página oficial do Arduino

Página Oficial do Arduino

Depois de instalado a IDE Arduino é a hora de configura para que a IDE possa gravar o Módulo Esp8266.

IDE Arduino

Entre em Arquivos>Preferências e coloque o seguinte link no campo URL Adicionais para Gerenciadores de placas.

“ https://arduino.esp8266.com/stable/package_esp8266com_index.json”

Blog-Eletrogate-Arduino-IDE-ESP32


Instalando o Módulo ESP8266

Com a IDE Aberta abra o Gerenciador de Placas através Ferramentas>Placas>Gerência de Placas.

Blog-Eletrogate-Arduino-IDE-Uno-WIFI

Agora com o gerenciador de placas aberto no menu digite: “esp8266”.

Instale a placa conforme imagem abaixo.
Blog-Eletrogate-Arduino-IDE-ESP8266


Primeiro Upload por meio de uma Porta Serial

Nessa parte é onde a mágica acontece, nela vamos configura o módulo Esp8266 para que esteja pronto para atualizar via OTA.

Para que módulo Esp8266 possa ser atualizado via Wi-Fi é necessário que o primeiro uploard seja realizado via Serial.

Vamos carregar o esboço BasicOTA.ino em: Arquivo>Exemplos>ArduinoOTA>BasicOTA

Blog-Eletrogate-Arduino-IDE-OTA

Atualize o nome e a senha da sua rede.

Blog-Eletrogate-Arduino-IDE-OTA-Example

Configure os parâmetros de upload conforme figura abaixo observando a porta que seu Modulo está instalado.

Blog-Eletrogate-Arduino-IDE-ESP8266-Porta

Carregue o esboço (Ctrl + U).

Blog-Eletrogate-Arduino-IDE-OTA-Pisca

Agora com o Modulo Esp8266 já podemos realizar atualizar via Wi-Fi – OTA.


Primeiro Upload via Wi-Fi - OTA

Basicamente a atualização via OTA é bem parecida com atualização serial mudando somente a porta de comunicação conforme figura abaixo.

Blog-Eletrogate-Arduino-IDE-OTA-Porta-COM

Terminado essa configuração já é possível atualizar via OTA.

Se você concluiu com sucesso todas as etapas acima, você pode carregar (Ctrl + U).

Blog-Eletrogate-Arduino-IDE-OTA-LOADING

Observação: para que sempre seja possível atualizar via OTA é necessário que as rotinas do OTA da BasicOTA estejam incorporados nos códigos.


Segurança

A possibilidade de atualizar o módulo esp8266 via OTA deixa portas abertas para que pessoas não autorizadas façam upload de firmware não legítimos.

Assim, uma solução básica para que isso não aconteça é a implementação de uma barreira na hora de programar o firmware é colocando senha impedindo que terceiros sem permissão faça atualização do firmware.

Retire o Comentário da seguinte linha e atribua uma nova senha:

‘ArduinoOTA.setPassword(“senha”);”

O primeiro upload depois da configuração a IDE ainda não vai pedir a senha, somente nas seguintes atualizações que isso vai acontecer.

Blog-Eletrogate-Arduino-IDE-OTA-Senha

Observe que a senha digitada foi validada.

Blog-Eletrogate-Arduino-IDE-OTA-Senha-2

Nota: todas as vezes que for feito um novo upload verifique se a senha que está no esboço é a mesma pretendida.

Caso não seja e mesmo assim for enviada o Firmware a senha será subscrita impossibilitando que novos upload seja realizado via OTA até que nova atualização seja feita via Serial/USB com a senha correta.


Criptografia

Sabemos que deixar o módulo ser atualizado sem fio pode criar riscos admitindo que terceiros não autorizados acesse o sistema.

Com a possibilidade de ser hackeado é grande, já que uma porta muito sensível fica aberta é imperioso proteger o seu sistema com senha e se possível também implementar criptografia para dificultar ao máximo invasões.

Nativamente a biblioteca ArduinoOTA já dispõem algumas funcionalidades de segurança.

    void setPort(uint16_t port);
    void setHostname(const char* hostname);
    void setPassword(const char* password);

A funcionalidade da criptografia já está disponível no ArduinoOta não requer adaptações ou programação adicional e a sua implementação requer que o comentário das linhas sejam tiradas.

       //Password can be set with it's md5 value as well
       //MD5(admin) = 21232f297a57a5a743894a0e4a801fc3
       ArduinoOTA.setPasswordHash("21232f297a57a5a743894a0e4a801fc3");

Criptografia utilizada

O MD5 (Message-Digest algorithm 5) 

A criptografia é uma forma de embaralhar a comunicação. assim somente o transmissor e o receptor têm como interpretar a informação e tornar compreensível. Qualquer outra pessoa que não tenha a chave vai receber a mensagem de forma incompreensível tornando inútil essa mensagem.

A criptografia utilizada pelo BasicOTA é o MD5 (Message-Digest algorithm 5)

O MD5 é uma função hash é muito utilizado é tem o seu valor em 128 bits expresso em 32 caracteres. É um algorítimo unidirecional e o método de verificação é realizado por comparação nas duas hash, uma com a base de dados e a outra a do login.

Uma das vantagens do MD5 e por ser unidirecional é a possibilidade de conferir a integridade dos arquivos recebidos, já que os hash serão comparados e qualquer divergência entre eles será invalidado o arquivo recebido conferindo sua integridade.

Por mais básica que seja o seu sistema sempre é bom implementar meios de segurança. Principalmente sabendo que para isso não gera grande trabalho e nem perda de tempo já que o código BasicOTA já tem funcionalidade pré configurada necessitando apenas colocar os parâmetros.

Uma outra proteção para que não corra o upload não autorizado é possibilidade de implementar no código que no momento da atualização OTA ocorra somente se pressionado um botão conectado fisicamente no Esp8266, assim somente quem tem acesso fisicamente ao esp poderá efetuar a atualização.


Considerações Finais

Agora, já sabemos atualizar nossos Módulos Esp8266 via OTA já podemos implementar melhorias com mais facilidades, mas é importante salientar que durante essa atualização o sistema é interrompido e com isso pode gerar problemas no equipamento controlado. Assim, certifique que a parada do equipamento não provoque problemas.


Sobre o Autor


André Calazans

Programador, Graduando em Ciência da Computação, Técnico em Eletrônica, Eletricista. Onde tiver um Elétron eu vou querer saber porque ele está ali.


Eletrogate

17 de agosto de 2021 Atualizado em: 13 jun 2022

A Eletrogate é uma loja virtual de componentes eletrônicos do Brasil e possui diversos produtos relacionados à Arduino, Automação, Robótica e Eletrônica em geral.

Projetos

Irrigação Automática com Módulo Sensor de Umidade e Bomba Submersível

Eletrogate28 de junho de 2022

Você já esqueceu de molhar a sua planta algum dia? Se sim, esse post é perfeito para você!

Projetos

Irrigação Automática com Módulo Sensor de Umidade e Bomba Submersível

Eletrogate28 de junho de 2022

Você já esqueceu de molhar a sua planta algum dia? Se sim, esse post é perfeito para você!

Sensores

Como Utilizar o Sensor BMP280 com Arduino

Eletrogate23 de junho de 2022

O Sensor de Pressão e Temperatura BMP280 possui diversas aplicações e funcionalidades, como medir a pressão atmosférica e a temperatura ambiente.

Sensores

Como Utilizar o Sensor BMP280 com Arduino

Eletrogate23 de junho de 2022

O Sensor de Pressão e Temperatura BMP280 possui diversas aplicações e funcionalidades, como medir a pressão atmosférica e a temperatura ambiente.

Automação Residencial

Automatização do Processo de Brassagem

Eletrogate21 de junho de 2022

Este projeto foi desenvolvido para ser implementado junto à panela de brassagem. Essa ideia tem, como base, a automação de processos longos e repetitivos, que são essenciais, por exemplo, na produção de cerveja.

Automação Residencial

Automatização do Processo de Brassagem

Eletrogate21 de junho de 2022

Este projeto foi desenvolvido para ser implementado junto à panela de brassagem. Essa ideia tem, como base, a automação de processos longos e repetitivos, que são essenciais, por exemplo, na produção de cerveja.

IoT

Cotação de Moedas com HTTPClient e ESP32

Eletrogate16 de junho de 2022

Aprenda a criar um visualizador automático da cotação das moedas Dólar, Euro, Libra Esterlina, Peso Argentino, Bitcoin e Ethereum para a moeda Real. Essas serão obtidas através da biblioteca HTTPClient e visualizadas em um display OLED controlado por um ESP32.

IoT

Cotação de Moedas com HTTPClient e ESP32

Eletrogate16 de junho de 2022

Aprenda a criar um visualizador automático da cotação das moedas Dólar, Euro, Libra Esterlina, Peso Argentino, Bitcoin e Ethereum para a moeda Real. Essas serão obtidas através da biblioteca HTTPClient e visualizadas em um display OLED controlado por um ESP32.

Eletrogate Robô

Cadastre-se e fique por
dentro de novidades!

blog-eletrogate-logo-footer

Rua Rio de Janeiro, 441 - Sala 1301
Centro - Belo Horizonte/MG
CEP 30160-041
*Não temos atendimento físico

ANWAR SLEIMAN HACHOUCHE - ME
CNPJ: 18.917.521/0001-73

Atendimento

(31) 3142-3800

contato@eletrogate.com


Seg a Sex - das 8h às 17h

Institucional

  • Apostilas
  • Quem Somos
  • Privacidade
  • Seja um Redator
  • Trabalhe Conosco

Nos acompanhe

Facebook Instagram Youtube

© ELETROGATE 2022 - Todos os direitos reservados. Termos de uso e Política de privacidade.