ESPUI + captive portal
Добавлено: 28.04.2020{, 09:33}
Здравствуйте, помогите пожалуйста разобраться. хотел реализовать captive portal, как в библиотеки wifimanager, только чтобы вместо страницы настройки кидало на страницу созданной библиотекой ESPUI. Я думаю это будет удобно, проще чем вводить ip адрес. captive portal перенаправляет все запросы на главную страницу сервера. Нашёл скетч разработчика ESPUI : https://github.com/s00500/ESPUI/blob/87 ... ui/gui.ino
но компилироваться не хочет, библиотеки переставлял, IDE менял , все равно. Если разобраться можно и блок написать. Подскажите куда копать. Спасибо
З.Ы. вот еще статью нашёл, но здесь веб- страница рисуется в HTML в скетче: https://www.instructables.com/id/Class- ... g-NodeMCU/
вот простейший скетч
но компилироваться не хочет, библиотеки переставлял, IDE менял , все равно. Если разобраться можно и блок написать. Подскажите куда копать. Спасибо
З.Ы. вот еще статью нашёл, но здесь веб- страница рисуется в HTML в скетче: https://www.instructables.com/id/Class- ... g-NodeMCU/
вот простейший скетч
Код: Выделить всё
#include <ESP8266WiFi.h>
#include <DNSServer.h>
#include <ESP8266WebServer.h>
const byte DNS_PORT = 53;
IPAddress apIP(192, 168, 1, 1);
DNSServer dnsServer;
ESP8266WebServer webServer(80);
String responseHTML = ""
"<!DOCTYPE html><html><head><title>CaptivePortal</title></head><body>"
"<h1>Hello World!</h1><p>This is a captive portal example. All requests will "
"be redirected here.</p></body></html>";
void setup() {
WiFi.mode(WIFI_AP);
WiFi.softAPConfig(apIP, apIP, IPAddress(255, 255, 255, 0));
WiFi.softAP("DNSServer CaptivePortal example");
// if DNSServer is started with "*" for domain name, it will reply with
// provided IP to all DNS request
dnsServer.start(DNS_PORT, "*", apIP);
// replay to all requests with same HTML
webServer.onNotFound([]() {
webServer.send(200, "text/html", responseHTML);
});
webServer.begin();
}
void loop() {
dnsServer.processNextRequest();