WIFI 配网方式(AP模式、Smartconfig等模式)

参考:智能设备WIFI配网方式汇总
地址:https://blog.csdn.net/beauytlife_1985/article/details/87539350?spm=1001.2014.3001.5502
参考:Wifi设备配网问题
地址:https://blog.csdn.net/boazheng/article/details/90906184

目录

  • 概述
  • 配网与绑定概念
  • Wifi配网方式介绍
    • 一键配网(Smartconfig)
    • 设备热点配网(Soft AP)
    • 蓝牙配网(Bleconfig)
    • 零配(Zeroconfig)
    • 手机热点配网(Phone as AP)
    • 路由器配网(WPS)
  • 总结

概述

当前很多物联网设备大都无没有人机交互界面,也就没有像手机或者PC那样有wifi的配置界面,汇总了一下设备入网的方式大概有如下几种:

1:AP 模式流程如下

  1. 将Dev手动设置为AP模式,手机为正常的station模式
  2. 手机连接到Dev的AP热点,组成局域网,手机将WiFi的SSID和密码发送给Dev
  3. Dev收到WiFi的SSID和密码后,切换回station模式,连接WiFi

在这里插入图片描述

2:一键配置模式:即为通常所说的smartconfig 或者smartlink具体流程如下

  1. 手机正常连接家庭局域网WiFi
  2. 通过Dev按钮将设备的WiFi模块设置到smartconfig模式,开始监听局域网广播数据包
  3. 登录设备对应的APP,输入WiFi的SSID和密码(APP如果有第三方开发需要WiFi模组提供相关封装好的SDK)
  4. APP将WiFi的SSID和密码封装为UDP数据包,并在局域网内广播
  5. Dev收到该数据包后,解析出WiFi相关信息
  6. 手机正常入网获取到IP地址,将IP地址Mac地址等信息返回给APP

3:蓝牙模式:Dev启动开启蓝牙,APP连接设备蓝牙,输入WiFi的SSID和密码并发送给Dev
4:语音方式:Dev包含语音识别模块,用户根据语音提示读出 WiFi的SSID和密码
5:Web方式:类似路由器配置很少用
6:AT命令方式:SSID和密码作为AT命令的参数,直接配置,简单可靠,但不适合普通用户使用

WiFi模块在出厂时一般都支持smartlink和AP 模式,但是AP设置比较复杂,使用较少,当前常用的是第一键配置模式,但是同时会保留AP模式作为备用
一键配置模式在实际应用中各个WiFi模组提供商对广播数据包的封装格式以及数据包交互流程存在一些差异,没有完全统一。所以在使用不同厂家的的WiFi模组开发时,对于APP开发需要调用相应的smartlink相关SDK来封装和发送WiFi的SSID和密码,从而实现Dev入网一键配置功能。

配网与绑定概念

【Wifi配网概念】:Wifi设备需要连接上路由器(也就是Wifi热点,又称作AP)才能上网,实现数据上报和远程控制。我们将Wifi设备获取Wifi热点的名字和密码的过程称做配网。

【Wifi设备绑定概念】:Wifi设备有唯一的标识码MAC地址(类似身份证,一人一个,不重复),用户的账号需要在服务器绑定这个设备的MAC地址后,才有权限在账号下进行控制。我们将手机APP获取设备MAC地址,再将其与用户手机APP账号一起发到服务器绑定的过程称作绑定设备。

只要完成这2个步骤,我们的Wifi设备就可以配网绑定成功,用户就可以正常使用了。

相反,如果用户添加设备失败,基本就是在这2个环节上出现问题。

Wifi配网方式介绍

由于配网失败导致退货的问题一直是Wifi设备的一个痛点,所以各大厂家一直在研究Wifi配网技术。

目前配网技术有以下几种

一键配网(Smartconfig)

设备热点配网(Soft AP)

蓝牙配网(Bleconfig)

零配(Zeroconfig)

手机热点配网(Phone as AP)

路由器配网(WPS)

下面是配网方式的简图:

在这里插入图片描述

一键配网(Smartconfig)

在这里插入图片描述
如果你想知道你家或者你的客户家的Wifi设备为什么配不上网,只要了解罪魁祸首——一键配网技术就行。

因为目前除了小米米家的产品,这个一键配网的技术基本占据了市面上90%以上的Wifi设备,各大物联网平台像京东微联、阿里小智、阿里飞燕、苏宁智能、华为hilink、微信硬件、 各大第三方物联网平台APP、各大模组厂家都标配一键配网技术,也是制造业企业踩坑的重要原因。

