Написал сервер для esp8266. Другие есп цепляются к ней и передают данные на него. Но вот незадача... на телефоне redmi 5a (android 9) когда подключается больше 4х клиентов возникает ошибка "точка доступа переполнена". С чем это может быть связано?
Код:
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
IPAddress apIP(192, 168, 10, 10);
ESP8266WebServer webServer(80);
String datawifi="";
String tz[51];
String ztz[51];
unsigned long timeStamp[51];
byte kckt=50;
void setup() {
WiFi.mode(WIFI_AP);
WiFi.softAPConfig(apIP, apIP, IPAddress(255, 255, 255, 0));
WiFi.softAP("VOLGODON");
http_init();
}
void loop() {
webServer.handleClient();
}
void http_init() {
webServer.onNotFound([]() {
webServer.on("/index.htm", indexRoot);
});
webServer.on("/", indexRoot);
webServer.on("/index.htm", indexRoot);
webServer.on("/index.html", indexRoot);
webServer.on("/data.htm", dataRoot);
webServer.begin();
}
void dataRoot() {
byte n=webServer.arg("N").toInt();
if (n>0 && n<=kckt){
tz[n]=webServer.arg("T");
ztz[n]=webServer.arg("Z");
timeStamp[n]=millis()/1000;
webServer.send(200, "text/plain", "ok");
}
else webServer.send(200, "text/plain", "error");
}
void indexRoot() {
datawifi = "<!DOCTYPE html><html lang='ru-RU'><head><meta charset='UTF-8'/><meta http-equiv='refresh' content='5'/></head><body>";
int r=0;
for (byte j = 1; j <= kckt; j++){
r=(millis()/1000) - timeStamp[j];
if (r<60) {
datawifi+="<h2>Температура "+String(j)+" ["+ tz[j]+"] </h2>";
datawifi+="<h2>В настройках ["+ ztz[j]+"] </h2><hr>";
}
}
datawifi+="</body></html>";
webServer.send(200, "text/html", datawifi);
}