71 lines
1.9 KiB
C++
71 lines
1.9 KiB
C++
|
|
#include <WiFiConfig/Config.h>
|
||
|
|
#include <Switch/Switch.h>
|
||
|
|
|
||
|
|
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;
|
||
|
|
}
|