当然很多物联网平台在客户一键配网失败之后,会让客户使用其他配网方式来解决配网成功率问题。但是一键配网依旧是平台让用户首选的配网方式。

【技术原理】

一键配网原理是通过手机或路由器发送UDP广播包的形式,将路由器的名字和密码广播出去。Wifi设备在进入配网的时候,其实就是在空中抓取广播包,抓到包之后解析就可以获取到路由器的名字和密码,然后连接上路由器。

Wifi设备连接上路由器之后,会在局域网内广播自己的MAC地址,由于手机也是连接着同一台路由器,所以手机APP可以接收到Wifi设备在局域网下面的广播,进而获取到Wifi设备的MAC地址。然后将MAC地址和用户账号发送到服务器进行绑定。

【问题点】

1.很多路由器不支持UDP广播功能,例如wifi放大器、或者一些默认关闭UDP广播的路由器,会导致发广播包失败,导致WIFI设备无法获取到广播包。

2.当5G和2.4G同频的时候,如果当前手机连接的是5G频段,那发出来的广播包是5G的,而目前所有WIFI设备都只支持2.4G,导致无法获取广播包。

3.如果是2018年以前做的WIFI产品可能还会遇到解包错误等问题,就是WIFI模块获取到数据包了,但是解析出来的密码错误,导致无法链接上路由器。例如微信airkiss就是2016年的产品,跟后面新出的smartconfig对比,成功率还要差上一截。

4.就算经历千辛万险获取到路由器名字和密码,很多路由器由于不支持局域网通讯(例如路由器的访客网络),或者当前环境下面有几个路由器名字都是一样的,导致手机和WIFI设备不是连接在同一个路由器下面,都会导致wifi设备广播的MAC地址无法被手机APP获取到,进而导致绑定失败。

【解决方法】

1.已经出货的产品,配网方式基本是换不了的,因为这涉及到Wifi模块、手机APP、服务器三方的更改,可能性极低。

2.遇到客诉除了让客户排除以上各种情况外,可以让客户将设备拉到另一个环境,用手机设置成与要配网的路由器同个名字密码的Wifi热点,将其配网绑定成功之后,再拿回到要使用的地方。

3.新产品不要再用一键配网了。

【很多人会好奇这种有问题的技术是怎么来的?】

那是因为2014年Wifi设备刚开始普及之前,大家都是使用老的AP配网方式,步骤非常复杂,要7个步骤(这里不细说了)。所以当一键配网技术出现的时候,由于其操作只要1个步骤,用户操作简便,优势明显,所以迅速成为Wifi设备配网的主流。

而随后这么多年一键配网技术遇到各种投诉,各大物联网平台也推出了“弥补”方式:

微信硬件在airkiss2.0之后就停掉了微信硬件的发展;京东微联则增加了设备热点配网方式来弥补;阿里智能则增加手机热点配网方式弥补;最新的天猫精灵平台,则用零配的方式来解决配网问题;其他第三方物联网平台的APP则推出的各自的设备热点配网方式给大家选择。

但是一键配网仍是首选方案,因为很多物联网平台都没有将其他配网技术的体验做得很完善,很多销售也不懂技术,不会引导企业使用好的配网方式。

这里要称赞下小米米家物联网平台,因为小米米家开始没多久,就把一键配网技术干掉了,所有Wifi设备都是使用设备热点配网或者蓝牙配网,没有一键配网的设备存在。个人觉得小米在物联网的钻研跟其他物联网平台的投入不是一个等级的,这也是小米IOT生态链能发展这么大的原因之一,要不小米智能产品出货量这么大,像其他平台那么高的退货率一定把公司拖垮。

设备热点配网(Soft AP)

在这里插入图片描述
如果你要做新的Wifi产品,建议了解下设备热点配网技术,这是保证不增加成本的前提下,保证基本100%成功率的方法。也是小米米家大部分设备的配网方式。而且2019年又有新的技术突破,可以在体验上媲美一键配网技术。

【技术原理】

Wifi设备进入配网状态,实际是变成AP模式,也就是Wifi设备会有一个Wifi热点出来。手机通过连接上Wifi模块的热点,将路由器名字和密码直接发送给Wifi设备,同时从Wifi设备那边拿到MAC地址,然后发送到云端绑定。

【技术点】

