开源硬件
Arduino
客制化键盘
Arduino_寄存器
二进制运算
寄存器+二进制运算
LCD-逐字显示
密码依次录入
等待输入
WiFi Duck(无线击键注入攻击平台)
WiFi Duc-New
WiFi Duc-Old
蓝牙无线烧录
ESP8266
ESP-NOW
ESP8266看门狗
ESP8266-休眠模式
ESP01/01S使用说明
WIFI_SD
ESP8266-Web服务器
ESP8266-WIFI自动认证
ESP32
ESP32 ADC2
ESP32_PWM
ESP32_CAM
ESP32 小坦克
ESP32_限电保护
Arduino IDE 添加 ESP32
ESP32-iPhone BLE攻击
STM32
STM32F103-虚拟键盘
STC
STC8G1K08(A)
树莓派-触摸屏
Arduino IDE
Arduino_自制库
Arduino库收集
常见排序算法
冒泡排序
选择排序
插入排序
希尔排序
归并排序
快速排序
计数排序
预处理
millis(运行时长)
Arduino IDE 2.X-修改数据位置
Mixly
Mixly安装教程
Mixly 模块介绍
Mixly-添加ESP32CAM支持
Mixly-库定制工具
模块
4G模块连接物联网
GPS模块
语音模块(JQ8900)
安信可VB语音识别
28BYJ-48(5V步进)
FreeRTOS
FreeRTOS-多任务基础
FreeRTOS-任务共享全局变量
FreeRTOS-多核多任务
FreeRTOS-MUTEX
FreeRTOS-常规程序改多任务
FreeRTOS-定时器
LaserGRBL(激光雕刻)
LaserGRBL-GRBL
GRBL-CNC Shield v4
MicroPython
Scratch
Wokwi(在线仿真)
html转无符号数组
待做开源项目
本文档使用 MrDoc 发布
-
+
首页
ESP8266-WIFI自动认证
实现类似与WiFi认证,连接上WIFI后自动打开进行验证 下方为连接后自动打开认证页面(只是普通页面),本质就是手机连接后会自动访问网络进行判断网络是否可用,使用DNS把所有连接都劫持到本设备的认证页面上,以实现自动开启认证 在此基础上修改可以实现未连接wifi开启热点,连接热点后自动打开配网页面,但要注意的是尽量不要加载太过于复杂的页面,速度较慢 ```C++ #include <ESP8266WiFi.h> #include <ESP8266WebServer.h> #include <DNSServer.h> const char* ssid = "ESP8266-AP"; // WiFi名称 const char* password = "password"; // WiFi密码 ESP8266WebServer server(80); // Web服务运行的端口 DNSServer dnsServer; // 创建一个DNS实例 IPAddress ip(192, 168, 233, 1); // 你ESP8266的IP地址 IPAddress gateway(192, 168, 233, 1); // 你的网关 IPAddress subnet(255, 255, 255, 0); // 你的子网掩码 // 配置页面 void handleRoot() { // 返回认证页面的HTML代码 String html = "<html><body><h1>欢迎来到 ESP8266 门户网站</h1></body></html>"; server.send(200, "text/html;charset=utf-8", html); } void setup() { Serial.begin(115200); WiFi.mode(WIFI_AP); // AP模式 WiFi.softAPConfig(ip, gateway, subnet); // 配置AP // WiFi.softAP(ssid,password); // 创建AP_有密码 WiFi.softAP(ssid); // 创建AP_无密码 dnsServer.setErrorReplyCode(DNSReplyCode::NoError); // 始终返回没有错误的响应 dnsServer.start(53, "*", WiFi.softAPIP()); // 转发任何(*)请求到当前设备的IP(自己),53(DNS服务端口) // 注意,下方on和onNotFound使用的页面必须要一致,不然无法打开认证页面 // server.on("/",handleRoot); // 使用下面这种格式自动打开认证页面更加迅速 server.on("/", HTTP_GET, handleRoot); // 设置主页回调函数 server.onNotFound(handleRoot); // 设置无法响应的http请求的回调函数 server.begin(); // 启动Web } void loop() { dnsServer.processNextRequest(); // 服务器等待DNS请求并进行处理 server.handleClient(); // 当有新的客户端尝试连接到服务器时进行调用 } ```
造物者W
2023年11月3日 23:16
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码