ESP8266 实现在线配网

@zgcwkj  2020年01月07日

分类:

代码 其它 

ESP8266 WIFI 配网,WiFiManager 库的使用

仓库:

https://github.com/tzapu/WiFiManager

代码:

#include <DNSServer.h>
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <WiFiManager.h>

// 初始化wifimanager
void initWifiManager()
{
  WiFiManager wifiManager;                               // 创建 wifimanager 对象
  // wifiManager.resetSettings();                           // 重置保存的修改
  wifiManager.setConnectTimeout(10);                     // 配置连接超时
  wifiManager.setDebugOutput(true);                      // 打印调试内容
  wifiManager.setMinimumSignalQuality(30);               // 设置最小信号强度
  IPAddress _ip = IPAddress(192, 168, 4, 1);             // 设置固定AP信息
  IPAddress _gw = IPAddress(192, 168, 4, 1);             // 设置固定AP信息
  IPAddress _sn = IPAddress(255, 255, 255, 0);           // 设置固定AP信息
  wifiManager.setAPStaticIPConfig(_ip, _gw, _sn);        // 设置固定AP信息
  wifiManager.setAPCallback(configModeCallback);         // 设置进入AP模式的回调
  wifiManager.setSaveConfigCallback(saveConfigCallback); // 设置点击保存的回调
  wifiManager.setBreakAfterConfig(true);                 // 设置 如果配置错误的ssid或者密码 退出配置模式
  wifiManager.setRemoveDuplicateAPs(true);               // 设置过滤重复的AP 默认可以不用调用 这里只是示范
  if (!wifiManager.autoConnect("ESP8266Config", ""))     // 尝试连接网络,失败去到配置页面
  {
    //reset and try again, or maybe put it to deep sleep
    Serial.println("failed to connect and hit timeout");
    ESP.reset(); //重置并重试
    delay(1000);
  }

  Serial.print("IP Address : ");
  Serial.println(WiFi.localIP());
}

// 配置进入AP模式通知回调
void configModeCallback(WiFiManager *myWiFiManager)
{
  Serial.println("Entered config mode"); //进入配置模式
  Serial.print("Wifi Name : ");
  Serial.println("Wifi Name : " + myWiFiManager->getConfigPortalSSID());
  Serial.print("Wifi IP : ");
  Serial.println(WiFi.softAPIP());
}

// 设置点击保存的回调
void saveConfigCallback()
{
  Serial.println("Should save config");
}

说明:

Arduino编程的 setup() 方法内调用 initWifiManager() 方法即可使用,烧写上去即可观看结果



评论已关闭

Top