Wemos - не хочет обновляться по веб

Тема в разделе "ESP8266, ESP32", создана пользователем yden, 23 фев 2018.

  1. yden

    yden Гик

    Здравствуйте.
    Подскажите пожалуйста. Есть несколько esp8266 esp-12у (node-mcu). Использую заливку скетча по "воздуху" через веб.
    Код:
    Код (C++):
    void setup()
    {
      // Удаляем предыдущие конфигурации WIFI сети
      WiFi.disconnect(); // обрываем WIFI соединения
      WiFi.softAPdisconnect(); // отключаем отчку доступа(если она была
      WiFi.mode(WIFI_OFF); // отключаем WIFI
      delay(500);

      // присваиваем статичесий IP адрес
      WiFi.mode(WIFI_STA); // режим клиента
      WiFi.config(IPAddress(192, 168, 1, 74), IPAddress(192, 168, 1, 1), IPAddress(255, 255, 255, 0), IPAddress(192, 168, 1, 1));

      Serial.begin(115200);
      ds.begin();

      WiFi.begin(ssid, password);
      while (WiFi.waitForConnectResult() != WL_CONNECTED) {
        delay(5000);
        ESP.restart();
      }

      //запуск web сервера для удаленной прошивки
      if (WiFi.waitForConnectResult() == WL_CONNECTED) {
        MDNS.begin(host);
        server.on("/", HTTP_GET, []() {
          server.sendHeader("Connection", "close");
          server.send(200, "text/html", serverIndex);
        });
        server.on("/update", HTTP_POST, []() {
          server.sendHeader("Connection", "close");
          server.send(200, "text/plain", (Update.hasError()) ? "FAIL" : "OK");
          ESP.restart();
        }, []() {
          HTTPUpload& upload = server.upload();
          if (upload.status == UPLOAD_FILE_START) {
            Serial.setDebugOutput(true);
            WiFiUDP::stopAll();
            Serial.printf("Update: %s\n", upload.filename.c_str());
            uint32_t maxSketchSpace = (ESP.getFreeSketchSpace() - 0x1000) & 0xFFFFF000;
            if (!Update.begin(maxSketchSpace)) { //start with max available size
              Update.printError(Serial);
            }
          } else if (upload.status == UPLOAD_FILE_WRITE) {
            if (Update.write(upload.buf, upload.currentSize) != upload.currentSize) {
              Update.printError(Serial);
            }
          } else if (upload.status == UPLOAD_FILE_END) {
            if (Update.end(true)) { //true to set the size to the current progress
              Serial.printf("Update Success: %u\nRebooting...\n", upload.totalSize);
            } else {
              Update.printError(Serial);
            }
            Serial.setDebugOutput(false);
          }
          yield();
        });
        server.begin();
        MDNS.addService("http", "tcp", 80);

        Serial.printf("Ready! Open http://%s.local in your browser\n", host);
      }

      getTime();
      updateTime();

    }
    На NodeMcu все работает "на ура". Пришли с китая модули wemos: https://ru.aliexpress.com/item/WeMo...32806566263.html?spm=a2g0s.9042311.0.0.TTT8fb
    По кабелю залил код выше - норма. По веб страница обновления отображается, bin файл дает залить. После заливки модуль перегружается. Но новая прошивка не подхватывается - продолжает работать старая. Не могу понять в чем причина.
    Если кто решал на этих модулях заливку по веб - поделитесь информацией, плиз.

    благодарю
     
    Последнее редактирование: 23 фев 2018
  2. yden

    yden Гик

    Нет ничего нового в свете прошивки esp8266 по воздуху? Я про PUYA P25Q80.