ESP8266 微信一键配网教程:代码详解和实现步骤
要实现 ESP8266 通过微信一键配网,需要使用微信公众号和 ESP8266 的 SmartConfig 功能。下面是一个示例代码:
-
在微信公众号中创建一个菜单,菜单上有一个'配置网络'的按钮。
-
ESP8266 上运行以下代码:
#include <ESP8266WiFi.h>
#include <WiFiManager.h>
#include <ESP8266WiFiMulti.h>
#include <WiFiUdp.h>
#include <ESP8266mDNS.h>
#include <ESP8266WiFiSmartConfig.h>
WiFiManager wifiManager;
// SmartConfig 回调函数
void smartConfigCallback() {
Serial.println('SmartConfig 回调函数');
digitalWrite(LED_BUILTIN, LOW);
}
void setup() {
Serial.begin(115200);
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, HIGH);
// 初始化 WiFi
WiFi.mode(WIFI_STA);
WiFi.disconnect();
// 开启 SmartConfig
WiFi.beginSmartConfig();
Serial.println('开始 SmartConfig');
// 设置 SmartConfig 回调函数
WiFi.onSmartConfigDone(smartConfigCallback);
}
void loop() {
if (WiFi.smartConfigDone()) {
Serial.println('SmartConfig 完成');
digitalWrite(LED_BUILTIN, HIGH);
// 获取 WiFi 名称和密码
String ssid = WiFi.SSID();
String password = WiFi.psk();
// 连接 WiFi
WiFi.begin(ssid, password);
// 等待 WiFi 连接
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println('等待 WiFi 连接');
}
// 连接成功后的操作
Serial.println('WiFi 连接成功');
Serial.print('IP 地址:');
Serial.println(WiFi.localIP());
}
}
- 在微信公众号中添加指令处理代码,处理用户点击'配置网络'按钮时发送的指令。指令处理代码中调用 ESP8266 的 SmartConfig 功能:
#include <ESP8266WiFiSmartConfig.h>
// SmartConfig 回调函数
void smartConfigCallback() {
Serial.println('SmartConfig 回调函数');
digitalWrite(LED_BUILTIN, LOW);
}
// 处理'配置网络'指令
void handleConfigureNetworkCommand() {
Serial.println('处理'配置网络'指令');
// 开启 SmartConfig
WiFi.beginSmartConfig();
Serial.println('开始 SmartConfig');
// 设置 SmartConfig 回调函数
WiFi.onSmartConfigDone(smartConfigCallback);
}
这样,当用户点击'配置网络'按钮时,微信公众号会发送一个指令到 ESP8266,ESP8266 会开启 SmartConfig 功能,等待用户在微信中输入 WiFi 名称和密码。当用户输入完毕后,ESP8266 会自动连接 WiFi。
原文地址: https://www.cveoy.top/t/topic/mFH0 著作权归作者所有。请勿转载和采集!