编写示例—指纹锁对接、开门场景联动和APP指纹绑定

[复制链接]
crodigy 发表于 2019-1-21 17:55:19 | 显示全部楼层 |阅读模式
本帖最后由 crodigy 于 2019-3-4 13:54 编辑

一、准备工作(以下为示例,其它指纹锁只需要更换协议和反馈信息指纹ID所在的字节位)

1、首先,根据说明,完成线路的连接;
1.png
2、完成协议解析
开:\x05\x91\x02\x11\x82\x0F
关:\x05\x91\x02\x12\x81\x0F
反馈信息的第5个自己为指纹ID。

二、程序编写
1、门锁控制逻辑编写
  • 使用的485串口配置

2.png
  • 控制逻辑

3.png
说明:
a、APP块作为手机端控制界面,在这里建议使用“门锁APP块”。
b、“serial I/O”作为协议的存储,将协议填写在中间输入框中,当触发左侧的变量,对应的协议就可以发送出去。
c、将3着通过变量名称连接在一起,就可以完成基础的门锁的开关控制。

2、反馈信息处理
  • 通过“serial check”校验返回的信息是不是门锁返回的

4.png
在这里我们校验前两个字节。
  • 通过“serial to byte”分离出第5个字节的;然后送给APP。

5.png
?在这里为什么送给APP,我们下面关于APP的指纹绑定时会使用到。
3、匹配指纹ID,做场景联动
6.png
说明:如果不同的指纹联动不同的场景,直接将“analog equate”输出的结果触发对应的场景“stepper”就可以。胁迫场景同理。

4、返回码复位
为什么要写复位?因为门锁如果连续返回两次相同的回码,第二次回码联动的场景不会被触发;且如果同一个人连续两次开门,APP无法获取到第二次开门信息。
所以以下程序在门锁的返回码后,延时1s对返回的串量复位。
7.png

说明:
  • 用“analog intial”初始化一个0值的变量;
  • 用“analog comparison”让“serial to byte”分离出来的指纹ID和0进行比较;看看等不等于0.
  • 如果不等于0,说明有人开门,那么用“stepper”延时1s,输出变量对返回的串量复位。
  • 用一个新的“serial I/O”中间填写复位的串量值,输出变量到门锁的返回串量上,进而可以对门锁的返回串量复位。
  • 注意:在这里serial I/O的中间项填的字符串长度要大于5;且第一个字节和第二个字节的内容要和“serial  check”中校验的数据一致;否则复位的串量无法通过“serial  check”校验。这里不能直接对“serial  check”的输出变量进行复位。


三、APP指纹绑定

1、程序上传主机后,管理员登录APP,在设置中找到【门锁管理】
10.jpg 12.jpg 2、找到添加指纹,会出现指纹录入界面。
11.jpg
说明:这个录入的原理就在于我们之前将开门指纹ID传给APP
8.png

3、“录入指纹”
a、这里的“录入指纹”是建立在指纹已经录入到指纹锁的前提上;
b、录入操作是打开该界面(指纹录入);然后用同一指纹开门3次;
c、如果让用户慢慢一次次开门太麻烦;就让用户用不同指纹开门一次,仿真中看看不同指纹的ID分别是多少,在仿真中模拟指纹锁的返回码,对“yelu_rx”串量进行赋值。赋值时,将第5个字节的值改成指纹ID,连续赋值3次即可。

4、关联成员
a、当3次指纹通过后,会出现绑定指纹和绑定成员选项
9.png

b、选择指纹后,将指纹划分正常还是不正常中;
c、然后绑定成员。注意:该成员需要是当前主机“家庭成员”列表中的一员。
d、添加完成后如下;
13.jpg
5、消息推送
a、在APP的首页右上角有一个“邮箱”图标
b、该图标中会显示开门人的开门记录。



门锁.zip

4.08 KB, 下载次数: 1141

饶绍荣 发表于 2019-1-22 09:31:36 | 显示全部楼层
感谢楼主分享,辛苦了!!!
回复

使用道具 举报

13228751750 发表于 2019-2-12 12:49:15 | 显示全部楼层

感谢楼主分享,辛苦了!!!
回复

使用道具 举报

小叮当 发表于 2019-2-28 11:27:46 | 显示全部楼层
不错
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则