本文关注掉电丢失wifi数据和不丢失数据的异同点。

一、软硬件

所用硬件如下图,软件是arduino 1.8.9。

二、代码分析

代码如下:

void smartConfig()
{WiFi.mode(WIFI_STA);Serial.println("\r\nWait for Smartconfig...");WiFi.beginSmartConfig();while (1){Serial.print(".");digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)delay(1000);                       // wait for a seconddigitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOWdelay(1000);                       // wait for a secondif (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;}}
}

WiFi.setAutoConnect(true);  // 设置自动连接,这个语句是最重要的语句。如果设置了自动连接属性为true,那么就可以让wifi的数据自动保存在esp8266模块的flash内部。

当然,在smartconfig函数里面设置自动保存还是不够的,这只是一个函数,没有人调用它,它是不会自动工作的,调用它的代码在setup里面。

void setup() {Serial.begin(115200);delay(10);pinMode(LED_BUILTIN, OUTPUT);// Connect to WiFi networkSerial.println();Serial.println();Serial.print("Connecting to ");//smartConfig();不再直接上来就配网一次,而是判断一下,以前是否联网了,如果联网,那么就不用再次配网。if (!autoConfig()){Serial.println("Start module");smartConfig();}delay(500);Serial.println("");Serial.println("WiFi connected");}

看语句:也就是说,如果没有已经自动配网,那么就自动配网。就是这么简单。

 if (!autoConfig())

如果你在调试的时候,想断电重启就想寻找wifi开始配网(不要笑,有的时候调试时,是需要这样的)。

那么就将这个判断语句注释掉吧。每次都会让你配网。

三、深层分析

下面分析一下esp8266掉电不易失wifi数据的基本原理。

首先查看这个setAutoConnect函数在哪里,在arduino文件夹中搜索这个名字。找到在这个位置。

然后看函数原型,这个函数里面其实调用了esp8266 SDK内部的函数。

这个文件里面有wifi的参数。注意,这个文件是arduino编程环境下的库函数内容。ESP8266WiFiSTA.cpp文件。但是调用的函数wifi_station_set_config,却是在ESP8266 SDK一系列文件内部的。

SDK参考在哪里?官方手册上有SDK链接如下:

https://www.espressif.com/sites/default/files/documentation/2c-esp8266_non_os_sdk_api_reference_cn.pdf

可以通过搜索看到这个函数的说明。

还有其他的函数,都可以通过这里来找到说明。为了详细说明是怎么操作的,绘制一个图片如下:

初步分析到此,仅供参考。

进一步讨论

ESP8266 arduino 一键配网之后掉电不丢失wifi数据相关推荐

  1. WiFi-ESP8266入门http(3-4)网页一键配网(1若为普通wifi直连 2若为西电网页认证自动网页post请求连接)+网页按钮灯控+MQTT通信...

    网页一键配网(1若为普通wifi直连  2若为西电网页认证自动网页post请求连接)+网页按钮灯控+MQTT通信 工程连接:https://github.com/Dongvdong/ESP8266_H ...

  2. ESP8266_21基于ESP8266的一键配网

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

  3. ESP8266微信一键配网smartconfig,esp32可用

    ESP8266微信一键配网 第一步 下载程序 微信配网 恢复出厂设置 ESP32 接入 第一步 下载程序 简单配网例程:点击下载 配网并控制LED例程:点击下载 例程下载后,需要使用arduino i ...

  4. ESP8266 SmartConfig一键配网

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

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

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

  6. Esp8266进阶之路17 esp8266自研的快速上电开关五次 (开-关为一次) ,无需按键触发则8266进去一键配网模式。(附带Demo)

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 序号 SDK版本 内容 链接 1 nonos2.0 搭建 ...

  7. ESP8266开发、ESP8266连接阿里云物联网、天猫精灵控制esp8266、esp8266一键配网、智能家居

    ESP8266开发.ESP8266连接阿里云物联网.天猫精灵控制esp8266.esp8266一键配网.智能家居 项目介绍 最近会 将arduino IDE开发ESP8266中一些值得记录得部分写下来 ...

  8. STM32+ESP8266+MQTT微信小程序SoftAP一键配网接入腾讯物联网平台

    STM32+ESP8266+MQTT微信小程序SoftAP一键配网接入腾讯物联网平台   Wi-Fi 配网,指由外部向 Wi-Fi 设备提供 SSID 和密码(PSW),让 Wi-Fi 设备可以连接指 ...

  9. Arduino ESP32Web配网

    Arduino ESP32Web配网 注意:设置的重置wifi信息的按钮定义在GPIO 0上面,上面那种开发板上的该引脚没有引出来,所以如果想不更改此引脚,短接需要用跳线条线来短接到GND,来触发,最 ...

最新文章

  1. runaway深度递归函数测试及相关汇编指令
  2. NumPy Essentials 带注释源码 三、NumPy 数组使用
  3. 2.Riesz定理及其应用
  4. Zabbix监控可视化
  5. 80后——后海——烟袋斜街
  6. Discuz!NT数据库读写分离方案
  7. CentOS 7 搭建swagger Api文档管理系统
  8. ie6,ie7,ie8 css bug兼容解决记录
  9. Manacher算法 - 求最长回文串的利器
  10. 客户端和服务器之间的信息结构,客户端和服务器之间的信息结构
  11. tcp/udp/socket 端口映射,转发小工具
  12. 如何获取集合里面的下标_怎样获取list集合中的最后一个对象中的值
  13. 扩展欧几里得算法的实现
  14. 软件测试之-系统测试
  15. 输入球心三维坐标及球半径求算球体的球面坐标数据(C/C++)
  16. python redis decode_responses
  17. 知识 | 四种渲染到底是啥?终于有人讲明白了(下)
  18. Vue与React的异同
  19. 【opencv-c++】cv::ximgproc::thinning图像细化算法
  20. 如何压缩图片大小但不失真

热门文章

  1. 显示需要使用新应用打开此ms-windows-store链接的解决办法
  2. matlab雪花图形,koch曲线与koch雪花的MATLAB实现
  3. shadermaterial 实现大气层效果和辉光效果
  4. ASEMI肖特基二极管MBR20100FCT图片,MBR20100FCT大小
  5. 第五届浙江省网络安全竞赛预赛部分wp
  6. DB2中ALTER TABLE为什么需要REORG操作?
  7. VMware中调大硬盘容量后,进入Linux虚拟机发现更改未生效
  8. trados怎么导出html,[转载]关于Trados的组成和界面
  9. 库克自愿降薪超 40%,年薪减至 4900 万美元
  10. 电脑蓝屏怎么解决?一键快速解决蓝屏问题