• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Wemos D1 прошивка по воздуху.

Serrous

Member
Всем привет. После семинара Виктора решил побаловаться с вемосом. У меня wemos d1 Контроллер с Wi-Fi WeMos D1 R2 - Интернет магазин электронники Eseal.ru
Научился цепляться к вафле. Щас хочу прошить по воздуху (OTA). Почитал, погуглил. Нарыл скетч(ниже).

Но при попытке залить по воздуху arduino IDE запрашивает пароль. Строку с паролем как оставлял закоментированной, так и раскоментировал. Пароль 0000 не подошел. Кто то пробовал на wemos? Куда копать ?
Код:
#include <ESP8266WiFi.h> //Библиотека для работы с WIFI
#include <ESP8266mDNS.h>
#include <WiFiUdp.h>

#include <ArduinoOTA.h> // Библиотека для OTA-прошивки

const char* ssid = "flat_beeline"; //Имя точки доступа WIFI
const char* password = "1234657890"; //пароль точки доступа WIFI

void setup() {
//  Serial.begin(115200);
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  while (WiFi.waitForConnectResult() != WL_CONNECTED) {
    delay(5000);
    ESP.restart();
  }
  //************************
  ArduinoOTA.setHostname("ESP8266-00001"); // Задаем имя сетевого порта
  ArduinoOTA.setPassword((const char *)"0000"); // Задаем пароль доступа для удаленной прошивки
  ArduinoOTA.begin(); // Инициализируем OTA
  //***********************
   pinMode(2,OUTPUT);
  }

void loop() {
ArduinoOTA.handle(); // Всегда готовы к прошивке
Serial.println("1");
digitalWrite(16,1);
delay(100);
digitalWrite(16,0);
delay(100);

}
 

CodeNameHawk

Moderator
Команда форума
А вот угадайте какая у меня ошибка, так что ли.
Если ошибка похожая на эту
error.png
не находит Python.
Установите Python27 с добавлением в Path.
Проверенный пример с измененным выводом отладки.
Код:
#include <ESP8266WiFi.h>
#include <ESP8266mDNS.h>
#include <WiFiUdp.h>
#include <ArduinoOTA.h>

const char* ssid = "xxxxxxx";
const char* password = "yyyyyyyyyyy";

void setup() {
  Serial.begin(115200);
  Serial.println("Booting");
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  while (WiFi.waitForConnectResult() != WL_CONNECTED) {
    Serial.println("Connection Failed! Rebooting...");
    delay(5000);
    ESP.restart();
  }

  // Port defaults to 8266
  // ArduinoOTA.setPort(8266);

  //Hostname defaults to esp8266-[ChipID]
   ArduinoOTA.setHostname("myesp8266");

   //No authentication by default
   ArduinoOTA.setPassword((const char *)"123");

  ArduinoOTA.onStart([]()
  {
    Serial.println("Start Update");
  });
  ArduinoOTA.onEnd([]()
  {
    Serial.println("End Update");
  });
  ArduinoOTA.onProgress([](unsigned int progress, unsigned int total)
  {
    static unsigned int old_progress;
    unsigned int now_progress;

    now_progress = (progress / (total / 100));
    if (now_progress == 0) old_progress = 0;

    if (now_progress >= (old_progress + 10))
    {
      Serial.printf("Progress: %3u%%\r\n", now_progress );
      old_progress = now_progress;
    }
  });
  ArduinoOTA.onError([](ota_error_t error)
  {
    Serial.printf("Error[%u]: ", error);
    if (error == OTA_AUTH_ERROR) Serial.println("Auth Failed");
    else if (error == OTA_BEGIN_ERROR) Serial.println("Begin Failed");
    else if (error == OTA_CONNECT_ERROR) Serial.println("Connect Failed");
    else if (error == OTA_RECEIVE_ERROR) Serial.println("Receive Failed");
    else if (error == OTA_END_ERROR) Serial.println("End Failed");
  });
  ArduinoOTA.begin();


 
  Serial.println("Ready");
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());
}

void loop() {
  ArduinoOTA.handle();
}
 

Serrous

Member
ошибки нет ! запрашивает пароль на заливку по воздуху. Пароль подобрать не могу.(что и было написано в 1 сообщении) С вашим кодом тоже самое. (вводил пароль 123) . ардуинку програмлю давно ..
ошибка авторизации

