На esp8266 не работает прошивка по wifi
- Войдите на сайт для отправки комментариев
Чт, 20/06/2019 - 17:15
На esp8266 не работает прошивка по wifi, хотя на nodemcu все хорошо. Может что в обвязке есп поменять/добавить?
Скетч:
/********* Руи Сантос (Rui Santos) Более подробно о проекте на: http://randomnerdtutorials.com Пример в IDE Arduino: File > Examples > Arduino OTA > BasicOTA.ino (Файл > Примеры > Arduino OTA > BasicOTA.ino) *********/ #include <ESP8266WiFi.h> #include <ESP8266mDNS.h> #include <WiFiUdp.h> #include <ArduinoOTA.h> // замените значения в этих константах на те, // что соответствуют вашей сети: const char* ssid = "***********"; const char* password = "***********"; 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(); } // строчка для номера порта по умолчанию // можно вписать «8266»: // ArduinoOTA.setPort(8266); // строчка для названия хоста по умолчанию; // можно вписать «esp8266-[ID чипа]»: // ArduinoOTA.setHostname("myesp8266"); // строчка для аутентификации // (по умолчанию никакой аутентификации не будет): // ArduinoOTA.setPassword((const char *)"123"); ArduinoOTA.onStart([]() { Serial.println("Start"); // "Начало OTA-апдейта" }); ArduinoOTA.onEnd([]() { Serial.println("\nEnd"); // "Завершение OTA-апдейта" }); ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) { Serial.printf("Progress: %u%%\r", (progress / (total / 100))); }); 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"); // "Ошибка при начале OTA-апдейта" 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"); // "Ошибка при завершении OTA-апдейта" }); ArduinoOTA.begin(); Serial.println("Ready"); // "Готово" Serial.print("IP address: "); // "IP-адрес: " Serial.println(WiFi.localIP()); } void loop() { ArduinoOTA.handle(); }
Обвязка есп8266:
что за ESP и какие настройки при прошивке выставляте?
esp 12f. Настройки
выставьте правильный размер flash size. У ESP12F - 4M
Есп и раньше прошивалось с этими настройками. Но я сделал как вы сказали, все без изменений
по шнурку она прошиваться будет в любом случае, а вот по воздуху нужен достаточный объем памяти. После прошивки через шнурок плату перезагружаете, порт определяется?
У меня просто отошел контакт от rx. Спасибо за отклик!
Назрел другой вопрос, как ставить перемычку для прошивки по вайфай? Без нее не хочет прошиваться
Каким образом Rx связан с ОТА и что за перемычка?
Перемычка burn на схеме. Не понял вопрос про rx
Не понял вопрос про rx
У вас название темы "... прошивка по wifi. " Вот и интересно причем здесь
После успешной заливки по шнуру никакие контакты Rx не имеют никакого отношения к ОТА также как и всякие перемычки
Вы не поняли. Изначально проблема была в том что прошивка по шнурку не загружалась, хотя раньше все было норм, причиной этому был плохой контакт rx или tx, я точно не понял, но что то одно. Вторая проблема в том что, когда загружаешь скетч, нужно ставить перемычку (burn) , но как эту перемычку ставить когда шьешь по воздуху?
ok, первый момент проехали. Что касается второго, для начала проверьте правильность монтажа, нет ли где косяков.
Все хорошо
откройте любую терминальную программу и посмотрите какие сообщения выдаются по шнуру в процессе прошивки через wifi.