要实现 ESP8266 通过微信一键配网,需要使用微信公众号和 ESP8266 的 SmartConfig 功能。下面是一个示例代码:

  1. 在微信公众号中创建一个菜单,菜单上有一个'配置网络'的按钮。

  2. 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());
  }
}
  1. 在微信公众号中添加指令处理代码,处理用户点击'配置网络'按钮时发送的指令。指令处理代码中调用 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。

ESP8266 微信一键配网教程:代码详解和实现步骤

原文地址: https://www.cveoy.top/t/topic/mFH0 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录