首页 > 其他分享 >[转]WIFI智能配网 - SmartConfig - Ray Liang - 博客园

[转]WIFI智能配网 - SmartConfig - Ray Liang - 博客园

时间:2022-08-24 20:12:23浏览次数:108  
标签:WiFi ESP8266 博客园 WIFI 配网 println Serial

要开始IoT项目的第一步是什么?当然不是硬件,而是硬件与硬件的连接!即使有各种各样的通信协议没有好的连接方式绝对不行。那外设上没有的屏幕,没有键盘怎末输入密码怎末选择网络?对,这就是WIFI模块最重要解决的问题。

为了解决这个连接问题乐鑫在其SDK中加入了SmartConfig功能,所谓的smartconfig就是手机APP端发送包含WIFI 用户名 WIFI密码的 UDP 广播包或者组播包,智能终端的WIFI芯片可以接收到该UDP包,只要知道UDP的组织形式,就可以通过接收到的UDP包解密 出WIFI 用户名 密码,然后智能硬件 配置受到的WIFI 用户名 密码到指定的WIFI AP 上。

如果将其原理用简洁点的步骤来解说应该分为以下几步:

  1. ESP8266 端调用 WiFi.beginSmartConfig() 等待手机端发出的用户名与密码。
  2. 手机端填写当前网络的密码发送到UDP端口。
  3. ESP8266 自动收到连接信息并调用 WiFi.smartConfigDone() 退出等待。

就这么简单!

ESP8266 的固件代码

Arduino core for ESP8266 的代码示例:

#include <ESP8266WiFi.h>;void setup() {  Serial.begin(115200);  delay(10);  // 必须采用 AP 与 Station 兼容模式  WiFi.mode(WIFI_AP_STA);  delay(500); // 等待配网  WiFi.beginSmartConfig(); // 收到配网信息后ESP8266将自动连接,WiFi.status 状态就会返回:已连接  while (WiFi.status() != WL_CONNECTED) {    delay(500);    Serial.print(".");    // 完成连接,退出配网等待。    Serial.println(WiFi.smartConfigDone());  }  Serial.println("");  Serial.println("WiFi connected");    Serial.println("IP address: ");  Serial.println(WiFi.localIP());}int value = 0;void loop() {}

如果使用NodeMCU Lua 的话代码会更简单一些:

wifi.setmode(wifi.STATION)wifi.startsmart(0,                function(ssid, password)                     print(string.format("Success. SSID:%s ; PASSWORD:%s", ssid, password))                 end )

手机端

将以上的代码写入到ESP8266之后,就要在安卓或者iOS上安装一个由乐鑫提供的ESP-Touch的App将当前WIFI中的用户名和密码告知ESP8266以完成SmartConfig连接。

小结

本文的配网只是用简单代码对原理进行解释,而至于要应用到的实际开发时则需要对App端进行开发。以后还会写一篇在App端的配网方式介绍。

相关资源


---------------------
作者:Ray Liang
来源:CNBLOGS
原文:https://www.cnblogs.com/Ray-liang/p/9786929.html
版权声明:本文为作者原创文章,转载请附上博文链接!
内容解析By:CSDN,CNBLOG博客文章一键转载插件

标签:WiFi,ESP8266,博客园,WIFI,配网,println,Serial
From: https://www.cnblogs.com/sdufe/p/16621409.html

相关文章

  • 2022年入驻博客园
    过去三年,充满奇幻色彩的三年,注定会被历史铭记的三年,必将改变未来的三年。闲来无事,开通博客,随手记录,文笔拙劣,请见谅......
  • esp32 分区表配置 wifi数据
    ESP-ROM:esp32s2-rc4-20191025Build:Oct252019rst:0x1(POWERON),boot:0x8(SPI_FAST_FLASH_BOOT)SPIWP:0xeemode:DIO,clockdiv:1load:0x3ffe6100,len:0x1788load:0x40......
  • 本周四晚19:00知识赋能第七期第3课丨OpenHarmony WiFi扫描仪实现
    8月25日19:00~20:00,第七期知识赋能第三节直播就要开始啦!如果你是缺乏实战经验的学生,如果你是初出茅庐的职场新人,如果你是想参与开源的贡献者,那么本期的直播课将不容错过!通......
  • 博客园设置目录
    1.让博客园博客自动生成章节目录索引 https://www.cnblogs.com/wangqiguo/p/4355032.html#_labelTop效果:使用方法:登录到博客园之后,打开博客园的后台管理,切换到“设置......
  • 博客园做Typora的图床
    新建一个py文件importrequestsfromsysimportargvuploadUrl='https://upload.cnblogs.com/imageuploader/processupload?host=www.cnblogs.com'headers={......
  • IPQ6018 wallys OpenWrt 2.4/5G dual bands 802.11ax Indoor Aluminium alloy mater
    QCN9074WiFi6ECardOpenWRT,IPQ6010,802.11ax,2x22.4G&5GQCN9074WiFiCardIPQ6010,802.11ax,2x22.4G&5G,SupportOpenWRT  MT7915/MT7975/IPQ6000/IP......
  • 博客园美化
    博客园允许用户设置多样化的主题。通过选择皮肤,然后开启JS脚本权限,在设置里面植入跟皮肤配套的CSS、JS,并且禁用默认的CSS,即可实现个性化的界面风格和交互行为。SimpleMe......
  • nodejs 读取博客园自己博客列表 生成全部标题列表
    需求自己的博文有823篇了,但是不能在一页里面显示,本来想通过MetaWeblog读取,后来发现失败了。没办法,自己写个脚本读取吧。之前MetaWeblog读取失败的文章:https://www.c......
  • 博客园主题推荐awescnb-自定义
    后台-设置博客皮肤:Custom页面定制CSS代码#loading{bottom:0;left:0;position:fixed;right:0;top:0;z-index:9999;background-color:......
  • MarkDown 本地图片快速上传到博客园
    到.NETDownloads下载.NET5打开CMD之类的终端,运行dotnettoolinstall--globaldotnet-cnblog安装dotnet-cnblogs-tool到博客后台创建Token,并复制运行......