1.由于是手机直接连接Wifi模块通讯,这个通讯方式配网绑定的过程都没有路由器参与,所以没有路由器兼容性问题,对2.4G/5G同名路由器、同一场景下多个Wifi同名路由器等情况没有影响。

2.由于手机直接获取MAC地址,所以绑定设备一定要物联网云平台做外网绑定的方式。否则会出现用户输错密码,Wifi设备绑定成功,但是Wifi设备一直无法上线的情况。

3.所以包括后面讲的其他配网方式,都是需要云服务器配网做绑定接口,否则就不是一个完整的Wifi配网解决方案。

4.苹果IOS11.0系统以下的手机,无法自动切换热点,需要用户进入Wifi列表页面,自动选择新热点。这是设备热点配网没有普及的原因之一,因为没有一键配网方便。

5.没有额外的条件和额外的成本增加

蓝牙配网(Bleconfig)

在这里插入图片描述
如果你是土豪,或者你的设备本身就有蓝牙,那可以直接用蓝牙通道来发送和接受配网绑定信息。

【技术原理】

跟设备热点方式一样,只是通讯方式从Wifi连接通讯变成用蓝牙通讯

【技术点】

1.同设备热点配网技术1.2.3点

2.配网成功率还要考虑设备蓝牙模块的手机兼容性。

3.可以直接发现设备,体验方便。

4.增加蓝牙成本

5.有兴趣买个小米的床头灯体验下就知道了~

如果你还想了解其他配网技术,可以接着看看。

零配(Zeroconfig)

在这里插入图片描述
这个代表应用就是天猫精灵的音响了,Wifi设备在进入配网之后,跟天猫精灵说“找队友”或“添加智能设备”,天猫精灵就会将这个Wifi设备配网绑定。

【技术原理】

Wifi设备进入配网状态的时候,会将自己的MAC地址通过Sniffer报文的方式发送出去,这个时候路由器下面支持零配的设备(例如天猫精灵),就可以获取到需要配网设备的MAC地址,同时天猫精灵会将自己保存的路由器名字和密码通过Sniffer报文发给设备。同时等待设备连接上网络,进行外网绑定。

【技术点】

1.前提是路由器下面需要有一台支持零配的设备。如果没有,这个游戏就没的玩了。所以天猫精灵配网是比较合适,纯手机APP配网不太实际。

2.这个方式由于零配设备自己保存了路由器的名字和密码,所以减少了用户输入路由器密码的步骤。

3.总结:除了陪天猫精灵一起玩,手机APP配网目前看应用还不实际。

手机热点配网(Phone as AP)

在这里插入图片描述
这个配网方式我就看过阿里智能做过,叫AHA,部分设备在Smartconfig失败之后60s会进入AHA状态。

【技术原理】

将手机设置成一个特定名字和密码的Wifi热点,然后让设备自己连接手机,再发送和接受配网绑定信息。

【技术点】

1.实际应用过程,很多用户是不知道怎么设置自己手机热点名字,甚至都不知道怎么打开手机Wifi热点。

2.所以不适合消费类大规模推广。

路由器配网(WPS)

在这里插入图片描述
【技术原理】

有些路由器有WPS的按钮,按下这个按钮,同时触发Wifi设备进入WPS配网模式,就可以让Wifi设备连接上路由器了。至于怎么绑定设备嘛,估计还是得通过局域网发现。

【技术点】

1.有客户在用这种方式,但是都是些工业和商用场合。

2.消费类基本没看到这样用。

3.不是所有的路由器都有WPS功能,不适合消费类大规模推广。

总结

1.新产品不要用一键配网(Smartconfig),尽量选用设备热点配网(Soft AP)

2.剩下简单用一个表格总结下,方便大家对比
在这里插入图片描述
(各种Wifi配网技术适用场景优劣势对比)

——————

最后关于Wifi设备联网做几点解释和说明:

1.这篇文章讲的Wifi设备,都是使用串口Wifi模块方案的设备,这类设备没有显示屏和多余的按钮来输入Wifi路由器名字和密码,所以只能借助手机来完成Wifi配网工作。那些跑安卓、X86的设备,例如POS机这种设备本身有操作界面可以输入SSID和KEY,他们不存在配网的问题。

2.如果一个物联网方案商只谈Wifi配网的成功率,不谈服务器绑定的成功率,那一定是有问题的。因为实际产品体验是要用户绑定好wifi设备才能算成功,只讲一半的方案,就不是一个完整的物联网方案。所以一个完整的物联网配网方案,是需要云服务器一起参与的。

