一、微信硬件公众平台整体架构
上一篇《物联网架构场景技术分析》已经探讨和分析了物联网架构的演进,基于微信硬件公众平台的智能控制方案即属于文中的第三种架构--基于统一后台服务的物联架构。其中的架构如下:
各部分的角色和分工如下:
1.微信硬件公众号平台服务器,是物联网的基础和核心部分,其负责外设设备ID的认证,类似*部给每个公民一个身份证一样,保证每个外设都有一个合法并且唯一的ID。目前微信平台的设备ID由两部分组成,一部分是厂商运维的公众号(即手机微信关注的公众号)的原始ID,称为设备类型,即代表生产商;另一部分就是设备的ID,设备由厂商负责生产,要保证厂商生产的所有设备的ID是唯一的。
另外,其负责将微信发过来的消息转发给厂商服务器,或者转发厂商的服务器给微信,这些操作的前提都是要通过验证。
验证的内容包括:设备是否已经通过授权(设备接入前需要授权)、用户是否已经绑定了该设备。
2.手机微信,其实指的是用户微信关注的公众号页面(例如嵌入式企鹅圈。需要注意的是,只有服务号或者通过验证的订阅号才能开通设备功能,而嵌入式企鹅圈只是个人订阅号,暂时无法进行验证。微信给开发者提供一种微信测试账号,可以支持硬件设备功能,但只有一年期限)。其调用微信封装的蓝牙接口和蓝牙外设进行通信。蓝牙接口实现的协议是微信定义的“蓝牙外设协议Airsync”。
3.厂商服务器,对微信硬件公众平台转发的消息进行验证(在厂商数据库中检测该用户是否已经绑定了自家的设备),然后按照和蓝牙外设拟定的自定义消息协议生成自定义消息。发给微信硬件公众平台,再通过微信发给蓝牙外设。
厂商服务器是和微信硬件公众平台直接交互的,厂商服务器需要遵循微信定义的“设备接入接口协议”。
4.蓝牙外设,由厂商负责生产和销售,购买该外设的终端用户只需要关注该设备的二维码即可用手机的公众号菜单来进行控制。
二、微信智能控制使用场景
1.购买蓝牙外设产品,厂商会在包装外面打上该设备的二维码。
2.用户手机扫描该二维码关注厂商的公众号。
3.进入公众号,对菜单进行控制,即可以控制蓝牙外设。
整个过程非常简单,如果有块蓝牙外设板子就可以很好体验一把了。如果希望学习微信硬件开发技术者或者购买蓝牙体验板的童鞋们可以跟我联系。
在没有蓝牙外设体验板前还是老老实实地扫描关注“嵌入式企鹅圈”的二维码跟着博主深入地学习整套技术吧,哈哈。
三、基于微信硬件公众平台的智能控制开发流程
1.搭建云服务器,如百度云、新浪云。微信公众号的后台服务一般选择PHP+MySQL+Apache架构(如嵌入式企鹅圈),而微信提供的微信硬件公众平台后台服务demo是JSP,所以后台架构一般选择tomcat+Java+MySQL(如“**的接口测试号”)。
2.创建微信公众号,并进行认证,开通硬件设备功能。公众号进入开发者模式,配置厂商服务器的域名服务地址和token。
3.微信公众号创建菜单,如点灯和关灯命令。微信提供接口进行创建。
4.设备分配ID,并到微信硬件公众平台进行授权,需要提供厂商ID、设备ID和蓝牙的mac地址。
5.厂商服务程序开发,需要遵循微信拟定的“设备接入接口协议”,并制定自定义消息协议,用于和蓝牙外设通信。
6.蓝牙外设程序开发,需要遵循微信拟定的“蓝牙外设协议Airsync”,并根据自定义消息协议对外围设备进行控制
以上过程可以通过“微信公众平台接口调试工具” http://mp.weixin.qq.com/debug进行调试(消息接口),蓝牙外设调试可以通过Airsysdebug.apk进行调试.
以上协议资料可以发消息向嵌入式企鹅圈索取。
四、基于微信硬件公众平台的智能控制方案开发专栏介绍
接下来嵌入式企鹅圈会将陆续公开基于微信硬件公众平台的智能控制开发技术细节,大致内容包括:
1.物联网架构和场景分析(已发)
2.基于微信硬件公众平台的智能控制开发流程(已发)
3.云服务器搭建和公众号配置
4.公众号菜单设置
5.微信消息传递过程和微信设备接入接口协议
6.微信硬件平台后台服务开发
7.微信蓝牙协议和授权、绑定过程
8.微信蓝牙Protobuf协议分析、Airsyncdebug.apk使用
9.蓝牙外设控制开发
…