问答

汇集网友智慧,解决技术难题

21ic问答首页 - 求:ap模式下如何获取wifi名称和密码

wifi ESP8266 获取 AP模式 ap

求:ap模式下如何获取wifi名称和密码 赏100家园币

123qwe456r2025-07-11
esp8266AP模式下,esp8266开启热点,手机连接热点后,手机是通过什么协议将WiFi名称和密码传输给esp8266,格式是什么;而esp8266是通过什么协议获取手机传输过来的WiFi名称和密码
回答 +关注 4
18759人浏览 2人回答问题 分享 举报
2 个回答
  • 在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);
      }
      // 连接成功
    }

  • udp就行啊。

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