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/beI4 著作权归作者所有。请勿转载和采集!