文档章节

WIFI 一键配置原理-ESP8266

机智云开发者
 机智云开发者
发布于 2017/07/27 18:51
字数 1544
阅读 27
收藏 1
点赞 1
评论 0

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
博文 21
码字总数 18301
作品 0
广州
Esp8266学习之旅① 搭建开发环境,开始一个“hellow world”串口打印。

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

xh870189248 ⋅ 2017/09/14 ⋅ 0

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

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

xh870189248 ⋅ 2017/10/11 ⋅ 0

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

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

xh870189248 ⋅ 2017/10/03 ⋅ 0

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

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

xh870189248 ⋅ 2017/09/28 ⋅ 0

51单片机连接ESP8266串口WiFi模块

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

pop1586082213 ⋅ 2017/01/18 ⋅ 0

ESP8266笔记汇总

一、前言 2015年开始,随着ESP8266的横空出现,WiFi SoC大幅降价,市场模组价格一下被拉到了10元档。WiFi由于可直接入网的,在智能家居等行业中成为了应用最广泛的物联网技术。本尊贵为物联网...

iotisan ⋅ 2017/02/03 ⋅ 0

ESP8266模块接线篇 (正常运行&烧录固件)

刚拿到这个模块时,连上线一会能用,一会不能用,开始也一直不知道是什么原因,后来仔细了解了8266的引脚功能,算是解决了这个问题,不仅学会了模块正常工作下的调试,还学会了如何烧录固件,...

CSDNhuaong ⋅ 2017/03/28 ⋅ 0

极客DIY:开源WiFi智能手表制作

如果你喜欢拥有一款属于自己的无线手表,那么请不要错过,相信阅读完这篇文章对你会很有帮助。 硬件规格 ESP8266(32Mbit闪存) MPU-9250(陀螺仪传感器)以及 AK8963(内置磁力计) RV-302...

广岛秋泽 ⋅ 2016/03/29 ⋅ 0

ESP8266WiFi模块接入乐为物联平台

目录 前段时间利用手边的ESP8266小WiFi模块尝试接入了Yeelink平台,今天想尝试把ESP8266接入乐为物联平台。有了上次的基础,所以今天一个上午就初步调通了。下面分享一下我们调试过程。 0.了...

CSDNhuaong ⋅ 02/08 ⋅ 0

micropython for esp8266

esp8266的确是一款超值的芯片,不仅可以是一款WIFI的芯片,可以兼容arduino,还可以使用micropython编程. 价廉物美,小巧灵活.在IOT领域有很好的前景. adafruitproductspinoutstop.jpg 01. firm...

gaoshine ⋅ 2017/12/09 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

JDK1.6和JDK1.7中,Collections.sort的区别,

背景 最近,项目正在集成测试阶段,项目在服务器上运行了一段时间,点击表格的列进行排序的时候,有的列排序正常,有的列在排序的时候,在后台会抛出如下异常,查询到不到数据,而且在另外一...

tsmyk0715 ⋅ 34分钟前 ⋅ 0

spring RESTful

spring RESTful官方文档:http://spring.io/guides/gs/rest-service/ 1. 可以这么去理解RESTful:其实就是web对外提供的一种基于URL、URI的资源供给服务。不是一个原理性知识点。是一个方法论...

BobwithB ⋅ 36分钟前 ⋅ 0

C++ 中命名空间的 5 个常见用法

相信小伙伴们对C++已经非常熟悉,但是对命名空间经常使用到的地方还不是很明白,这篇文章就针对命名空间这一块做了一个叙述。 命名空间在1995年被引入到 c++ 标准中,通常是这样定义的: 命名...

柳猫 ⋅ 39分钟前 ⋅ 0

@Conditional派生注解

@Conditional派生注解(Spring注解版原生的@Conditional作用) 作用:必须是@Conditional指定的条件成立,才给容器中添加组件,配置配里面的所有内容才生效; @Conditional扩展注解 作用(判...

小致dad ⋅ 39分钟前 ⋅ 0

适配器模式

适配器模式 对象适配器 通过私有属性来实现的类适配器 通过继承来实现的接口适配器 通过继承一个默认实现的类实现的

Cobbage ⋅ 43分钟前 ⋅ 0

Java 限流策略

概要 在大数据量高并发访问时,经常会出现服务或接口面对暴涨的请求而不可用的情况,甚至引发连锁反映导致整个系统崩溃。此时你需要使用的技术手段之一就是限流,当请求达到一定的并发数或速...

轨迹_ ⋅ 47分钟前 ⋅ 0

GridView和子View之间的间隙

默认的情况下GridView和子View之间会有一个间隙,原因是GridView为了在子View被选中时在子View周围显示一个框。去掉的办法如下: android:listSelector="#0000" 或 setSelector(new ColorDra...

国仔饼 ⋅ 50分钟前 ⋅ 0

idea插件开发

1 刷新页面要使用多线程 2 调试要使用restart bug 不要去关闭调试的idea 否则再次启动会卡住

林伟琨 ⋅ 50分钟前 ⋅ 0

Java 内存模型

物理机并发处理方案 绝大多数计算任务,并不是单纯依赖 cpu 的计算完成,不可避免需要与内存交互,获取数据。内存要拿到数据,需要和硬盘发生 I/O 操作。计算机存储设备与 cpu 之间的处理速度...

长安一梦 ⋅ 57分钟前 ⋅ 0

思路分析 如何通过反射 给 bean entity 对象 的List 集合属性赋值?

其实 这块 大家 去 看 springmvc 源码 肯定可以找到实现办法。 因为 spirngmvc 的方法 是可以 为 对象 参数里面的 list 属性赋值的。 我也没有看 具体的 mvc 源码实现,我这里只是 写一个 简...

之渊 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部