• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Нужна помощь Wemos - не хочет обновляться по веб

YDen

Member
Здравствуйте.
Подскажите пожалуйста. Есть несколько esp8266 esp-12у (node-mcu). Использую заливку скетча по "воздуху" через веб.
Код:
Код:
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 файл дает залить. После заливки модуль перегружается. Но новая прошивка не подхватывается - продолжает работать старая. Не могу понять в чем причина.
Если кто решал на этих модулях заливку по веб - поделитесь информацией, плиз.

благодарю
 

Юрий Ботов

Moderator
Команда форума
Уже не раз писали о том что в новых партиях появились spi flash не совместимые по протоколу со старыми, у людей слетает запись в spiffs, и прошивка на лету... Если хотите использовать старый код - перепаивайте spi flash.

Новые ревизии модулей на базе ESP8266 не умеют писать в SPI Flash

https://esp8266.ru/forum/threads/partija-neispravnyx-ili-nestandartnyx-esp12.3184/
 
Последнее редактирование:
Сверху Снизу