自动配网的实现

利用Arduino IDE自带的自动联网函数smartConfig()

bool AutoConfig()
{WiFi.begin();//如果觉得时间太长可改for (int i = 0; i < 120; i++){int wstatus = WiFi.status();if (wstatus == WL_CONNECTED){Serial.println("WIFI SmartConfig Success");Serial.printf("SSID:%s", WiFi.SSID().c_str());Serial.printf(", PSW:%s\r\n", WiFi.psk().c_str());Serial.print("LocalIP:");Serial.print(WiFi.localIP());Serial.print(" ,GateIP:");Serial.println(WiFi.gatewayIP());return true;}else{Serial.print("WIFI AutoConfig Waiting......");Serial.println(wstatus);delay(1000);}}Serial.println("WIFI AutoConfig Faild!" );return false;
}

如果8266已经配网,那么它会默认连接上一次的网络

如果是第一次配置网络,它会等待120秒钟,寻找内存中是否已配置过网络,确认连接不上网络后,进入智能配网程序

void smartConfig()
{WiFi.mode(WIFI_STA);Serial.println("\r\nWait for Smartconfig等待连接");delay(2000);// 等待配网WiFi.beginSmartConfig();while (1){Serial.print(".");delay(500);if (WiFi.smartConfigDone()){Serial.println("SmartConfig Success");Serial.printf("SSID:%s\r\n", WiFi.SSID().c_str());Serial.printf("PSW:%s\r\n", WiFi.psk().c_str());WiFi.setAutoConnect(true);  // 设置自动连接break;}}Serial.println("");Serial.println("WiFi connected");  Serial.println("IP address: ");Serial.println(WiFi.localIP());
}



这时候我们需要在手机EspTouch(百度搜索下载即可)软件上进行配网,这款软件使用非常简单,自行研究就好


因为我所在的租房经常断电网络中断,导致8266重启后,还没等到无线路由重启完成,连接不上网络的情况下就进入手动配网模式,所以我把等到时间从20秒改为120秒,两分钟足够家庭路由器重启了,修改之后就不用每次断电都要重新插拔设备。

最终的程序我放在下面

#include <ESP8266WiFi.h>void smartConfig()
{WiFi.mode(WIFI_STA);Serial.println("\r\nWait for Smartconfig等待连接");delay(2000);// 等待配网WiFi.beginSmartConfig();while (1){Serial.print(".");delay(500);if (WiFi.smartConfigDone()){Serial.println("SmartConfig Success");Serial.printf("SSID:%s\r\n", WiFi.SSID().c_str());Serial.printf("PSW:%s\r\n", WiFi.psk().c_str());WiFi.setAutoConnect(true);  // 设置自动连接break;}}Serial.println("");Serial.println("WiFi connected");  Serial.println("IP address: ");Serial.println(WiFi.localIP());
}//自动配网函数,成功配对以后设备会记忆密码,通电自动连接
bool AutoConfig()
{WiFi.begin();//如果觉得时间太长可改for (int i = 0; i < 120; i++){int wstatus = WiFi.status();if (wstatus == WL_CONNECTED){Serial.println("WIFI SmartConfig Success");Serial.printf("SSID:%s", WiFi.SSID().c_str());Serial.printf(", PSW:%s\r\n", WiFi.psk().c_str());Serial.print("LocalIP:");Serial.print(WiFi.localIP());Serial.print(" ,GateIP:");Serial.println(WiFi.gatewayIP());return true;}else{Serial.print("WIFI AutoConfig Waiting......");Serial.println(wstatus);delay(1000);}}Serial.println("WIFI AutoConfig Faild!" );return false;
}void setup()
{Serial.begin(9600);if (!AutoConfig()){smartConfig();}}void loop()
{delay(100);}

这样一个自动配网的程序就可以结合物联网平台程序制作智能开关了,关于物联网,大家可以参考我之前的文章,一起学习交流。

小爱同学,小度同时控制灯
如何实现8266程序外网升级
抖音粉丝推送到微信,酷!!
超级简单的内网穿透,重点是免费…
如何开发微信小程序控制ESP8266模块?
怎么在WIN10系统上搭建自己的物联网服务器

