CCat
Member
Использую библиотеку ESP8266HTTPUpdateServer
Немного изменил пример, чтобы заливать файл прямо на ESP, а не через чей-то WiFi.
После захода по адресу http://33.33.33.33/update указываю файл и получаю сообщение "Update error: ERROR[11]: Invalid bootstrapping state, reset ESP8266 before updating".
Поскольку предполагается, что я не буду иметь легкого доступа к кнопке Reset, я вынимаю usb-разъем (У меня NodeMCU V3) и вставляю его обратно, т.е. просто обесточиваю ESP на пару секунд.
Когда после этого захожу на ту же страницу, спокойно могу указать нужный файл и он таки нормально зальется, ESP "перепрошьется" и перезагрузится.
Вопросы.
1) Я читал, что поскольку ресет производится командой -wdt reset, у NodeMCU и подобных с этим проблемы. Ну и? И что делать? Не заморачиваться и передернуть питание в случае заливки нового скетча вышеуказанным способом?
2) Просто интересно. А почему сражузе после перезагрузки путем выдергивания питания все ОК? Каким образом ESP во второй раз благостно принимает апдейт? Что изменилось и как это что-то уцелело после выключения питания? Какой-то временный загрузчик в SPIFFS образовался или что?
Немного изменил пример, чтобы заливать файл прямо на ESP, а не через чей-то WiFi.
После захода по адресу http://33.33.33.33/update указываю файл и получаю сообщение "Update error: ERROR[11]: Invalid bootstrapping state, reset ESP8266 before updating".
Поскольку предполагается, что я не буду иметь легкого доступа к кнопке Reset, я вынимаю usb-разъем (У меня NodeMCU V3) и вставляю его обратно, т.е. просто обесточиваю ESP на пару секунд.
Когда после этого захожу на ту же страницу, спокойно могу указать нужный файл и он таки нормально зальется, ESP "перепрошьется" и перезагрузится.
Вопросы.
1) Я читал, что поскольку ресет производится командой -wdt reset, у NodeMCU и подобных с этим проблемы. Ну и? И что делать? Не заморачиваться и передернуть питание в случае заливки нового скетча вышеуказанным способом?
2) Просто интересно. А почему сражузе после перезагрузки путем выдергивания питания все ОК? Каким образом ESP во второй раз благостно принимает апдейт? Что изменилось и как это что-то уцелело после выключения питания? Какой-то временный загрузчик в SPIFFS образовался или что?
Код:
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266HTTPUpdateServer.h>
IPAddress apIP(33, 33, 33, 33);
const char *ssid = "MyBox";
ESP8266WebServer httpServer(80);
ESP8266HTTPUpdateServer httpUpdater;
void setup(void) {
Serial.begin(115200);
Serial.println();
Serial.println("Booting Sketch...");
WiFi.mode(WIFI_AP_STA);
WiFi.softAPConfig(apIP, apIP, IPAddress(255, 255, 255, 0)); // subnet FF FF FF 00
WiFi.softAP(ssid);//without pass
IPAddress myIP = WiFi.softAPIP();
Serial.print("AP IP address: ");
Serial.println(myIP);
httpUpdater.setup(&httpServer);
httpServer.begin();
Serial.println("HTTPUpdateServer ready!");
}
void loop(void) {
httpServer.handleClient();
}