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

OTA webupdate проблемы с заливкой кода, как вывести информацию об ошибке

dima744

New member
Всем доброго времени суток!
принимайте новичка
появилась пара вопросов:
1. код работает загрузить новую прошивку через wifi-webupdate получается, но только если подключится к сети которую создала сама esp-шка, через мой домашний вай фай
обновить прошивку получается, но очень редко
, антивирусы и файрволы отключены.
2. как вывести отладочные сообщения?
код

Код:
               httpUpdater.onStart(update_started);

                httpUpdater.onEnd(update_finished);

                httpUpdater.onProgress(update_progress);

                httpUpdater.onError(update_error);
при компиляции выдает ошибки вида
D:\Arduino my\MEGA+ESP\UPDATE7\update_ver_7\update_ver_7.ino: In function 'void setup()':
update_ver_7:85:29: error: 'using ESP8266HTTPUpdateServer = class esp8266httpupdateserver::ESP8266HTTPUpdateServerTemplate<WiFiServer>' has no member named 'onStart'
httpUpdater.onStart(update_started);
Код:
//подключим бибилиотеки
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>
#include <ESP8266HTTPUpdateServer.h>


// явки пароли
#define APSSID          "newk"   //AP SSID
#define APPASSWORD      "iamtheone"         //AP password
#define SERVERPORT      80         //Web server port
#define WWWUSERNAME     "admin"    // Set www user name
#define WWWPASSWORD     "admin"    // Set www user password
#define OTAUSER         "admin"    // Set OTA user
#define OTAPASSWORD     "admin"    // Set OTA password
#define OTAPATH         "/firmware"// Set path for update

//Setup classes needed from libraries.
MDNSResponder mdns;
ESP8266WebServer server(SERVERPORT);
ESP8266HTTPUpdateServer httpUpdater;


// версия нашего скретча
const char* VerID = "Firmware version 7-0-04";

void setup()
            {
                delay(3000);
                Serial.begin(74880); // потому как инфа о плате вываливается на этой скорости
                Serial.println();
                Serial.setDebugOutput(true);
              
                Serial.print("Booting Sketch :");
                Serial.println(VerID);

                Serial.print("ChipId :");
                Serial.println(String(ESP.getChipId()));

                Serial.print("SdkVersion :");
                Serial.println(String(ESP.getSdkVersion()));

                Serial.print("SketchSize :");
                Serial.println(String(ESP.getSketchSize()));

                Serial.print("FreeSketchSpace :");
                Serial.println(String(ESP.getFreeSketchSpace()));
              
                Serial.print("Connecting to :");
                Serial.println(APSSID);

                Serial1.setDebugOutput(true);
                WiFi.mode(WIFI_AP_STA);
                WiFi.begin(APSSID, APPASSWORD);
              
                while (WiFi.status() != WL_CONNECTED)
                                {
                                  delay(500);
                                  Serial.print(".");
                                  Serial.println(WiFi.status());
                                  delay(500);
                                }
                              
                Serial.print("IP: ");
                Serial.println(WiFi.localIP());

                 if (mdns.begin("esp8266", WiFi.localIP()))
                               {
                                 Serial.println("MDNS: Responder Started");
                               }

                //Setup HTTP Server Endpoints
                server.on("/", HTTP_GET, handleGET);
                server.on("/device", HTTP_POST, handleStatePOST);
                server.on("/device", HTTP_GET, handleStateGET);
                server.onNotFound(handleNotFound);
                httpUpdater.setup(&server, OTAPATH, OTAUSER, OTAPASSWORD); //OTA Update endpoint
                // Add optional callback notifiers
              
                //Start the web server
                server.begin();

                httpUpdater.onStart(update_started);
                //httpUpdater.onEnd(update_finished);
                //httpUpdater.onProgress(update_progress);
                //httpUpdater.onError(update_error);
                //HTTPUpdater& upload = server.upload();
                //Serial.println(String(upload.status));
              
                Serial.println("Server is up.");


              
                if (WiFi.waitForConnectResult() == WL_CONNECTED)
                                {
                                
                                
                                }   //if (WiFi.waitForConnectResult() == WL_CONNECTED)
                          
            } //setup


void update_started() {
  Serial.println("CALLBACK:  HTTP update process started");
}

void update_finished() {
  Serial.println("CALLBACK:  HTTP update process finished");
}

void update_progress(int cur, int total) {
  Serial.printf("CALLBACK:  HTTP update process at %d of %d bytes...\n", cur, total);
}

void update_error(int err) {
  Serial.printf("CALLBACK:  HTTP update fatal error code %d\n", err);
}


void handleNotFound()
                {
                  server.send(404, "text/plain", "404: Not found");
                }

void handleGET()
                {

                    Serial.println("Serviced Page Request");
                    String  buff;
                    buff  = "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n";
                    buff += "<html><head>\n";
                    buff += "<style type=\"text/css\">\n";
                    buff += "html {font-family: sans-serif;background:#f0f5f5}\n";
                    buff += ".submit {width: 10%; height:5vw; font-size: 100%; font-weight: bold; border-radius: 4vw;}\n";
                    buff += "@media (max-width: 1281px) {\n";
                    buff += "html {font-size: 3vw; font-family: sans-serif;background:#f0f5f5}\n";
                    buff += ".submit {width: 40%; height:20vw; font-size: 100%; font-weight: bold; border-radius: 15vw;}}\n";
                    buff += "</style>\n";
                    buff += "<meta content=\"text/html; charset=utf-8\">\n";
                  
                    buff += "<title>ESP+MEGA</title></head><body>\n"; //title страницы
                    buff += "Wifi-enabled IIoT Power Switch\n"; //текст страницы
                  
                    //buff += "<form action=\"/device\" method=\"POST\">\n";
                  
                    buff += "<h2>Device ID: " + String(ESP.getChipId()) + "</h2>\n"; //заголовки c Device ID
                    buff += "<h2>"+String(VerID)+"</h2>\n";                          //заголовки c Firmware
                  
                    //buff += "</form></body></html>\n";
                    buff += "</body></html>\n";
                    server.send(200, "text/html", buff);
                    delay(20);               

                }   //void handleGET()

void handleStatePOST()
              
                {
                  /* request for www user/password from client */
                  if (!server.authenticate(WWWUSERNAME, WWWPASSWORD))
                    return server.requestAuthentication();
                  //if (server.arg("state") == "ON") setRelay(true);
                  //if (server.arg("state") == "OFF") setRelay(false);
              
                  //Redirect to home page is user requests it.
                  if (server.arg("return") == "TRUE") handleGET();
                  else handleStateGET();
                }

void handleStateGET()
              
                { 
                //Serve Page
                Serial.println("Serviced API Request");
            
              
                String  buff;
              
                buff = "handleStateGET page\n";
              
                server.send(200, "text/html", buff);
              
              
                }  //void handleStateGET()

              



void loop()
                {
                 server.handleClient();           // Listen for HTTP request
                 delay(1);
              
                }

Заранее спасибо!
 
Сверху Снизу