3.为方便理解,以上配网流程省略了一些信息,实际通讯交互内容会更多。例如发送MAC地址的时候,其实还会包括很多产品ID、产品秘钥等产品信息。这里简化内容,方便大家理解。

4.很多客户会问我有没有5G的Wifi模块,可以这样说,目前市面上暂时还没看到大规模量产的5G串口wifi模块,而且暂时也不建议使用,原因有几个:

a.很多客户找5G的模块的主要原因是国外客户用5G网络,我们2.4G的wifi模块配网失败,导致了客户退货,所以客户希望能找到5G的wifi模块来解决这个问题。但是如上文所说,解决配网问题的本质是要换配网方式,单纯增加5G频段也是解决不了问题的。

b.有5G频段的路由器都具备2.4G频段,而有2.4G频段的路由器不一定具备5G频段。所以单5G频段的模块,问题一定更多。

c.如果选择2.4G和5G双模的Wifi模块,这类模块必定成本增加很多,而且需要同时有两个天线,还要再增加额外的成本。而且2个频段在一起的模块,联网逻辑怎么处理,目前还没有看到量产的案例。

d.5G频段的wifi模块,因为5G的频率高,波长小,衍射能力差,导致5G的Wifi穿墙能力和通讯距离比2.4G要差,所以也不建议使用5G模块。大家如果家里有双频的路由器可以试试看,跟路由器之间隔1-2堵墙,手机可以明显看到5G的热点信号比2.4G要弱。

结论:暂时不建议使用5Gwifi模块

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/264992.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

动态显示产品信息

为什么80%的码农都做不了架构师&#xff1f;>>> 今天做了个产品介绍的功能,想到只是简单的显示信息实在是无聊,那就让它动态的一个一个显示出来好了. 效果展示:http://runjs.cn/detail/topt9b26 主要的代码如下 html: info里面保存着产品的信息. <div id"c…

ALGO-162——Airport Configuration

问题描述&#xff1a;ACM机场是一个本地机场&#xff0c;对于大多数人来说&#xff0c;机场不是他们的终点或起点&#xff0c;而是中转站。机场有一个规划图。到达的大门在机场的北边&#xff08;相当于空格&#xff09;。出发的大门在机场的南边&#xff08;也相当于空格&…

CRC校验及C语言实现

摘自&#xff1a;CRC校验原理及其C语言实现 地址&#xff1a;https://blog.csdn.net/whik1194/article/details/108837493?spm1001.2014.3001.5502 什么是校验算法 最近的工作中&#xff0c;要实现对通信数据的CRC计算&#xff0c;所以花了两天的时间好好研究了一下&#xff…

技术篇(3)--QPG界面分解方法介绍

在实际开发中,我发现很多程序员花很多时间在界面处理上.并且界面之间的关系和控制逻辑可能工作量并不小.所以好些老手到后面就跑去做后台服务,做通讯去了.界面布局和交互设计本身有很多的学问,或者有很多艺术,但是本文这里先不讨论这个问题.在QPG团队实践中,我们把界面划分成很…

Linux编程MQTT实现主题发布订阅

【物联网阿里云平台开发项目实战|附课件资料】智能硬件开发-数据上云&#xff0c;零基础入门 4G模块连接阿里云教程 MQTT通信协议(mosquitto)在Linux上的环境构建与测试 MQTT通信协议(mosquitto)发布订阅例子C语言实现 MQTT客户端软件(MQTT.fx)的使用详解 各类MQTT代理服务器特…

Linux串口应用编程

目录Demo串口应用编程介绍终端Terminal串口应用编程(配置、读取、写入)struct termios 结构体配置输入模式: c_iflag输出模式: c_oflag控制模式: c_cflag(波特率、数据位、校验位、停止位)本地模式: c_lflag特殊控制字符: c_cc注意事项三种工作模式(原始模式read是否阻塞)什么时…

Linux MQTT 物联网通信

更多干货推荐可以去牛客网看看&#xff0c;他们现在的IT题库内容很丰富&#xff0c;属于国内做的很好的了&#xff0c;而且是课程刷题面经求职讨论区分享&#xff0c;一站式求职学习网站&#xff0c;最最最重要的里面的资源全部免费&#xff01;&#xff01;&#xff01;点击进…

.NET平台下Web树形结构程序设计