ESP8266用EspTouch一键配网,断网自动恢复连接相关推荐

  1. TP-LINK桥接无网断网的解决方法

    本人使用两个TL-WDR7661进行桥接(官方教程),使用内置无线桥接应用,采用默认设置进行桥接,结果经常断网,网速奇慢. 网上各种解决方案,如更改DHCP配置,无线信道,网关,DNS服务器等方法,本 ...

  2. 【错误记录】Android Studio 创建 Flutter 应用被卡住 ( 更新 Flutter 插件 | 命令行创建 | 断网 )

    文章目录 一.报错信息 二.解决方案 一.报错信息 在 Android Studio 中 , 选择 " 菜单栏 / File / New / New Flutter Project &quo ...

  3. 【错误记录】Flutter 设备连接显示 Loading... ( 断网 | 删除 flutter/bin/cache/lockfile 文件 )

    文章目录 一. 报错信息 二. 解决方案 一. 报错信息 手机已经打开开发者模式 , USB 调试一打开 , 但是在 Androud Studio 中的设备一直显示 " Loading &q ...

  4. Python自动化办公实战,上万数据中统计断网次数并计算平均断网时间

    文章目录 一.需求 二.python代码实现 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手. 很多已经做案例的人,却不知道如何去学习更 ...

  5. 断网安装是什么意思_关于ADSL宽带断网掉线的几个处理办法

    ADSL算是一种古老的上网接口方式了,网络对于ADSL定义的内容很多,比较有价值的只有这一句内容:ADSL是一种异步传输模式(ATM).通常ADSL在不影响正常电话通信的情况下可以提供最高3.5Mbp ...

  6. ADSL宽带经常掉线断网故障处理方法

    故障一:路由器拨号经常掉线 PPPoE虚拟拨号用户,使用路由器拨号.使用过程中经常掉线,通常15分钟左右掉线一次,掉线没有规律.移除路由器,使用WINdows XP操作系统自带的拨号软件上网,故障依旧 ...

  7. esp8266 接收udp广播_ESP8266_21基于ESP8266的一键配网

    这一节,说一下一键配网的用法.首先说为什么需要一键配网? 原因很简单,因为设备要上网.那,给那些设备配一个屏幕和一个输入设备行不行? 不是不可以,对那些成本没要求的设备是没问题的.但物联网设备大部分都 ...

  8. ESP8266 SmartConfig一键配网

    ESP8266 SmartConfig一键配网   Wi-Fi 配网,指由外部向 Wi-Fi 设备提供 SSID 和密码(PSW),让 Wi-Fi 设备可以连接指定的热点或路由器,并加入后者所建立的 ...

  9. ESP8266_21基于ESP8266的一键配网

    ESP8266_01搭建开发环境 ESP8266_02程序的编译与下载 ESP8266_03SDK与Makefile的基本用法 ESP8266_04管脚控制与软件定时器 ESP8266_05 ESP8 ...

最新文章

  1. 不平等加剧与问责机制:纽约大学AI Now研究所2018 AI现状报告 | 报告
  2. Java 错误: 找不到或无法加载主类,问题集合
  3. win10 创建python虚拟环境
  4. 小甲鱼python课后答案40讲_小甲鱼Python第二十讲课后习题---021
  5. DinamicX 详解:如何让盲人也能在线购物?
  6. 重邮2021计算机复试,2021复试调剂信息七
  7. SAP Commerce Cloud(原Hybris) impex 里的美元(dollar $)符号
  8. Qt5.9生成dll详细步骤
  9. java单击切换div_[Java教程]点击同一按钮实现div的隐藏与现实切换
  10. svd降维 python案例_SVD(奇异值分解)Python实现
  11. linux 卸载 patch,Oracle RAC 平台下 Patch 安装与卸载 步骤 收藏
  12. maven 插件深入了解
  13. mysql+msi+asc_mysql之select+五种子句的理解
  14. putty怎么拷贝Linux下的日志,linux 下的 putty 如何复制与粘贴?
  15. JQuery树插件——ztree
  16. 推荐系统系列教程之十七:简单却有效的Bandit算法
  17. 南方人才市场档案挂靠告诉你:没有档案会怎样?
  18. 如何获取微信用户openid
  19. 利用TravisCI持续集成自动测试GitHub项目
  20. excel怎么一次性删除所有的批注

热门文章

  1. 菜鸟逆袭记之操作符详解
  2. 如何实现web界面的快照功能
  3. Hadoop生态圈hive应用
  4. Unity vp_Timer VisionTimer使用方法
  5. 计算机正在准备从D盘中回收,文件无法删除 准备再循环
  6. html如何跳转到pdf页面,使用PDF.js在网页显示pdf文件并跳转到指定页码
  7. 玩转GPT--在线文本生成项目[可入坑~科普系列]
  8. Pr 入门教程如何在时间轴上修剪剪辑?
  9. 有意义的警报:防止生产危机的7种必不可少的成分
  10. EXCEL如何实现多级联动下拉菜单