自学内容网 自学内容网

ESP32-C3实现网页控制板子连接路由器

源码

#include <WiFi.h>
#include <WebServer.h>

// 定义用于存储Wi-Fi凭证的变量
char ssid[32] = "";
char password[64] = "";

// 创建Web服务器实例
WebServer server(80);

// 创建一个Soft AP的SSID和密码
const char* softAP_SSID = "ESP32_Config";
const char* softAP_Password = "12345678";

// 处理根目录请求
void handleRoot() {
  String html = "<h1>Wi-Fi Configuration</h1>"
                "<form action=\"/connect\" method=\"post\">"
                "SSID: <input type=\"text\" name=\"ssid\"><br>"
                "Password: <input type=\"password\" name=\"password\"><br>"
                "<input type=\"submit\" value=\"Connect\">"
                "</form>";
  server.send(200, "text/html", html);
}

// 处理连接请求
void handleConnect() {
  for (uint8_t i = 0; i < server.args(); i++) {
    if (server.argName(i) == "ssid") {
      strcpy(ssid, server.arg(i).c_str());
    }
    if (server.argName(i) == "password") {
      strcpy(password, server.arg(i).c_str());
    }
  }
  server.send(200, "text/html", "<h1>Connecting...</h1>");
  connectToWiFi();
}



// 连接到Wi-Fi网络
void connectToWiFi() {
 // WiFi.softAPdisconnect(true); //将会关闭热点
  WiFi.begin(ssid, password);
  
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
  
  
}

void setup() {
  Serial.begin(115200);
  
  // 创建Soft AP
  WiFi.softAP(softAP_SSID, softAP_Password);
  IPAddress IP = WiFi.softAPIP();
  Serial.println("Soft AP IP address: ");
  Serial.println(IP);

  // 初始化Web服务器
  server.on("/", handleRoot);
  server.on("/connect", HTTP_POST, handleConnect);
  server.begin();
  Serial.println("HTTP server started");
}

void loop() {
  server.handleClient();
}

连接过程

板子上电后,会显示一个热点,连接此热点,打开浏览器输入串口提示的ip。会显示一个网页在网页中输入路由器的账号和密码即可连接到自家的路由器了


原文地址:https://blog.csdn.net/qq_59527512/article/details/142890754

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!