web配网
设备内做了个小web服务器通过网页交换SSID和PWD。这个方式比较友好,不依赖外部app或小程序,保密性更好,产品可用性更好(苹果等个别手机不能打开配网页面可直接浏览器登陆192.168.4.1),操作方法:
- 连接开放Ap,
- 强制门户配网,
- 或登陆:192.168.4.1,
- 设置SSID,password,
- 连接网络,
- 关闭配网AP。
- 长按GPIO0 3秒以上清除配网信息,
- 重新配网。
web配网代码
#include <WiFi.h>
#include <DNSServer.h>
#include <WebServer.h>
#include <ESPmDNS.h> //用于设备域名 MDNS.begin("esp32")
#include <esp_wifi.h> //用于esp_wifi_restore() 删除保存的wifi信息
//************************************AP配网***********************************************
const byte DNS_PORT = 53; //设置DNS端口号
const int webPort = 80; //设置Web端口号
const int resetPin = 0; //设置重置按键引脚,用于删除WiFi信息
const int LED = 2; //设置LED引脚
const char* AP_SSID = "ESP32-4_1"; //设置AP热点名称
//const char* AP_PASS = ""; //设置AP热点密码
const char* HOST_NAME = "MY_ESP32"; //设置设备名
String scanNetworksID = ""; //用于储存扫描到的WiFi ID
int connectTimeOut_s = 15; //WiFi连接超时时间,单位秒
IPAddress apIP(192, 168, 4, 1); //设置AP的IP地址
String wifi_ssid = ""; //暂时存储wifi账号密码
String wifi_pass = ""; //暂时存储wifi账号密码
//定义根目录首页网页HTML源代码
#define ROOT_HTML "<!DOCTYPE html><html><head><title>WIFI Config by WWW.BR1000.CN</title><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"></head><style type=\"text/css\">.input{display: block; margin-top: 10px;}.input span{width: 100px; float: left; float: left; height: 36px; line-height: 36px;}.input input{height: 30px;width: 200px;}.btn{width: 120px; height: 35px; background-color: #000000; border:0px; color:#ffffff; margin-top:15px; margin-left:100px;}</style><body><form method=\"POST\" action=\"configwifi\"><label class=\"input\"