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: 20 set 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 WiFi ESP8266 NodeMcu ESP-12E
  • 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.

Tenha a Metodologia Eletrogate na sua Escola! Conheça nosso Programa de Robótica Educacional.


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: 20 set 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.

Tenha a Metodologia Eletrogate dentro da sua Escola! Conheça nosso Programa de Robótica nas Escolas!

Sensores

Guia de Uso do Sensor de Chama com Arduino

Eletrogate1 de junho de 2023

Aprenda a usar o Sensor Infravermelho de Chama e Fogo com a placa Arduino Leonardo R3 para dar mais segurança a seus projetos.

Sensores

Guia de Uso do Sensor de Chama com Arduino

Eletrogate1 de junho de 2023

Aprenda a usar o Sensor Infravermelho de Chama e Fogo com a placa Arduino Leonardo R3 para dar mais segurança a seus projetos.

Automação Residencial

Controle de Luminosidade com LDR sem Arduino

Eletrogate25 de maio de 2023

Podemos usar um sensor LDR junto com uma placa Arduino para interpretar a variação luminosa. Mas, também podemos usar poucos componentes eletrônicos para fazer isso, sem programação.

Automação Residencial

Controle de Luminosidade com LDR sem Arduino

Eletrogate25 de maio de 2023

Podemos usar um sensor LDR junto com uma placa Arduino para interpretar a variação luminosa. Mas, também podemos usar poucos componentes eletrônicos para fazer isso, sem programação.

Módulos Wifi

Deauther com NodeMCU ESP-12E

Eletrogate18 de maio de 2023 Atualizado em: 29 maio 2023

No post de hoje, iremos aprender a fazer um deauther com o esp8266. Venha conferir!

Módulos Wifi

Deauther com NodeMCU ESP-12E

Eletrogate18 de maio de 2023 Atualizado em: 29 maio 2023

No post de hoje, iremos aprender a fazer um deauther com o esp8266. Venha conferir!

Componentes Eletronicos

Conhecendo a Pastilha Piezoelétrica

Eletrogate11 de maio de 2023

Como converter energia mecânica em energia elétrica e ainda usar o Arduino para gerenciar isso tudo.

Componentes Eletronicos

Conhecendo a Pastilha Piezoelétrica

Eletrogate11 de maio de 2023

Como converter energia mecânica em energia elétrica e ainda usar o Arduino para gerenciar isso tudo.

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 2023 - Todos os direitos reservados. Termos de uso e Política de privacidade.