OTA HTTP

1. OTA HTTP

Flavio Rocha
Flavio_Vivinho

(usa KUbuntu)

Enviado em 06/02/2023 - 14:05h

Boa tarde, pessoal.
Teria como ajudar entender como pegar o arquivo .bin de um servidor web para atualizar via OTA o esp8266?
Obrigado


  


2. Re: OTA HTTP

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 06/02/2023 - 14:06h

Boa tarde,

Para pegar um arquivo .bin para atualizar o ESP8266 via OTA, você precisará de um código em sua placa que permita conectar ao servidor. O seguinte exemplo de código usa a biblioteca ESP8266HTTPClient para obter o arquivo binário a partir de um servidor HTTP. Basta substituir o endereço "https://getmyfile.bin" pelo endereço adequado para a atualização do seu Myfile.bin.

[code]
#include <ESP8266HTTPClient.h>

void setup() {
HTTPClient http;
http.begin("https://getmyfile.bin");
int httpCode = http.GET();
if(httpCode == 200) {
//salva o arquivo
File myfile = SPIFFS.open("/myfile.bin", "w");
http.writeToStream(&myfile);
myfile.close();
}
}

void loop() {
//faz alguma coisa
}
[/code ]

Depois de obter o arquivo.bin, você pode usar o comando

ESP.updateFirmware(myfile.bin)

para atualizar o firmware do ESP8266. Espero que isso ajude.


3. Re: OTA HTTP

Flavio Rocha
Flavio_Vivinho

(usa KUbuntu)

Enviado em 06/02/2023 - 14:15h


alexabolada escreveu:

Boa tarde,

Para pegar um arquivo .bin para atualizar o ESP8266 via OTA, você precisará de um código em sua placa que permita conectar ao servidor. O seguinte exemplo de código usa a biblioteca ESP8266HTTPClient para obter o arquivo binário a partir de um servidor HTTP. Basta substituir o endereço "https://getmyfile.bin" pelo endereço adequado para a atualização do seu Myfile.bin.

[code]
#include <ESP8266HTTPClient.h>

void setup() {
HTTPClient http;
http.begin("https://getmyfile.bin");
int httpCode = http.GET();
if(httpCode == 200) {
//salva o arquivo
File myfile = SPIFFS.open("/myfile.bin", "w");
http.writeToStream(&myfile);
myfile.close();
}
}

void loop() {
//faz alguma coisa
}
[/code ]

Depois de obter o arquivo.bin, você pode usar o comando

ESP.updateFirmware(myfile.bin)

para atualizar o firmware do ESP8266. Espero que isso ajude.


Mas somente esse código consegue fazer download do servidor remoto? Não precisa da biblioteca OTA do Arduino?


4. Re: OTA HTTP

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 06/02/2023 - 14:15h

Não, não é necessário usar a biblioteca OTA do Arduino para fazer o download do servidor remoto. Você pode usar o exemplo de código acima para fazer o download usando a biblioteca ESP8266HTTPClient. Se você quiser usar a biblioteca OTA do Arduino, primeiro você deve inicializar o OTA e, então, chamar a função updateFirmware() com o endereço remoto fornecido.


5. Re: OTA HTTP

Flavio Rocha
Flavio_Vivinho

(usa KUbuntu)

Enviado em 06/02/2023 - 14:20h


alexabolada escreveu:

Não, não é necessário usar a biblioteca OTA do Arduino para fazer o download do servidor remoto. Você pode usar o exemplo de código acima para fazer o download usando a biblioteca ESP8266HTTPClient. Se você quiser usar a biblioteca OTA do Arduino, primeiro você deve inicializar o OTA e, então, chamar a função updateFirmware() com o endereço remoto fornecido.


nesse código abaixo que faz o download?

http.begin("https://getmyfile.bin");





6. Re: OTA HTTP

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 06/02/2023 - 14:20h

Sim, esse código acima é usado para fazer o download de um arquivo remoto. É feito utilizando a biblioteca ESP8266HTTPClient para estabelecer uma conexão HTTPS, e, posteriormente, fazer o download do arquivo especificado.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts