智能家居是现代社会的一个热门行业,现在市面上做智能家居的企业很多。而随着微信的普及,很多企业便开始借助微信这一平台,来推广自己的产品,微信开锁便是近年出现的一个应用之一。那么,微信开锁究竟是怎样实现的呢?
现在市面上推广微信开锁的厂家很多,但是他们的基本原理都差不多:一台服务器,一个智能锁终端,一个手机端。下面,小编就以市面上的某款智能锁为例,向各位讲解微信开锁究竟是怎样实现的:
1
基本框架
微信远程开锁整个框架包括:蓝牙模块(插在智能锁上,以下简称模块)、蓝牙网关、服务器(智能锁服务器、微信服务器等)以及微信客户端。
当用户绑定智能锁设备,验证密码成功后,用户既可以通过蓝牙的方式与智能锁直接通讯,也可以远程通过服务器将命令下发至智能锁,后者需要通过蓝牙网关作为中间设备将服务器下发命令传递给智能锁。
微信开锁框架图
微信开锁的方式有两种,一种是手机(微信)和智能锁设备通过蓝牙的直连,另一种是手机通过服务器和智能设备进行通讯。在这个过程中:手机,服务器,和智能设备究竟是出于什么样的状态呢?
02
微信授权
实现微信开锁的第一步就是要将智能设备和微信进行授权和绑定。每一把智能锁带有一个无线扩充模块,这个无线通讯模块具有唯一的蓝牙地址,也就是这把锁的身份标识。
微信远程开锁需要在相应公众号的微信平台上进行蓝牙地址授权。授权过程需要验证公众号appid,app secret以及设备product id。授权成功后,产生一个与此模块相对应的具有唯一性的二维码。用户可以微信扫描此二维码找到相应的模块。
微信授权是模块蓝牙地址被微信赋予权限的过程,一旦模块蓝牙地址发生改变,此模块需要重新授权。
03
微信开锁的信息流
从微信开锁的框架中我们可以看出来,手机端和智能锁之间的连接可以分为两种:一种是手机(微信)和智能锁设备通过蓝牙的直连,也叫本地连接,另一种是手机通过服务器和智能设备进行通讯,也叫远程连接。我们来了解一下这两种方式之间的区别和联系:
首先谈谈两者的区别。本地连接,是手机通过蓝牙的方式和智能设备进行连接,在整个连接的过程中,手机蓝牙要一直处于打开的状态。我们都知道,蓝牙连接的距离是有限的,而且容易受障碍物的影响,因此本地连接距离比较近。
远程连接是借助的网络进行通讯的。在这个过程中,智能锁上的蓝牙模块和蓝牙网关进行配对,蓝牙网关介入网络路由器,把智能锁的状态上传到服务器,手机便能通过服务器查询到智能锁的状态。
同样的,微信端也可以下发一些指令到服务器,服务器将这些指令加密后下发到路由器和蓝牙模块,模块对加密后的命令进行解密并发送到智能锁。这样便能实现微信远程开锁的功能。
远程连接是建立在本地连接的基础上的。在远程开锁的过程中,智能锁和蓝牙网关之间也是通过蓝牙连接的,在这个过程中,蓝牙网关相当于本地连接中的手机端。其实,在本地连接过程中,只要手机的蓝牙一直处于打开状态,手机也是可以充当一个路由器的。
04
手机开锁的功能和权限
1. 用户操作流程
用户可通过以下两种方式进行远程开锁:
(1)用户可以通过扫描设备的二维码,搜寻到指定的模块,或者扫描模块唯一二维码,绑定该模块。绑定设备后,用户需进入微信公众号,验证智能锁的管理密码,验证成功后成为智能锁的管理用户。
(2)用户可扫描管理用户通过分享产生的二维码成为智能锁的分享用户。分享用户不需要验证密码。
2. 用户权限
微信用户可分为微信管理用户、分享用户和及未验证用户。
管理用户拥有微信开锁的最高级权限,包括远程开锁、删除其它非管理用户、分享给他人、查看智能锁基本信息和开锁记录、修改智能锁开锁密码等全部功能。用户只能通过绑定设备并验证管理密码后才能成为智能锁的管理用户,验证管理可对智能锁进行初始化,即删除此智能锁上所有的微信用户。
通过管理分享的二维码添加智能锁的用户为分享用户。分享用户的权限较低,只能远程开锁、查看分享后的开锁记录以及接受开锁消息推送。
未验证用过是指扫描设备二维码后验证密码未通过的用户,未验证用户不具备任何权限,只具有删除设备的功能。
3. 管理用户的功能
管理用户具有远程开锁的全部功能,包括远程开锁、查看微信用户并删除其它非管理用户、分享给他人、查看指纹用户和开锁记录,修改开锁密码等全部功能。
远程开锁功能:管理用户可微信远程开锁,此步需要验证重新验证管理密码,或者在后台记住管理密码;