Помогите адаптировать скетч от esp8266 к esp8285
- Войдите на сайт для отправки комментариев
Вс, 15/08/2021 - 07:00
#include <ESP8266WiFi.h> #include <ESP8266Ping.h> const char* ssid = «ssid»; // подставить название своей сети WiFi const char* password = «password»; //подставить пароль свой сети WiFi //IPAddress ip(192, 168, 1, 70); //Node static IP //IPAddress gateway(192, 168, 0, 1); //IPAddress subnet(255, 255, 255, 0); //const char* remote_host = «www.ya.ru»; //адрес для пинга const IPAddress remote_ip(87, 250, 250, 242); // адрес для пинга unsigned long previousMillis = 0; const long interval = 300; //интервал между пингами в сек const long T_ROUTER = 60; // время ожидания загрузки роутера в сек const long T_RELAY = 5; // задержка от выключения реле до включения в сек int PIN_RELAY = 12; int PIN_LED = 13; int PIN_BUTTON = 0; int COUNT_PING = 0; //количество попыток при отсутствии пинга (не задается) int COUNT_PING_MAX = 2; //максимальное количество отсутствия пинга до перезагрузки роутера int COUNT_WIFI = 0; //счетчик попыток подключения к WiFi int COUNT_WIFI_MAX = 60; //300; // Таймаут до перезагрузки роутера при отсутствии WiFi в сек void setup() { pinMode(PIN_LED, OUTPUT); pinMode(PIN_RELAY, OUTPUT); pinMode(PIN_BUTTON, INPUT); digitalWrite(PIN_RELAY, HIGH); digitalWrite(PIN_LED, LOW); Serial.begin(115200); delay(10); attachInterrupt(PIN_BUTTON, Click, FALLING); } void ConnectWIFI() { Serial.println(«Подключаюсь к WiFi»); WiFi.mode(WIFI_STA); WiFi.begin(ssid, password); // WiFi.config(ip, gateway, subnet); while (WiFi.status() != WL_CONNECTED) { if (COUNT_WIFI <= COUNT_WIFI_MAX) { COUNT_WIFI++; } else { Serial.println(); Relay(); //перезагружаемся так как нет подключения к WiFi Serial.println(«Подключаюсь к WiFi»); } //Serial.println(WiFi.status()); digitalWrite(PIN_LED, !digitalRead(PIN_LED)); //моргаем зеленым светодиодом delay(1000); Serial.print("."); } COUNT_WIFI = 0; // сбрасываем счетчик попыток подключения к WiFi Serial.println(); Serial.print(«WiFi подключен, ip: „); Serial.println(WiFi.localIP()); //Serial.println(WiFi.status()); digitalWrite(PIN_LED, LOW); // зажигаем зеленый светодиод COUNT_PING = 0; // сбрасываем счетчик неуспешных пингов } void Relay() { if (digitalRead(PIN_RELAY) == HIGH) { digitalWrite(PIN_RELAY, LOW); //отключаем питание на розетке Serial.println(“Реле ВЫключено»); } delay(T_RELAY*1000); digitalWrite(PIN_RELAY, HIGH); //включаем питание на розетке Serial.println(«Реле Включено, ждем загрузки роутера»); delay(T_ROUTER*1000); // ждем загрузки роутера COUNT_PING = 0; // сбрасываем счетчик неуспешных пингов COUNT_WIFI = 0; // сбрасываем счетчик попыток подключения к WiFi previousMillis = 0; } void Click() { digitalWrite(PIN_RELAY, LOW); //отключаем питание на розетке Serial.println(«Реле выключено кнопкой»); } void loop() { if (WiFi.status() != WL_CONNECTED) // нет подключения к WiFi { ConnectWIFI(); //подключаемся к WiFi } unsigned long currentMillis = millis(); if (((currentMillis — previousMillis) >= interval*1000) && (digitalRead(PIN_RELAY) == HIGH) && (WiFi.status() == WL_CONNECTED)) { previousMillis = currentMillis; Serial.print(«Попытка пинга: „); //Serial.println(remote_host); Serial.println(remote_ip); //if(Ping.ping(remote_host)) if (Ping.ping(remote_ip)) { //пинг есть Serial.println(“Пинг есть!!»); COUNT_PING = 0;// сбрасываем счетчик неуспешных пингов } else { // пинга нет Serial.print(«Пинг отсутствует :( „); COUNT_PING ++; Serial.println(COUNT_PING); } } if (COUNT_PING >= COUNT_PING_MAX) // если превышено количество попыток пинга перезагружаем роутер { Relay(); } if (digitalRead(PIN_RELAY) == LOW) // нажата кнопка, перезагружаем роутер { Relay(); } }
форум мертвый. удаляйте тему.
Зачем? Полезная тема.
За любую помощь кто то всегда платит. Даже если это стихийное бедствие, и вам кажется, что помощь оказывают вам бесплатно, вокруг все бессеребрянники и альтруисты. Автор, вы задали данный вопрос не в той теме. Вам в тему ищу исполнителя. Там обязательно помогут.
Автор, вы задали данный вопрос не в той теме.
Он вообще никаких вопросов не задавал. Он сначала приказал ему "помочь", а потом приказал удалить тему.