Код:
java.io.IOException: Cannot run program "python.exe": CreateProcess error=2, Не удается найти указанный файл
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
    at processing.app.helpers.ProcessUtils.exec(ProcessUtils.java:26)
    at cc.arduino.packages.Uploader.executeUploadCommand(Uploader.java:129)
    at cc.arduino.packages.uploaders.GenericNetworkUploader.uploadUsingPreferences(GenericNetworkUploader.java:99)
    at cc.arduino.UploaderUtils.upload(UploaderUtils.java:78)
    at processing.app.SketchController.upload(SketchController.java:709)
    at processing.app.SketchController.exportApplet(SketchController.java:682)
    at processing.app.Editor$DefaultExportHandler.run(Editor.java:2190)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.IOException: CreateProcess error=2, Не удается найти указанный файл
    at java.lang.ProcessImpl.create(Native Method)
    at java.lang.ProcessImpl.<init>(ProcessImpl.java:386)
    at java.lang.ProcessImpl.start(ProcessImpl.java:137)
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
    ... 8 more
java.io.IOException: Cannot run program "python.exe": CreateProcess error=2, Не удается найти указанный файл
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
    at processing.app.helpers.ProcessUtils.exec(ProcessUtils.java:26)
    at cc.arduino.packages.Uploader.executeUploadCommand(Uploader.java:129)
    at cc.arduino.packages.uploaders.GenericNetworkUploader.uploadUsingPreferences(GenericNetworkUploader.java:99)
    at cc.arduino.UploaderUtils.upload(UploaderUtils.java:78)
    at processing.app.SketchController.upload(SketchController.java:709)
    at processing.app.SketchController.exportApplet(SketchController.java:682)
    at processing.app.Editor$DefaultExportHandler.run(Editor.java:2190)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.IOException: CreateProcess error=2, Не удается найти указанный файл
    at java.lang.ProcessImpl.create(Native Method)
    at java.lang.ProcessImpl.<init>(ProcessImpl.java:386)
    at java.lang.ProcessImpl.start(ProcessImpl.java:137)
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
    ... 8 more
java.io.IOException: Cannot run program "python.exe": CreateProcess error=2, Не удается найти указанный файл
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
    at processing.app.helpers.ProcessUtils.exec(ProcessUtils.java:26)
    at cc.arduino.packages.Uploader.executeUploadCommand(Uploader.java:129)
    at cc.arduino.packages.uploaders.GenericNetworkUploader.uploadUsingPreferences(GenericNetworkUploader.java:99)
    at cc.arduino.UploaderUtils.upload(UploaderUtils.java:78)
    at processing.app.SketchController.upload(SketchController.java:709)
    at processing.app.SketchController.exportApplet(SketchController.java:682)
    at processing.app.Editor$DefaultExportHandler.run(Editor.java:2190)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.IOException: CreateProcess error=2, Не удается найти указанный файл
    at java.lang.ProcessImpl.create(Native Method)
    at java.lang.ProcessImpl.<init>(ProcessImpl.java:386)
    at java.lang.ProcessImpl.start(ProcessImpl.java:137)
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
    ... 8 more
Ошибка при загрузке: пропущен параметр конфигурации 'runtime.pwd.192.168.1.98'
 

Victor

Administrator
Команда форума
попробуйте немного другой вариант, когда поднимается WEB сервер и файл прошивки заливается через WEB интерфейс
Arduino/WebUpdater.ino at master · esp8266/Arduino · GitHub
(файл прошивки сделать в Arduino IDE - в меню "Скетч" - "Экспорт бинарного файла")
 

CodeNameHawk

Moderator
Команда форума
Последнее редактирование:

Serrous

Member
попробуйте немного другой вариант, когда поднимается WEB сервер и файл прошивки заливается через WEB интерфейс
Arduino/WebUpdater.ino at master · esp8266/Arduino · GitHub
(файл прошивки сделать в Arduino IDE - в меню "Скетч" - "Экспорт бинарного файла")
Не пойдет.... лучше буду в ручную шить.. Вемос планируется как шлюз для кучи ардуинок. Если смогу прикрутить радио приемник/передатчик к нему...
log как раз указывает на ошибку.

Не в этом дело.
У вас не запускается Python, что делать я уже писал.
Частая ошибка не настроенный путь.
питон установлен. Что такое с добавлением в Path ?
 

Serrous

Member
Но при попытке слушать Serial.println через монитор все равно такая же фигня )
 

CodeNameHawk

Moderator
Команда форума
Первое подумать.
Если не помогло, переключится на COM порт.
Удобно использовать программу HTERM.
 

Serrous

Member
Первое подумать.
Если не помогло, переключится на COM порт.
Удобно использовать программу HTERM.
дак я сразу понял .... но надежда была ) что тащить ноут в сортир для отладки не надо )

Поэкспериментировал c ESP на прямую.... в итоге IDE сломалась )

пишет
Код:
Плата d1_mini (платформа esp8266, пакет esp8266) неизвестна

Ошибка компиляции для платы WeMos D1 mini.
Есть мысли ? или мож еще какой компилятор имеется ? IDE переставлял, платы обновлял... Пробовал на мини и просто D1...

Код:
плата wemos d1 mini
uploading using: Serial
cpu frequenci: 80mhz
flash size 4m
upload speed 115200
port com3
 
Сверху Снизу