在ESP8266 AP模式下,手机通过以下方式将WiFi信息传输给ESP8266:
主要传输协议和方式
1. HTTP协议(最常见)
手机通过HTTP POST请求将WiFi信息发送给ESP8266:
POST /configure HTTP/1.1
Host: 192.168.4.1
Content-Type: application/x-www-form-urlencoded
ssid=MyWiFi&password=MyPassword
POST /wifi-config HTTP/1.1
Host: 192.168.4.1
Content-Type: application/json
{
"ssid": "MyWiFi",
"password": "MyPassword"
}
ESP8266的处理代码示例
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
ESP8266WebServer server(80);
void setup() {
WiFi.mode(WIFI_AP);
WiFi.softAP("ESP8266-Config", "");
// 设置HTTP路由
server.on("/", handleRoot);
server.on("/configure", handleConfigure);
server.begin();
}
void handleConfigure() {
if (server.method() == HTTP_POST) {
String ssid = server.arg("ssid");
String password = server.arg("password");
// 保存WiFi配置
saveWiFiConfig(ssid, password);
server.send(200, "text/plain", "WiFi配置已保存");
// 尝试连接到新WiFi
connectToWiFi(ssid, password);
}
}
void connectToWiFi(String ssid, String password) {
WiFi.mode(WIFI_STA);
WiFi.begin(ssid.c_str(), password.c_str());
while (WiFi.status() != WL_CONNECTED) {
delay(500);
}
// 连接成功
}
|