ESP8266 arduino 一键配网之后掉电不丢失wifi数据
本文关注掉电丢失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数据相关推荐
- WiFi-ESP8266入门http(3-4)网页一键配网(1若为普通wifi直连 2若为西电网页认证自动网页post请求连接)+网页按钮灯控+MQTT通信...
网页一键配网(1若为普通wifi直连 2若为西电网页认证自动网页post请求连接)+网页按钮灯控+MQTT通信 工程连接:https://github.com/Dongvdong/ESP8266_H ...
- ESP8266_21基于ESP8266的一键配网
ESP8266_01搭建开发环境 ESP8266_02程序的编译与下载 ESP8266_03SDK与Makefile的基本用法 ESP8266_04管脚控制与软件定时器 ESP8266_05 ESP8 ...
- ESP8266微信一键配网smartconfig,esp32可用
ESP8266微信一键配网 第一步 下载程序 微信配网 恢复出厂设置 ESP32 接入 第一步 下载程序 简单配网例程:点击下载 配网并控制LED例程:点击下载 例程下载后,需要使用arduino i ...
- ESP8266 SmartConfig一键配网
ESP8266 SmartConfig一键配网 Wi-Fi 配网,指由外部向 Wi-Fi 设备提供 SSID 和密码(PSW),让 Wi-Fi 设备可以连接指定的热点或路由器,并加入后者所建立的 ...
- esp8266 接收udp广播_ESP8266_21基于ESP8266的一键配网
这一节,说一下一键配网的用法.首先说为什么需要一键配网? 原因很简单,因为设备要上网.那,给那些设备配一个屏幕和一个输入设备行不行? 不是不可以,对那些成本没要求的设备是没问题的.但物联网设备大部分都 ...
- Esp8266进阶之路17 esp8266自研的快速上电开关五次 (开-关为一次) ,无需按键触发则8266进去一键配网模式。(附带Demo)
本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 序号 SDK版本 内容 链接 1 nonos2.0 搭建 ...
- ESP8266开发、ESP8266连接阿里云物联网、天猫精灵控制esp8266、esp8266一键配网、智能家居
ESP8266开发.ESP8266连接阿里云物联网.天猫精灵控制esp8266.esp8266一键配网.智能家居 项目介绍 最近会 将arduino IDE开发ESP8266中一些值得记录得部分写下来 ...
- STM32+ESP8266+MQTT微信小程序SoftAP一键配网接入腾讯物联网平台
STM32+ESP8266+MQTT微信小程序SoftAP一键配网接入腾讯物联网平台 Wi-Fi 配网,指由外部向 Wi-Fi 设备提供 SSID 和密码(PSW),让 Wi-Fi 设备可以连接指 ...
- Arduino ESP32Web配网
Arduino ESP32Web配网 注意:设置的重置wifi信息的按钮定义在GPIO 0上面,上面那种开发板上的该引脚没有引出来,所以如果想不更改此引脚,短接需要用跳线条线来短接到GND,来触发,最 ...
最新文章
- runaway深度递归函数测试及相关汇编指令
- NumPy Essentials 带注释源码 三、NumPy 数组使用
- 2.Riesz定理及其应用
- Zabbix监控可视化
- 80后——后海——烟袋斜街
- Discuz!NT数据库读写分离方案
- CentOS 7 搭建swagger Api文档管理系统
- ie6,ie7,ie8 css bug兼容解决记录
- Manacher算法 - 求最长回文串的利器
- 客户端和服务器之间的信息结构,客户端和服务器之间的信息结构
- tcp/udp/socket 端口映射,转发小工具
- 如何获取集合里面的下标_怎样获取list集合中的最后一个对象中的值
- 扩展欧几里得算法的实现
- 软件测试之-系统测试
- 输入球心三维坐标及球半径求算球体的球面坐标数据(C/C++)
- python redis decode_responses
- 知识 | 四种渲染到底是啥?终于有人讲明白了(下)
- Vue与React的异同
- 【opencv-c++】cv::ximgproc::thinning图像细化算法
- 如何压缩图片大小但不失真
热门文章
- 显示需要使用新应用打开此ms-windows-store链接的解决办法
- matlab雪花图形,koch曲线与koch雪花的MATLAB实现
- shadermaterial 实现大气层效果和辉光效果
- ASEMI肖特基二极管MBR20100FCT图片,MBR20100FCT大小
- 第五届浙江省网络安全竞赛预赛部分wp
- DB2中ALTER TABLE为什么需要REORG操作?
- VMware中调大硬盘容量后,进入Linux虚拟机发现更改未生效
- trados怎么导出html,[转载]关于Trados的组成和界面
- 库克自愿降薪超 40%,年薪减至 4900 万美元
- 电脑蓝屏怎么解决?一键快速解决蓝屏问题