求:ap模式下如何获取wifi名称和密码

[复制链接]
17576|2
 楼主| 123qwe456r 发表于 2025-7-11 15:48 | 显示全部楼层 |阅读模式
esp8266AP模式下,esp8266开启热点,手机连接热点后,手机是通过什么协议将WiFi名称和密码传输给esp8266,格式是什么;而esp8266是通过什么协议获取手机传输过来的WiFi名称和密码
mark301600 发表于 2025-9-30 14:11 | 显示全部楼层

求:ap模式下如何获取wifi名称和密码

udp就行啊。
sunjd 发表于 2025-10-27 17:26 | 显示全部楼层

求:ap模式下如何获取wifi名称和密码

在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);
  }
  // 连接成功
}

您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

18

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部