• Система автоматизации с открытым исходным кодом на базе 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);
              
                }

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