WIFI智能配网 - SmartConfig

要开始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端的配网方式介绍。

相关资源

原文地址:https://www.cnblogs.com/Ray-liang/p/9786929.html

时间: 2024-10-02 22:36:15

WIFI智能配网 - SmartConfig的相关文章

(十七)物联网之 WIFI 一键配网 smartConfig 浅析

一.背景 物联网时代技术开始规模化服务于民众,方便快捷显得尤为重要,WIFI 直连便是一个典型案例. 目前主流的 WIFI 配置模式有以下 2 种: 1.智能硬件处于 AP 模式(类似路由器,组成局域网),手机用于 STA 模式 手机连接到处于 AP 模式的智能硬件后组成局域网,手机发送需要连接路由的 SSID 及密码至智能硬件,智能硬件主动去连接指定路由后,完成配网 2.一键配网(smartConfig)模式 智能硬件处于混杂模式下,监听网络中的所有报文;手机 APP 将 SSID 和密码编码

3-(微信小程序篇)WiFi模块配网以后利用小程序绑定,控制设备,一次只能绑定控制一个设备

https://www.cnblogs.com/yangfengwu/p/11623750.html 一,实现的功能描述 STM32通过AT指令控制模块配网(支持SmartConfig和Airkiss),配网以后设备进入绑定状态(60S超时),在设备绑定超时时间内打开小程序即可绑定设备,然后实现控制功能. 二,功能测试 1,由于会不停的更新小程序代码,小程序发布又需要时间审核,我就不发布小程序,所以大家先按照以下方式运行小程序(熟悉一下流程) 1.1 打开小程序工程代码 1.2 选择真机调试,选

26-ESP8266 SDK开发基础入门篇--编写WIFI模块 SmartConfig/Airkiss 一键配网

https://www.cnblogs.com/yangfengwu/p/11427504.html SmartConfig/Airkiss 配网需要APP/微信公众号,这节大家先使用我做好的APP/微信公众号 APP下载: https://www.cnblogs.com/yangfengwu/p/11249674.html 微信公众号: 扫描这个二维码关注我的公众号      其余的步骤等写完8266的配网程序,在下面演示. 如果想自己实现微信绑定可以看↓ (注:配置过程和源码全部是公开的,大

10-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案微信小程序篇(微信配网配置_Airkiss步骤_1)

https://www.cnblogs.com/yangfengwu/p/11066036.html 如果提交失败多提交两次,只要上一节可以,,这一节一定可以的 如果没有设备 咱就测试一下扫描二维码配网,下一节咱再看怎么嵌入到公众号里面,点击按钮实现 修改咱的程序 所有LUA开发的WIFI程序,配网的地方 以升级篇为例: (其它地方都是这样修改) 纯AT指令实现的不需要修改 稍等有点事情 原文地址:https://www.cnblogs.com/yangfengwu/p/11066472.htm

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

网页一键配网(1若为普通wifi直连  2若为西电网页认证自动网页post请求连接)+网页按钮灯控+MQTT通信 工程连接:https://github.com/Dongvdong/ESP8266_HTTP_WEB_MQTT/tree/master/MQTT_http 主要目标 网页动态配网 网页认证模式的WIFI也能让ESP8266上网 未来完善: 1 加入网页判断,若为网页认证WIFI需要手动文本框输入 学号和密码(简单) 修改html加入两个文本框和一个判断,用于返回消息 2 现在固定测试

7-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案微信小程序篇(微信配网_申请微信公众号)

https://www.cnblogs.com/yangfengwu/p/11042266.html 老是学习枯燥乏味的东西容易烦躁,所以呢,接着这几节咱实现下微信配网 为了让所有人都可以都可以使用,咱就用微信订阅号实现(里面提供测试版服务号),实质上只有服务号和微信企业号才具有此功能. 咱呢注册登录订阅号 https://mp.weixin.qq.com/ 原文地址:https://www.cnblogs.com/yangfengwu/p/11062034.html

中国智能家居网受到大家喜爱的原因有很多

broadlink让大家去了解智能家居的不同特色和作用,这个平台的建立也帮助了很多人更加有效的帮助很多人去了解智能家居的发展和魅力.我们在这个平台中也能够让更多人了解到智能化的家居为大家带来的效果和独特作用. 中国智能家居网让更多的人开始了解智能家居,现代社会中智能时代已经来临.而我们也需要更好的去掌握智能家居带给我们生活的特色和贡献.从中更加深入的去了解这个现代社会的产物是怎样的.深入的去感受这个平台给予我们的不同特色,从中掌握到它的独特意义,多个方面去感受它的风格. 在这个网站上同时也搭建了

WiFi智能小车

WiFi智能小车是利用本APP作为控制端,通过手机连接wifi模块(路由器)以获得wifi信号,同时车载也连接wifi模块以获得和手机相同的IP地址,实现手机和小车的连接,然后利用PC或手机上的控制软件以wifi网络信号为载体发送相关信号,wifi模块接收PC或手机端发送来的相关信号并分析转换成TTL电平信号,然后发送给单片机,单片机接收到的电平信号处理.分析.计算,转化成控制指令并发送给电机驱动模块以实现小车的前进.后退.左拐.右拐以及实时视频传输等功能,从而达到控制小车和视频监控.本软件视频

Mac系统之 ---- 解决Mac OS X 10.8 休眠 WiFi 自动断网问题

自从OS X 10.8 发布一来一直有个小问题就是长时间不使用的时候系统会自动进入休眠状态并且断开wifi网络连接.这样会造成下载的数据暂停等. 有些小不方便. 经过搜索, 可以在终端内输入如下命令暂停这个休眠. 新版的支持一个Standby的模式的,在GUI界面是看不见的,也没有休眠的设置,所以需要使用命令. sudo pmset -a standby 0 sleep 20 hibernatemode 3 networkoversleep 0 force 要恢复只需要在终端输入 sudo pm