Не работает контроллер от других розеток
- Войдите на сайт для отправки комментариев
Всем привет.
Решил я как-то воткнуть контроллер в санузел для управления вытяжкой, контролем влажности и протечками. Собрал все на макетной схеме на работе, запустил все работает отлично. На дисплей информация выводится, реле управляются.

#include <ESP8266WiFi.h>
#include "DHT.h"
#include <Average.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27, 16, 2);
unsigned long previousMillis = 0; // начало времени для опроса датчика температуры
unsigned long previousMillis2 = 0; // начало отсчета для вытяжки
const long interval = 3000; // пауза между опросами датчика температуры
const long interval2 = 300000; // время непрерывной работы вытяжки 5 минут (300000 )
const long interval3 = 120000; // время остывания мотора вытяжки если влыжность не понижена работой вытяжки 2 минуты (120000 )
int timeTostop;
int hummCount = 70; // влажность для включения вытяжки
#define DHTPIN D2 // номер пина, к которому подсоединен датчик температуры
// Инициируем датчик
//DHT dht(DHTPIN, DHT22);
DHT dht(DHTPIN, DHT11);
Average<float> ave(20); // создаем массив на 20 значений
const char* ssid = "bathroom";
const char* password = "123456789";
int ledPin = D7; //пин выключателя у раковины
int ledPin2 = D8; //пин выключателя туалет комод
int ledPin3 = D5; //пин выключателя над ванной
int ledPin4 = D6; //пин выключателя вытяжки
int value = LOW;
int value2 = LOW;
int value3 = LOW;
int value4 = LOW;
boolean value5 = false;
WiFiServer server(80);
void setup() {
Serial.begin(115200);
dht.begin();
delay(10);
// initialize the LCD
lcd.begin(4,5); // sda=0 | D3, scl=2 | D4
// Turn on the blacklight and print a message.
lcd.backlight();
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, HIGH);
pinMode(ledPin2, OUTPUT);
digitalWrite(ledPin2, HIGH);
pinMode(ledPin3, OUTPUT);
digitalWrite(ledPin3, HIGH);
pinMode(ledPin4, OUTPUT);
digitalWrite(ledPin4, HIGH);
// Connect to WiFi network
Serial.println();
Serial.println();
Serial.print("Creating AP");
Serial.println(ssid);
WiFi.softAP(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("Creating WiFi AP bathroom OK");
// Start the server
server.begin();
Serial.println("Server started");
// Print the IP address
Serial.print("Use this URL : ");
Serial.print("http://");
Serial.print(WiFi.softAPIP());
Serial.println("/");
}
void loop() {
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
// опросить датчик температуры и влажности и положить значение в массив
Serial.println(previousMillis);
// сохраняем время последнего опроса датчика
previousMillis = currentMillis;
Serial.println(currentMillis);
float humm = dht.readHumidity();
ave.push(humm); // получаем значение влажности
Serial.println(ave.mean());
}
if (ave.mean() > hummCount && currentMillis - previousMillis2 >= interval3 && !value5) {
previousMillis2 = currentMillis;
digitalWrite(ledPin4, LOW);
value4 = HIGH;
value5 = true;
}
// дописать условие ИЛИ время работы более 5 минут
// дописать присваивание значение value4 для отображение на веб статуса работы вытяжки
if (currentMillis - previousMillis2 >= interval2 && value5) {
digitalWrite(ledPin4, HIGH);
previousMillis2 = currentMillis;
value4 = LOW;
value5 = false;
}
float h = dht.readHumidity();
float t = dht.readTemperature();
float hic = dht.computeHeatIndex(t, h, false);
lcd.home();
lcd.print("TEMP:");
lcd.print(round(t));
lcd.print("*C");
lcd.setCursor(10, 0);
lcd.print("VT:");
if (value5) {
timeTostop = currentMillis - previousMillis2;
timeTostop = timeTostop / 1000;
timeTostop = 300 - timeTostop;
// timeTostop = timeTostop / 60;
lcd.print(timeTostop); }
else {lcd.print("0FF");}
lcd.setCursor(0, 1);
lcd.print("HUMM:");
lcd.print(round(ave.mean()));
lcd.print("% (");
lcd.print(hummCount);
lcd.print("%)");
// lcd.setCursor(0, 1);
// Check if a client has connected
WiFiClient client = server.available();
if (!client) {
return;
}
// Wait until the client sends some data
Serial.println("new client");
while(!client.available()){
delay(1);
}
// Read the first line of the request
String request = client.readStringUntil('\r');
Serial.println(request);
client.flush();
// Match the request для реле 1
if (request.indexOf("/LED=ON") != -1) {
digitalWrite(ledPin, LOW);
value = HIGH;
}
if (request.indexOf("/LED=OFF") != -1){
digitalWrite(ledPin, HIGH);
value = LOW;
}
// Match the request для реле 2
if (request.indexOf("/LED2=ON") != -1) {
digitalWrite(ledPin2, LOW);
value2 = HIGH;
}
if (request.indexOf("/LED2=OFF") != -1){
digitalWrite(ledPin2, HIGH);
value2 = LOW;
}
// Match the request для реле 3
if (request.indexOf("/LED3=ON") != -1) {
digitalWrite(ledPin3, LOW);
value3 = HIGH;
}
if (request.indexOf("/LED3=OFF") != -1){
digitalWrite(ledPin3, HIGH);
value3 = LOW;
}
// Match the request для реле 4 (вытяжка
if (request.indexOf("/LED4=ON") != -1) {
digitalWrite(ledPin4, LOW);
value4 = HIGH;
value5 = true;
previousMillis2 = currentMillis;
}
if (request.indexOf("/LED4=OFF") != -1){
digitalWrite(ledPin4, HIGH);
value4 = LOW;
value5 = false;
previousMillis2 = currentMillis;
}
// Парсим заданное значение влажности для включения вытяжки
if (request.indexOf("/HUM=40") != -1) {
hummCount = 40;
}
if (request.indexOf("/HUM=50") != -1) {
hummCount = 50;
}
if (request.indexOf("/HUM=60") != -1){
hummCount = 60;
}
if (request.indexOf("/HUM=70") != -1){
hummCount = 70;
}
// Return the response
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println(""); // do not forget this one
client.println("<!DOCTYPE HTML>");
client.println("<html>");
client.println("<head><meta charset=\"utf-8\"> <title>ЯСанузел</title></head>");
if (isnan(h) || isnan(t)) {
client.println("Не удается считать показания темпеатуры и влажности");
client.println("<br><br>");
}
else {
client.print("<center><font size=\"15\" color=\"blue\">Влажность "); client.print(h); client.println( "%</font></center>");
client.print("<center><font size=\"15\" color=\"blue\">Средняя влажность: "); client.println(ave.mean()); client.println(" %</font></center>");
client.print("<center><font size=\"15\" color=\"green\">Температура "); client.print(t); client.println(" *C</font></center>");
client.print("<center><font size=\"15\" color=\"green\">Ощущается как "); client.print(hic); client.println(" *C</font></center>");
client.println("<br><br>");
}
client.print("<center><font size=\"15\">Свет у раковины чейчас: </font>");
if(value == HIGH) {
client.print("<font size=\"15\" color=\"green\">Вкл / </font></center>");
client.println("<center><font size=\"15\"><a href=\"/LED=OFF\">Выключить</a></font></center><br>");
} else {
client.print("<font size=\"15\" color=\"yellow\">Выкл / </font></center>");
client.println("<center><font size=\"15\"><a href=\"/LED=ON\">Включить</a></font></center><br>");
}
client.println("<br><br>");
client.print("<center><font size=\"15\">Свет у туалета сейчас: </font>");
if(value2 == HIGH) {
client.print("<font size=\"15\" color=\"green\">Вкл / </font></center>");
client.println("<center><font size=\"15\"><a href=\"/LED2=OFF\">Выключить</a></font></center><br>");
} else {
client.print("<font size=\"15\" color=\"yellow\">Выкл / </font></center>");
client.println("<center><font size=\"15\"><a href=\"/LED2=ON\">Включить</a></font></center><br>");
}
client.println("<br><br>");
client.print("<center><font size=\"15\">Свет над ванной сейчас: </font>");
if(value3 == HIGH) {
client.print("<font size=\"15\" color=\"green\">Вкл / </font></center>");
client.println("<center><font size=\"15\"><a href=\"/LED3=OFF\">Выключить</a></font></center><br>");
} else {
client.print("<font size=\"15\" color=\"yellow\">Выкл / </font></center>");
client.println("<center><font size=\"15\"><a href=\"/LED3=ON\">Включить</a></font></center><br>");
}
client.println("<br><br>");
client.print("<center><font size=\"15\">Вытяжка сейчас: </font>");
if(value4 == HIGH) {
client.print("<font size=\"15\" color=\"green\">Вкл / </font></center>");
client.println("<center><font size=\"15\"><a href=\"/LED4=OFF\">Выключить</a></font></center><br>");
} else {
client.print("<font size=\"15\" color=\"yellow\">Выкл / </font></center>");
client.println("<center><font size=\"15\"><a href=\"/LED4=ON\">Включить</a></font></center><br>");
}
client.println("<br><br>");
client.print("<center><font size=\"15\">Влажность для включения вытяжки: "); client.print(hummCount); client.println("</font></center>");
client.print ("<center><br><font size=\"15\"><a href=\"/HUM=40\">40</a>"); client.print(" "); client.print("<a href=\"/HUM=50\">50</a>"); client.print(" "); client.print("<a href=\"/HUM=60\">60</a>"); client.print(" "); client.print("<a href=\"/HUM=70\">70</a></font></center><br><br>");
client.print ("<center><br><font size=\"15\"><a href=\"http://"); client.print (WiFi.softAPIP()); client.print ("/\">ОБНОВИТЬ</a>");
client.println("</html>");
delay(1);
Serial.println("Client disconnected");
Serial.println("");
}
Потом все это добро не разбирася забрал домой, перед подключением в санузле решил проверить собранную схему, вставляю в розетку, а на дисплее ничего, точка доступа видна, но страница недоступна. Думал может какой контакт, забрал обратно на работу, вставляю в розетку и все работает. Далее поехал опять домой взяв еще один блоки питания. Приезжаю пробую рабочую схему и опять ничего, другой блок питания, тоже ничего. Просто горит дисплей, видна точка доступа, но страница не открывается и на дисплей ничего не выводится.
Я даже не могу предположить что за полтергейст тут может быть.
а что у вас произойдет если отвалятся датчики? программа в вечный цикл не уйдет?
по ВаФляю вы ваш девайс видите? а через порт Serial?
а что у вас произойдет если отвалятся датчики? программа в вечный цикл не уйдет?
При отключении датчика все норма работает. Значение просто не выводит, позволяет реле управлять.
по ВаФляю вы ваш девайс видите?
Да, виден. Телефон к нему подключается, но страницу не открыает.
а через порт Serial?
Пока нет возможности проверить, дома ремонт, компа нет.
Забыл написать, что плата Wemos D1 R2
На работе Симитируйте работу девайса в туалете: подергайте датчики, поглушите вайфляй, пукните рядом ( для более полного приближения к реальным условиям))
дело точно не в розетках
ищите, ваш код гдето стопорится или циклится до строк
127lcd.home();128lcd.print("TEMP:");129lcd.print(round(t));выводите отладочную информацию на LCD сразу
типа
043voidsetup() {044Serial.begin(115200);ЛСД--привет запуск
....
ЛСД -- 5 стро кода прошло.. полет нормальный
....ЛСД -- 15 стро кода прошло.. полет нормальный
...
ЛСД -- N стро кода прошло.. полет нормальныйи ид
На работе Симитируйте работу девайса в туалете: подергайте датчики, поглушите вайфляй, пукните рядом ( для более полного приближения к реальным условиям))
дело точно не в розетках
Все делал, кроме глушилки вайфай, а как это сделать? Очень рядом сотовая вышка, может она глушит контроллер.
Нет, точно дома провод от щитка к розетке не в ту сторону протянут. На звук это, как известно, катастрофически влияет, наверное и на экран тоже.
Нет, точно дома провод от щитка к розетке не в ту сторону протянут. На звук это, как известно, катастрофически влияет, наверное и на экран тоже.
точно!
Нет, точно дома провод от щитка к розетке не в ту сторону протянут. На звук это, как известно, катастрофически влияет
Подробнее здесь: http://arduino.ru/forum/otvlechennye-temy/khifilitiki-kulturnyi-shok
черт, а я до этого считал что если кабель проложить от щитка к розетке то розетка будет работать, тк напруга будет течь по кабелю от начала в конец - из щетка к розетке, а если проложить кабель от розетки к щику то розетка работать не будет так как в розетке нет напруги и нечему там течь ! и я дома везде кабель протянул от щитка к розетке ! прочитав про хивилитиков я понял что я прав!
PS а говорят что еще напругу можно ведрами переносить.. надо проверить...
Сделал режим вывод каждой операции на экран и понял на каком моменте зависает. Это строка 81, на экран бесконечно выводятся точки.
Но есть закономерность, контроллер номально загружается вблизи како-либо точки доступа. А в помещении где нет WiFi роутеров висит печатая точку.
Думал что может строки 79-82 касаются подключения к точке доступа, закоментировал их. И контроллер стал нормально загружаться где угодно, но к нему как точке доступа невозможно подключиться.
#include <ESP8266WiFi.h> #include "DHT.h" #include <Average.h> #include <Wire.h> #include <LiquidCrystal_I2C.h> // Set the LCD address to 0x27 for a 16 chars and 2 line display LiquidCrystal_I2C lcd(0x27, 16, 2); unsigned long previousMillis = 0; // начало времени для опроса датчика температуры unsigned long previousMillis2 = 0; // начало отсчета для вытяжки const long interval = 3000; // пауза между опросами датчика температуры const long interval2 = 300000; // время непрерывной работы вытяжки 5 минут (300000 ) const long interval3 = 120000; // время остывания мотора вытяжки если влыжность не понижена работой вытяжки 2 минуты (120000 ) int timeTostop; int hummCount = 70; // влажность для включения вытяжки #define DHTPIN D2 // номер пина, к которому подсоединен датчик температуры // Инициируем датчик //DHT dht(DHTPIN, DHT22); DHT dht(DHTPIN, DHT11); Average<float> ave(20); // создаем массив на 20 значений const char* ssid = "bathroom"; const char* password = "14041984"; int ledPin = D7; //пин выключателя у раковины int ledPin2 = D8; //пин выключателя туалет комод int ledPin3 = D5; //пин выключателя над ванной int ledPin4 = D6; //пин выключателя вытяжки int value = LOW; int value2 = LOW; int value3 = LOW; int value4 = LOW; boolean value5 = false; WiFiServer server(80); void setup() { Serial.begin(115200); dht.begin(); delay(10); // initialize the LCD lcd.begin(4,5); // sda=0 | D3, scl=2 | D4 // Turn on the blacklight and print a message. lcd.backlight(); pinMode(ledPin, OUTPUT); digitalWrite(ledPin, HIGH); pinMode(ledPin2, OUTPUT); digitalWrite(ledPin2, HIGH); pinMode(ledPin3, OUTPUT); digitalWrite(ledPin3, HIGH); pinMode(ledPin4, OUTPUT); digitalWrite(ledPin4, HIGH); // Connect to WiFi network Serial.println(); Serial.println(); Serial.print("Creating AP"); Serial.println(ssid); lcd.home(); lcd.print("Creating AP - "); lcd.setCursor(0, 1); lcd.print(ssid); delay(2000); WiFi.softAP(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); lcd.print("."); } lcd.clear(); lcd.home(); lcd.print("Created OK"); Serial.println(""); Serial.println("Creating WiFi AP bathroom OK"); delay(2000); // Start the server server.begin(); lcd.setCursor(0, 1); lcd.print(WiFi.softAPIP()); Serial.println("Server started"); // Print the IP address Serial.print("Use this URL : "); Serial.print("http://"); Serial.print(WiFi.softAPIP()); Serial.println("/"); delay(2000); } void loop() { unsigned long currentMillis = millis(); if (currentMillis - previousMillis >= interval) { // опросить датчик температуры и влажности и положить значение в массив Serial.println(previousMillis); // сохраняем время последнего опроса датчика previousMillis = currentMillis; Serial.println(currentMillis); float humm = dht.readHumidity(); ave.push(humm); // получаем значение влажности Serial.println(ave.mean()); } if (ave.mean() > hummCount && currentMillis - previousMillis2 >= interval3 && !value5) { previousMillis2 = currentMillis; digitalWrite(ledPin4, LOW); value4 = HIGH; value5 = true; } // дописать условие ИЛИ время работы более 5 минут // дописать присваивание значение value4 для отображение на веб статуса работы вытяжки if (currentMillis - previousMillis2 >= interval2 && value5) { digitalWrite(ledPin4, HIGH); previousMillis2 = currentMillis; value4 = LOW; value5 = false; } float h = dht.readHumidity(); float t = dht.readTemperature(); float hic = dht.computeHeatIndex(t, h, false); if (isnan(h) || isnan(t)) { lcd.clear(); lcd.print("Sensor ERROR"); delay (500); } lcd.home(); lcd.print("TEMP:"); lcd.print(round(t)); lcd.print("*C "); lcd.setCursor(10, 0); lcd.print("VT:"); if (value5) { timeTostop = currentMillis - previousMillis2; timeTostop = timeTostop / 1000; timeTostop = 300 - timeTostop; // timeTostop = timeTostop / 60; lcd.print(timeTostop); } else {lcd.print("0FF");} lcd.setCursor(0, 1); lcd.print("HUMM:"); lcd.print(round(ave.mean())); lcd.print("% ("); lcd.print(hummCount); lcd.print("%)"); // lcd.setCursor(0, 1); // Check if a client has connected WiFiClient client = server.available(); if (!client) { return; } // Wait until the client sends some data Serial.println("new client"); while(!client.available()){ delay(1); } // Read the first line of the request String request = client.readStringUntil('\r'); Serial.println(request); client.flush(); // Match the request для реле 1 if (request.indexOf("/LED=ON") != -1) { digitalWrite(ledPin, LOW); value = HIGH; } if (request.indexOf("/LED=OFF") != -1){ digitalWrite(ledPin, HIGH); value = LOW; } // Match the request для реле 2 if (request.indexOf("/LED2=ON") != -1) { digitalWrite(ledPin2, LOW); value2 = HIGH; } if (request.indexOf("/LED2=OFF") != -1){ digitalWrite(ledPin2, HIGH); value2 = LOW; } // Match the request для реле 3 if (request.indexOf("/LED3=ON") != -1) { digitalWrite(ledPin3, LOW); value3 = HIGH; } if (request.indexOf("/LED3=OFF") != -1){ digitalWrite(ledPin3, HIGH); value3 = LOW; } // Match the request для реле 4 (вытяжка if (request.indexOf("/LED4=ON") != -1) { digitalWrite(ledPin4, LOW); value4 = HIGH; value5 = true; previousMillis2 = currentMillis; } if (request.indexOf("/LED4=OFF") != -1){ digitalWrite(ledPin4, HIGH); value4 = LOW; value5 = false; previousMillis2 = currentMillis; } // Парсим заданное значение влажности для включения вытяжки if (request.indexOf("/HUM=40") != -1) { hummCount = 40; } if (request.indexOf("/HUM=50") != -1) { hummCount = 50; } if (request.indexOf("/HUM=60") != -1){ hummCount = 60; } if (request.indexOf("/HUM=70") != -1){ hummCount = 70; } // Return the response client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println(""); // do not forget this one client.println("<!DOCTYPE HTML>"); client.println("<html>"); client.println("<head><meta charset=\"utf-8\"> <title>ЯСанузел</title></head>"); if (isnan(h) || isnan(t)) { client.println("Не удается считать показания темпеатуры и влажности"); client.println("<br><br>"); } else { client.print("<center><font size=\"15\" color=\"blue\">Влажность "); client.print(h); client.println( "%</font></center>"); client.print("<center><font size=\"15\" color=\"blue\">Средняя влажность: "); client.println(ave.mean()); client.println(" %</font></center>"); client.print("<center><font size=\"15\" color=\"green\">Температура "); client.print(t); client.println(" *C</font></center>"); client.print("<center><font size=\"15\" color=\"green\">Ощущается как "); client.print(hic); client.println(" *C</font></center>"); client.println("<br><br>"); } client.print("<center><font size=\"15\">Свет у раковины чейчас: </font>"); if(value == HIGH) { client.print("<font size=\"15\" color=\"green\">Вкл / </font></center>"); client.println("<center><font size=\"15\"><a href=\"/LED=OFF\">Выключить</a></font></center><br>"); } else { client.print("<font size=\"15\" color=\"brown\">Выкл / </font></center>"); client.println("<center><font size=\"15\"><a href=\"/LED=ON\">Включить</a></font></center><br>"); } client.println("<br><br>"); client.print("<center><font size=\"15\">Свет у туалета сейчас: </font>"); if(value2 == HIGH) { client.print("<font size=\"15\" color=\"green\">Вкл / </font></center>"); client.println("<center><font size=\"15\"><a href=\"/LED2=OFF\">Выключить</a></font></center><br>"); } else { client.print("<font size=\"15\" color=\"brown\">Выкл / </font></center>"); client.println("<center><font size=\"15\"><a href=\"/LED2=ON\">Включить</a></font></center><br>"); } client.println("<br><br>"); client.print("<center><font size=\"15\">Свет над ванной сейчас: </font>"); if(value3 == HIGH) { client.print("<font size=\"15\" color=\"green\">Вкл / </font></center>"); client.println("<center><font size=\"15\"><a href=\"/LED3=OFF\">Выключить</a></font></center><br>"); } else { client.print("<font size=\"15\" color=\"brown\">Выкл / </font></center>"); client.println("<center><font size=\"15\"><a href=\"/LED3=ON\">Включить</a></font></center><br>"); } client.println("<br><br>"); client.print("<center><font size=\"15\">Вытяжка сейчас: </font>"); if(value4 == HIGH) { client.print("<font size=\"15\" color=\"green\">Вкл / </font></center>"); client.println("<center><font size=\"15\"><a href=\"/LED4=OFF\">Выключить</a></font></center><br>"); } else { client.print("<font size=\"15\" color=\"brown\">Выкл / </font></center>"); client.println("<center><font size=\"15\"><a href=\"/LED4=ON\">Включить</a></font></center><br>"); } client.println("<br><br>"); client.print("<center><font size=\"15\">Влажность для включения вытяжки: "); client.print(hummCount); client.println("</font></center>"); client.print ("<center><br><font size=\"15\"><a href=\"/HUM=40\">40</a>"); client.print(" "); client.print("<a href=\"/HUM=50\">50</a>"); client.print(" "); client.print("<a href=\"/HUM=60\">60</a>"); client.print(" "); client.print("<a href=\"/HUM=70\">70</a></font></center><br><br>"); client.print ("<center><br><font size=\"15\"><a href=\"http://"); client.print (WiFi.softAPIP()); client.print ("/\">ОБНОВИТЬ</a>"); client.println("</html>"); delay(1); Serial.println("Client disconnected"); Serial.println(""); }ну правильно, если у вас нет вайфая то вам модуль и не выдает статус подключения
079while(WiFi.status() != WL_CONNECTED) {080delay(500);081lcd.print(".");082}и тут вы тогда просто висите в вечном цикле пока не появится вайфай.
вынесите инициализацию вайфая в отдельную функцию, добавьте выход по таймауту - если ненайден вайфай 2 секунды то выходим и продолжаем работу основной программы
если нет соединения с вайфаем то в главном цикле void loop() периодически (раз в 5 минут или ..) вызывайте вашу функцию инициализации вайфая
или добавьте на крайняк
unsigned long tmp; tmp= millis(); timeout=20000; while( (WiFi.status() != WL_CONNECTED) && (millis() - tmp) < timeout)) { // +выход по тайм аутуВ моем случае контроллер выступает как точка доступа
И она реально видна как отдельная точка доступа, но когда нет рядом роутера, пароля и имя которго контроллер не знает, он висит высвечивая на дисплей точки из строки 81. В случае если закоментировать строки 79-82 и рядом нет роутера, контроллер виден как точка доступа, но подключиться к нему не получается.
Долго мучился, обнаружил в буржунете что необходимо было выбрать режим работы точки доступа, а не только дать комаду на создание.
Вот такая, рабочая контсрукция получилась:
WiFi.mode(WIFI_AP); while (!WiFi.softAP(ssid, password)) { lcd.print("."); return; }Тему можно считать закрытой.