【ESP32 手机配网教程】
- 1. 前言
- 2. 先决条件
- 2.1 环境配置
- 2.2 所需零件
- 3.3 硬件连接步骤
- 3. Web热点手动配网
- 3.1. 准备工作
- 3.2. 编译上传程序
- 3.3. 进行手动配网
- 4. BLE无线配网
- 4.1. 准备工作**
- 4.2. 编译上传程序
- 4.3. 使用手机APP进行无线配网
- 5. 总结
1. 前言
欢迎使用ESP32进行WiFi配网!本教程将带领您轻松掌握两种不同的配网方法:一种是通过Web服务器在浏览器中手动输入WiFi信息;另一种则是利用BLE(低功耗蓝牙)进行无线配网。只需按照以下步骤操作,您就能顺利将ESP32连接到家庭WiFi网络,并且下次启动可以自动连接之前连过的wifi。
2. 先决条件
这一次还是采用Arduino编程就会轻松许多开发。这样就可以愉快进行【ESP32 配网教程】🤣🤣🤣
在继续此项目之前,请确保检查以下先决条件。我们将使用 Arduino IDE 对 ESP32/ESP8266 开发板进行编程,因此在继续本教程之前,请确保已在 Arduino IDE 中安装这些开发板。此外,为了实现ESP32S3与SNR9816TTS模块的串口通信,请确保您已经安装了WebServer
和WiFi
库。💕💕💕
2.1 环境配置
- Arduino IDE:下载并安装 Arduino IDE;
- ESP32 开发板库:在 Arduino IDE 中添加 ESP32 支持;
参考博客:【esp32c3配置arduino IDE教程】
为安装过程留出一些时间,具体时间可能因您的互联网连接而异。
2.2 所需零件
要学习本教程,您需要1个ESP32S3 Sense,或者随便一个esp32。
名称 | 端口 | 功能 | 购买地址 |
---|---|---|---|
ESP32S3 Sense | TXGPIO01 RXGPIO02 | 主控 | 官方地址 |
中文版 SNR9816TTS | TXRX RXTX | TTS模块 | 淘宝地址 |
3.3 硬件连接步骤
目前这是我使用的ESP32S3官方硬件👍👍👍(小小的身材有大大的力量)只需要35元加摄像头麦克风79元,后期我会整理相关专栏进行Arduino系统学习😘😘😘。有需要可以购买xiao开发板💕💕💕,SeeedXIAO ESP32S3 Sense硬件购买地址:https://s.click.taobao.com/lekazrt,ESP32S3 Sense直接连接电脑
3. Web热点手动配网
Web热点手动配网是通过esp32生成一个热点AP,用户连接后在配网网页中输入要连接的热点信息,检查无误后发送连接,下次启动可以自动连接之前连过的wifi。
3.1. 准备工作
首先,确保您的ESP32开发板已正确连接至电脑,并在Arduino IDE中安装好所需的库(如WiFi.h
、WebServer.h
)。将教程提供的第一份代码复制粘贴到IDE中。
main.c
#include <WiFi.h>
#include <WebServer.h>
#include "smartconfig.h"
void setup() {
Serial.begin(115200);
if (!AutoConfig()) {
smartConfig();
}
}
void loop() {
WiFiClient client;
const char* host = "www.baidu.com";
const int httpPort = 80;
Serial.print("Connecting to ");
Serial.println(host);
if (!client.connect(host, httpPort)) {
Serial.println("Connection failed");
return;
}
Serial.println("Connected to server successfully");
client.stop();
delay(5000);
}
smartconfig.h
#include <WebServer.h>
#include <WiFi.h>
const char *ssid = "ESP32-AP";
const char *password = ""; // 设置为空字符串表示没有密码
WebServer server(2024);
void handleRoot() {
server.send(200, "text/html", "<h1>ESP32 WiFi配网</h1><p>请输入您的WiFi名称和密码</p><form action='/connect' method='post'><label for='ssid'>WiFi名称:</label><input type='text' id='ssid' name='ssid'><br><label for='password'>WiFi密码:</label><input type='password' id='password' name='password'><br><input type='submit' value='连接'></form>");
}
void handleConnect() {
String ssid = server.arg("ssid");
String password = server.arg("password");
if (ssid != "" && password != "") {
uint8_t count = 0;
WiFi.begin(ssid.c_str(), password.c_str());
while (WiFi.status() != WL_CONNECTED) {
count++;
Serial.println("Connecting to WiFi...");
server.send(200, "text/html", "<h1>连接中...</h1><p>请稍候,ESP32 正在连接到您的WiFi网络。</p>");
if (count >= 60) {
Serial.printf("\r\n-- wifi connect fail! --");
server.send(400, "text/html", "<h1>错误</h1><p>请输入WiFi名称和密码。</p>");
ESP.restart(); // 执行软件重启
}
delay(200);
}
Serial.println("Connected to WiFi");
server.send(200, "text/html", "<h1>连接成功</h1><p>请断开网络。</p>");
}
}
void smartConfig() {
// WiFi.mode(WIFI_AP);
WiFi.softAP(ssid, password);
IPAddress IP = IPAddress(192, 168, 33, 33);
IPAddress gateway(192, 168, 33, 1);
IPAddress subnet(255, 255, 255, 0);
WiFi.softAPConfig(IP, gateway, subnet);
server.on("/", HTTP_GET, handleRoot);
server.on("/connect", HTTP_POST, handleConnect);
server.begin();
Serial.println("WiFi热点已启动");
while (WiFi.status() != WL_CONNECTED) {
server.handleClient();
}
}
//自动配网函数,成功配对以后设备会记忆密码,通电自动连接
bool AutoConfig() {
WiFi.mode(WIFI_AP_STA);
WiFi.begin();
//如果觉得时间太长可改
for (int i = 0; i < 20; i++) {
int wstatus = WiFi.status();
if (wstatus == WL_CONNECTED) {
Serial.println("WIFI SmartConfig Success");
Serial.printf("SSID:%s", WiFi.SSID().c_str());
Serial.printf(", PSW:%s\r\n", WiFi.psk().c_str());
Serial.print("LocalIP:");
Serial.print(WiFi.localIP());
Serial.print(" ,GateIP:");
Serial.println(WiFi.gatewayIP());
return true;
} else {
Serial.print("WIFI AutoConfig Waiting......");
Serial.println(wstatus);
delay(1000);
}
}
Serial.println("WIFI AutoConfig Faild!");
return false;
}
3.2. 编译上传程序
在Arduino IDE中选择正确的ESP32开发板型号和端口,点击“上传”按钮将程序烧录至ESP32。
3.3. 进行手动配网
-
连接ESP32热点:打开手机或电脑的WiFi设置,找到名为“ESP32-AP”的热点并连接(初始密码通常为空)。
-
访问配网页面:在浏览器中输入
http://192.168.33.33:2024
,访问ESP32提供的配网页面。
-
填写WiFi信息:在页面上分别输入您家庭WiFi的名称(SSID)和密码,然后点击“连接”按钮。
-
确认配网结果:如果配网成功,浏览器将显示“连接成功,请断开网络”。这时,请断开与ESP32热点的连接,让ESP32自动连接到您的家庭WiFi。
注意:wifi和密码不能是中文并且不能太长,合起来不能超过20字符
4. BLE无线配网
BLE无线配网是通过esp32通过开启一个低功耗蓝牙模式,用户采用蓝牙调试app连接后输入要连接的热点信息,检查无误后发送连接,下次启动可以自动连接之前连过的wifi。
4.1. 准备工作**
确保ESP32开发板已连接至电脑,且Arduino IDE已安装所需库(如WiFi.h
、WebServer.h
、BLEDevice.h
等)。将教程提供的第二份代码复制粘贴到IDE中。
4.2. 编译上传程序
在Arduino IDE中选择正确的ESP32开发板型号和端口,点击“上传”按钮将程序烧录至ESP32。
4.3. 使用手机APP进行无线配网
- 连接ESP32 BLE设备:打开支持BLE功能的手机,安装并打开一个蓝牙调试的APP(如自开发APP或第三方智能家居APP)。在APP中搜索并连接名为“ESP32 BLE”的设备。
- 输入WiFi信息:在APP中依次填入您家庭WiFi的名称(SSID)和密码
iQOO:12345678
,然后点击“发送”或类似按钮,将信息通过BLE发送至ESP32。 - 确认配网结果:ESP32接收到WiFi信息后,将尝试连接指定的WiFi网络。连接成功后,ESP32会通过BLE发送“ success”消息给APP。
5. 总结
🥳🥳🥳现在,我们在本教程中,您已学会如何使用Web服务器手动配网或利用BLE无线配网为ESP32连接家庭WiFi。🛹🛹🛹从而实现对外部世界进行感知,充分认识这个有机与无机的环境,后期会持续分享esp32跑freertos实用案列🥳🥳🥳科学地合理地进行创作和发挥效益,然后为人类社会发展贡献一点微薄之力。🤣🤣🤣
如果你有任何问题,可以通过下面的二维码加入鹏鹏小分队,期待与你思维的碰撞😘😘😘