Подскажите, почему после пропадания и восстановления напряжения сети плата D1 Mini не подключается к роутеру и к Blynk. Приходится через некоторое время вручную перетыкать питание на ESP. Понимаю, что ESP пытается сразу же подключиться к роутеру, едва получив питание, а роутер в это время только пытается загрузится и выйти в сеть. Но почему только одна попытка? Как сделать, чтобы после восстановления напряжения 220 В или интернета был автоматический реконнект?
// Open Blynk app:
//Create a New Project (new Auth Token will be sent to your email)
//Add Value Display Widget
//Go to Value Display Widget Settings
//Set PIN to V1
//Set Reading Rate to PUSH
//Add Super Chart Widget (Работает даже при закрытой программе Blynk, без обрыва потока данных)
#define relay D7
#define ONE_WIRE_BUS D5
#define BLYNK_PRINT Serial
bool Relay;
#include <OneWire.h>
#include <DallasTemperature.h>
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
char auth[] = "XXXXXXXXXXXXXXX";
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "TP-LINK_POCKET_3020XXXXXXXXXXXXX";
char pass[] = "XXXXXXXXX";
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
int Temp1Value; // Можно подключить на два датчика темп-ры: пример отсюда [https://community.blyn…ostat-with-blynk/31759](https://4pda.ru/pages/go/?u=https%3A%2F%2Fcommunity.blynk.cc%2Ft%2Fds18b20-thermostat-with-blynk%2F31759&e=102395857)
BlynkTimer timer;
void myTimerEvent() //read the sensor connected to A0, and then send it to Virtual Pin V1
{
int reading = analogRead(A0);
float voltage = reading * 16.075;
voltage /= 1024.0;
Blynk.virtualWrite(V1, voltage); //sending to Blynk
sensors.requestTemperatures();
float temp = sensors.getTempCByIndex(0);
Serial.println(temp);
Blynk.virtualWrite(V3, temp);
}
void setup()
{
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
pinMode(relay,OUTPUT);
timer.setInterval(10000L, myTimerEvent); //every 1000 milliseconds, which is 10 second
}
BLYNK_CONNECTED(){Blynk.syncVirtual(V0);}
BLYNK_WRITE(V0)
{
Relay=param.asInt();
digitalWrite(relay, Relay);
int buttonState = param.asInt();
}
BLYNK_WRITE(V3)
{
Temp1Value = param.asInt();
}
void loop()
{
Blynk.run();
timer.run();
if (WiFi.getAutoConnect() != true) WiFi.setAutoConnect(true); //on power-on automatically connects to last used hwAP
WiFi.setAutoReconnect(true); //automatically reconnects to hwAP in case it is disconnected
}