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