/** * ESP8266 自动配网 */// https://github.com/tzapu/WiFiManager/#include <WiFiManager.h>// mqtt 参数char mqtt_server[40] ="192.168.0.200";char mqtt_port[6] = "1883";/*============================================== web 配网 下===========================================================*//** * 初始化wifimanager */void initWifi(){ WiFiManager wifiManager; // 创建 wifimanager 对象 wifiManager.resetSettings(); // 重置保存的修改 wifiManager.setConnectTimeout(10); // 配置连接超时 wifiManager.setDebugOutput(true); // 打印调试内容 wifiManager.setMinimumSignalQuality(30); // 设置最小信号强度 //设置AP 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或者密码 退出配置模式 // 自定义参数 WiFiManagerParameter custom_mqtt_server("server", "mqtt server", mqtt_server, 40); WiFiManagerParameter custom_mqtt_port("port", "mqtt port", mqtt_port, 6); wifiManager.addParameter(&custom_mqtt_server); wifiManager.addParameter(&custom_mqtt_port); // 尝试连接网络,失败去到配置页面 if (!wifiManager.autoConnect("ESP8266_AP", "")) { Serial.println("failed to connect and hit timeout"); ESP.reset(); // 重置并重试 delay(1000); } // WiFi连接成功后将通过串口监视器输出连接成功信息 Serial.println("== WIFI CONNECT SUCCESS ! =="); Serial.print("IP Address : "); Serial.println(WiFi.localIP()); // 读取配置页面配置好的信息 strcpy(mqtt_server, custom_mqtt_server.getValue()); strcpy(mqtt_port, custom_mqtt_port.getValue());}// 配置进入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()); // 附加参数 Serial.print("MQTT Server : "); Serial.println(mqtt_server); Serial.print("MQTT Port : "); Serial.println(mqtt_port);}// 设置点击保存的回调void saveConfigCallback(){ Serial.println("Should save config");}//----------------------------------------------- 程序入口 ---------------------------------------------------void setup(){ Serial.begin(9600); // 初始化串口设置 pinMode(LED_BUILTIN, OUTPUT); // 设置 LED_BUILTIN(GPIO-16) 为输出功能 digitalWrite(LED_BUILTIN, HIGH); // 默认关闭 // 自动配网 initWifi();}void loop(){}