一张图让你读懂鹅厂的物联网框架
本文从物联网的中心要素、物联网的关键场景、微信硬件平台的通讯协议剖析三个维度去剖析基于微信硬件平台的物联网架构。
一、基于微信硬件平台的物联网架构图
上图涵盖以下信息:
- 基于微信硬件平台的物联网的架构组成,有微信大众平台/硬件平台、第三方厂商云后端、手机微信/大众号、微信硬件设备终端(Wifi和蓝牙BLE)。
- 绿色代表腾讯向开发者和大众提供的根底平台和效劳,并经过白色(airsync/airkiss)定义的硬件外设协议供硬件设备接入,白色(微信硬件平台接入协议,XML/JSON)供厂商云后端接入;蓝牙和紫色区域代表开发者所要完成的义务,其中蓝牙是嵌入式硬件设备终端的义务,紫色是第三方厂商云后端的义务。
- 物联网各个组成局部之间的通讯协议标识。除了白色标识的协议是微信大众平台和硬件平台制定的协议必需遵照外,其他组成局部的协议都是自定义的协议。
- Wifi模组的供给商提供的SDK普通都提供socket通讯接口,而云后端普通会运用JSP/PHP等web编程技术,因而wifi设备需求模仿HTTP协议跟云终端通讯。HTTP是一个规范的公共的通讯协议,使用层需求在HTTP之上树立自定义的使用协议来完成设备的控制和交互,而使用协议可以是XML/JSON等等。当然,假如云后端运用底层的socket编程,则wifi设备终端可以不需求模仿http。
- 蓝牙经过airsync协议接入微信,该协议规则了设备发现、绑定、登陆、初始化、接纳用户指令、自动发送音讯等进程。
- Airkiss是经过JSAPI的方式让用户可以在微信上输出路由器的用户名和密码,然后告知没有按键输出和屏幕显示的wifi设备,让该设备可以连上路由器进入网络在线形态。除此之外,Airkiss跟之后用户和厂商、设备的交互完成没有关系。实质上,Airkiss只是一个配置上网功用,跟物联网的控制和交互有关。
- Wifi设备接入微信硬件平台是远场控制,设备只需处于联网在线形态,那手机用户无论在哪里,只需能上网都可以对设备停止控制,典型的例子是在公司下班可以经过手机控制家里的智能插座上电;蓝牙设备接入微信硬件平台必需依赖于手机,是近场控制,典型的场景是手机控制家里的灯和空调等。
二、物联网的中心要素
本文是从开发者的角度去剖析整个微信硬件平台物联网,不去讨论物联网运营之类等范畴。那麼,从开发的角度,物联网的中心要素什麼,微信平台又支持了什麼?我的了解是:
设备的合法性和独一性
微信硬件平台在物联网范畴做的事情其实不多,只需细心想想架构图中的这麼多的紫色和蓝色都是留给开发者,而且都是要光秃秃的编程。关于普通的设备商,他们想接入也是勉爲其难啊。在这集体系架构中,微信硬件平台做的最重要的一件事情就是身份认证。
就像一团体出生后要办一张身份证(出生证明的号码也是身份证号码)一样,设备消费出来要想进入微信硬件范畴,它就必需到微信硬件平台注册本人的身份,那它拿什麼去注册呢,这个根据自然应该是无独有偶的,就像每团体的指纹,假如我国的小孩办身份证都以录指纹爲根据,那就不会呈现那麼多拐卖儿童了。设备的无独有偶的根据就是48位的MAC地址(或许是MAC地址经过某种加密运算失掉的后果)。
接着办身份证/出生证不是要给小孩起个名字吗,当前大家交流就叫名字了,不能够每次喊话都把指纹的二进制数字读出来的啊。嗯,那硬件设备注册时也要报备本人的名字,即设备ID。设备ID也应该在微信硬件平台独一啊,不然会乱的。就像MAC地址一样,有一局部是代表一个设备提供商向世界IETF组织请求的企业辨认字段,另一局部是设备商外部的分配。或许像身份证那样,后面6个字段是代表一团体出生时的县区行政区划码,前面的数字才代表本身,但同时要保证在这个行政区外面的独一性。那微信硬件平台怎样标准设备身份?设备身份包括两个局部,deviceType是设备商/销售商的微信大众号的原始ID,deviceID由设备商/销售商自定义,由设备商保证deviceID在其deviceType中的独一性。
这就是设备的注册场景。设备注册了当前在微信硬件平台就具有合法性和独一性了。
设备被拜访的合感性和合理性
设备最终是应该和人/手机用户交互的,否则就得到了物联的意义了。那麼哪个用户可以拜访这个设备呢?
微信誉户要关注设备商的微信大众号和绑定设备才干对设备停止拜访。假如不绑定就可以拜访,那就是一切用户都可以拜访这个设备,这显然是不合理的。你买的智能插座放家里,另一团体也能控制你的插座,多风险。
微信硬件平台确保设备的独一性,微信大众平台确保微信誉户的独一性,两者经过关注和绑定这个流程树立起完全权益的拜访关系。
微信硬件平台是微信大众平台的一个子集,微信硬件平台会应用微信大众平台已有的功用来完成根底效劳。
设备和用户交互的音讯触达才能
设备要成爲物联网中的一员,必需可以联网,好比人体的神经元,具有可以和外界交流的才能。
微信硬件平台次要从云后端接入和硬件接入两方面作出努力。一是经过airsync协议让蓝牙设备和微信互通,airkiss协议让复杂的没有按键和UI交互的wifi设备联网;二是经过制定云后端接入协议来接纳厂商云,经过音讯接口和API接口运用户和设备的音讯可以互相触达。即设备收回的音讯经过微信平台发送到厂商云,厂商云的音讯也能自动推送给设备,完成交互。
效率
扫一扫功用对微信的影响是宏大的,加关注,好友,挪动领取等等都经过二维码来完成,设备绑定是二维码。微信硬件平台和大众平台发生的二维码关联了用户、设备ID等信息,经过扫一扫功用能方便地停止绑定,接入进入大众号的音讯界面。
物联网触及到终端、前端和后端等等,是一个大工程,无论从开发的角度,还是从用户运用的角度,都要一直强调便捷的效率,以让用户有足够好的体验,才干使得物联网得以壮大。
音讯处置才能—嵌入式零碎
这一点并没有在物联网架构的图示中呈现。物联网决不只仅是一种控制,例如开灯和关灯之类,也不只仅是复杂的经过各种传感器来停止数据采集,将来的物联网一定会让用户不时地进步用户体验,例如多媒体、虚拟与完成、数据决策等等,这局部是由初级的嵌入式零碎来完成的。嵌入式零碎才是设备的大脑,物联网应该更好地拥抱嵌入式零碎。
三、物联网场景剖析和通讯协议剖析(近场蓝牙控制方案)
1.注册
下面已有阐明
2.用户绑定
下面已有阐明
3.衔接
用户在绑定进程中会自动完成对提供设备的厂商的微信大众号的关注。在当前每次进入大众号时,会自动经过手机蓝牙对蓝牙设备停止扫描衔接。只要完成airsync协议的蓝牙设备才干连上微信。例如蓝牙设备播送的字段外面要声明本人的MAC地址,这样微信能辨认到这个一个要接入微信的蓝牙设备,然后才会自动地衔接它。
4.控制(菜单控制)
1)用户点击微信大众号提供的菜单,如开灯。
2)音讯经过微信大众平台发送给厂商云后端。
3)云后端在本人的数据库内验证微信誉户和设备的无效性后,将微信菜单的开灯音讯转化爲自定义协议的开灯音讯(这个协议只要云后端和外设设备所看法),并依据airsync中的protobuf协议抵消息体停止打包封装,最初经过调用微信硬件平台提供的API接口自动推送出去。
4)微信硬件平台收到信息后经过微信大众平台回传给微信誉户所在的大众号。
5)微信将这个音讯依据airsync协议经过手机蓝牙发送蓝牙外设。
6)蓝牙外设收到音讯停止相应的处置。
从这个进程来看,间接的菜单控制走的流程太长了,影响效率。上面引见的JSAPI控制就是间接控制,不需求再经过厂商云来发指令。
5. 控制(H5/JASPI控制)
1)用户点击微信大众号提供的H5网页链接
2)微信阅读器经过H5地址向厂商云后端恳求呼应,前往H5页面。
3)用户点击H5页面的开灯button
4)button经过JSAPI接口间接向蓝牙设备收回自定义的控制音讯,JSAPI蓝牙接口曾经封装好airsync协议。
5)蓝牙设备收到音讯停止相应的处置。
四、物联网场景剖析和通讯协议剖析(远场wifi控制方案)
1.注册
下面已有阐明
2.用户绑定
下面已有阐明
3.衔接
由于用户和wifi设备并不在一个区域,而是经过网络来衔接,因而用户是不间接跟wifi设备打交道的,一切的交互都给经过wifi设备商的云后端停止直接交互。(之前
曾经说了airkiss只是微信提供的一个配置上网功用,wifi设备经过一次配置后,当前会记住这个路由器的ssid和pwd的,所以配置好一次后,airkiss跟物联网交互一点关系都没有,因而airkiss不应该算在物联网的音讯触达协议内)。
用户进入wifi设备对应的大众号后,微信大众号会经过微信大众平台向厂商云订阅和征询设备的在线形态。因而设备一上线时应该自动联络厂商云后端,告知本人上线了,并不时地发送心跳包维持衔接。这样微信大众号一订阅恳求,云就前往设备的形态给它。
假定设备在线,云后端前往在线形态,微信大众号就会显示设备衔接上。
4. 控制(菜单控制)
1)用户点击微信大众号提供的菜单,如开灯。
2)音讯经过微信大众平台发送给厂商云后端。
3)云后端在本人的数据库内验证微信誉户和设备的无效性后,将微信菜单的开灯音讯转化爲自定义协议的开灯音讯(这个协议只要云后端和外设设备所看法),
然后间接经过网络发给wifi设备。
4)wifi外设收到音讯停止相应的处置。
5. 控制(H5控制)
1)用户点击微信大众号提供的H5网页链接
2)微信阅读器经过H5地址向厂商云后端恳求呼应,前往H5页面。
3)用户点击H5页面的开灯button
4)button经过AJAX接口向厂商云后端收回自定义的控制音讯。
5)厂商云接纳到音讯会转化硬件控制音讯,间接经过网络发给wifi设备。
6)wifi设备收到音讯停止相应的处置。
从这点来看,wifi设备接入微信硬件平台,微信硬件平台仅仅起到一个入口的作用,音讯转发都不经过微信硬件平台了。
五、微信硬件平台的优与劣
回过头来想想,国际这几年早曾经有多家物联网平台,如机智云,yelink等等,它们除了确保设备的独一性,还完成了后端的效劳平台,甚至给用户提供物联设备模块,极大地简化了物联设备消费商的开发流程。在这样的根底上,微信硬件平台把那麼多的义务丢给了开发者,但还是很多厂商拥抱它,只能说微信是一个超级APP,是一个极佳的入口,掌握了全社会大局部用户的入口。在挪动互联网范畴,用户数量就是霸道。
固然,用户量宏大和腾讯体量庞大是微信硬件平台物联网的劣势,但要想做得更好,是不是思索给用户多做一些像机智云一样的任务?
换作各位小同伴,你们会怎样做呢?欢迎留言~~
作者:柳猫
来源:CSDN