.NET平台下Web树形结构程序设计 我的上篇文章《树形结构在开发中的应用》主要是在Windows Form下的实现&#xff0c;下面是Web Form下的实现。数据库设计 首先&#xff0c;我们在SQL SERVER 2000里建立一个表tbTree&#xff0c;表的结构设计如下&#xff1a;列名数据类型描述长…

Advanced Installer 9.8打包实录

原文 Advanced Installer 9.8打包实录 主要介绍&#xff1a;&#xff08;1&#xff09;创建工程&#xff0c;&#xff08;2&#xff09;创建快捷方式及其图标&#xff08;3&#xff09;卸载设置 创建工程&#xff08;.net为例&#xff09;&#xff1a; 工程创建完成。。。。接下…

CMake 入门与进阶

目录cmake简介cmake的下载cmake 的使用方法示例一&#xff1a;单个源文件(cmake生成的中间文件以及可执行文件都放在build目录下)示例二&#xff1a;多个源文件示例三&#xff1a;生成库文件(动态库和静态库、修改库文件名字、最低版本要求)示例四&#xff1a;将源文件放到不同…

Linux开发板网线直连电脑配置方法/vmware虚拟机与本机的网络ping通

目录Linux开发板网线直连电脑配置方法vmware虚拟机与本机的网络ping通Linux开发板网线直连电脑配置方法 参考&#xff1a;https://www.bilibili.com/video/BV1n541197rk?spm_id_from333.999.0.0 一般情况&#xff0c;开发板连路由器&#xff0c;电脑也连路由器&#xff0c;路由…

ubuntu网站做图像外链

http://paste.ubuntu.org.cn 转载于:https://www.cnblogs.com/yuliyang/p/3658964.html

Markdown 基础学习

Markdown是什么&#xff1f; Markdwon是一种轻量级标记语言&#xff0c;它以纯文本形式&#xff08;易读、易写、易更改&#xff09;编写文档&#xff0c;并最终以HTLM格式发布。Markdown也可以理解为将以 MARKDOWN语法编写的语言转换成HTML内容的工具。 为什么要使用Markdown?…

状态机模型

参考&#xff1a;什么是状态机&#xff1f;用C语言实现进程5状态模型 参考&#xff1a;设计模式&#xff1a;一目了然的状态机图 案例&#xff1a;状态模式(C语言实现)——MP3播放、暂停案例 STM32按键消抖——入门状态机思维&#xff08;常用的switch-case形式&#xff0c;实现…

yii开启gii功能

如果不想面对黑白界面&#xff0c;那么yii框架&#xff0c;给我们提供了一个模块gii 在配置文件中main.php 再通过访问模块的方式访问gii转载于:https://www.cnblogs.com/xiashuo-he/p/3659334.html

2、基于wsgiref模块DIY一个web框架

一 web框架 Web框架(Web framework)是一种开发框架&#xff0c;用来支持动态网站、网络应用和网络服务的开发。这大多数的web框架提供了一套开发和部署网站的方式&#xff0c;也为web行为提供了一套通用的方法。web框架已经实现了很多功能&#xff0c;开发人员使用框架提供的方…

C标准时间与时间戳的相互转换

什么是时间戳&#xff1f; 时间戳是指格林威治时间自1970年1月1日&#xff08;00:00:00 GTM&#xff09;至当前时间的总秒数。它也被称为Unix时间戳&#xff08;Unix Timestamp&#xff09;。时间戳是能够表示一份数据在一个特定时间点已经存在的完整的可验证的数据&#xff0…

Linux系统信息与系统资源

目录系统信息系统标识unamesysinfo 函数gethostname 函数sysconf()函数时间、日期GMT 时间UTC 时间UTC 时间格式时区实时时钟RTC获取时间time/gettimeofday时间转换函数设置时间settimeofday总结进程时间times 函数clock 函数产生随机数休眠(延时)秒级休眠: sleep微秒级休眠: u…

简单的一个用javascript做的'省市区'三级联动效果

2019独角兽企业重金招聘Python工程师标准>>> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head><title>javascript简单三级联动效果</title…

线程与线程同步

目录线程概述线程概念并发和并行线程ID创建线程终止线程回收线程取消线程取消一个线程取消状态以及类型取消点线程可取消性的检测分离线程注册线程清理处理函数线程属性线程栈属性分离状态属性线程安全线程栈可重入函数线程安全函数一次性初始化线程特有数据线程局部存储更多细…