kiRRow píše: ↑25 dub 2024, 22:17
No jako já v křišťálové kouli vidím, že když se najednou zapne router a to espčko, tak program espčka se stihne někde zacyklovat dříve než nastartuje router ... jako ono se to dá řešit i cestou, co kdyby ke ztrátě napájení nedocházelo ... nebo nacpat na začátek setupu na prasáka obrovský delay()
Né, podstata věci je taková že ESP hledá síť do které se normálně připojuje když ta síť je. Když nejde síť, ESP se nerozběhne po výpadku jeho napájení. Chci aby se rozeběhlo bez sítě a připojilo až bude možné připojení.
Delay nepomůže protože jakmile se nerozjede ESP, tak se nezapne ani router se sítí.
#include <WiFi.h>
#include <ESPmDNS.h>
#include <WiFiUdp.h>
#include <ArduinoOTA.h>
#include <BluetoothSerial.h>
#include <HardwareSerial.h>
#include <EEPROM.h>
//--------------------------------------------------------------------------------------------------------General setup----------------------------------------------------------
void setup()
{
Serial.begin(115200);
//Moje_1_setup();
//Serial_port_setup();
//BT_setup();
OTA_setup();
}
//--------------------
void OTA_setup()
{
Serial.println("Booting");
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
while (WiFi.waitForConnectResult() != WL_CONNECTED)
{
Serial.println("Connection Failed! Rebooting...");
delay(1000);
ESP.restart();
}
// Port defaults to 3232
ArduinoOTA.setPort(3232);
// Hostname defaults to esp3232-[MAC]
ArduinoOTA.setHostname("Moje_1");
// No authentication by default
ArduinoOTA.setPassword("admin");
// Password can be set with it's md5 value as well
//MD5(admin) = 21232f297a57a5a743894a0e4a801fc3
ArduinoOTA.setPasswordHash("21232f297a57a5a743894a0e4a801fc3");
ArduinoOTA
.onStart([]() {
String type;
if (ArduinoOTA.getCommand() == U_FLASH)
type = "sketch";
else // U_SPIFFS
type = "filesystem";
// NOTE: if updating SPIFFS this would be the place to unmount SPIFFS using SPIFFS.end()
Serial.println("Start updating " + type);
})
.onEnd([]() {
Serial.println("\nEnd");
})
.onProgress([](unsigned int progress, unsigned int total) {
Serial.printf("Progress: %u%%\r", (progress / (total / 100)));
})
.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());
KonecOTA:
;
}
//------------------------------------------------------------------loop----------------------------------------------------
void loop()
{
//Volani
Moje_2();
ArduinoOTA.handle();
}
//--------------------