#include #include Switch 状态指示灯_类(D4,0,LOW); IPAddress staticIP(192, 168, 1, 22); IPAddress gateway(192, 168, 1, 1); IPAddress subnet(255, 255, 255, 0); WiFiConfig::WiFiConfig(int 自动连接等待时间):等待时间(自动连接等待时间) { } WiFiConfig::~WiFiConfig() { } /** * 一键配网关键代码 */ void WiFiConfig::智能配网() { WiFi.mode(WIFI_STA); 串口调试("\n正在执行智能配网"); 延时(500); // 等待配网 WiFi.beginSmartConfig(); 无限循环 { 串口调试("."); delay(500); 状态指示灯_类.切换状态(); if (WiFi.smartConfigDone()) { 串口调试("\n配网完成!WiFi名称:[%s] WiFi密码:[%s]\n",WiFi.SSID().c_str(),WiFi.psk()); WiFi.setAutoConnect(true); // 设置自动连接 break; } } 串口调试("\nWiFi连接成功,IP地址:[%s],Mac地址:[%s]\n",WiFi.localIP().toString().c_str(),WiFi.macAddress().c_str()); } boolean WiFiConfig::自动联网() { WiFi.begin(); //如果觉得时间太长可改 for (int i = 0; i < 等待时间; i++) { int 状态 = WiFi.status(); 状态指示灯_类.切换状态(); if (状态 == WL_CONNECTED) { //WiFi.config(staticIP,gateway,subnet); 串口调试("\nWiFi连接成功,WiFi名称:[%s] WiFi密码:[%s],IP地址:[%s],网关:[%s],Mac地址:[%s]\n", WiFi.SSID().c_str(), WiFi.psk(), WiFi.localIP().toString().c_str(), WiFi.gatewayIP().toString().c_str(), WiFi.macAddress().c_str()); return true; } else { 串口调试("\nWiFi自动配置,超时等待:[%d/%d]秒",i,等待时间); delay(1000); } } 串口打印换行("WiFi自动配置失败!" ); return false; }