基于ZigBee 的智能门锁系统设计

2023-08-19 09:59贺云飞肖国锐
电子设计工程 2023年16期
关键词:控制指令信号线门锁

贺云飞,甘 雨,,肖国锐

(1.湖南北斗微芯产业发展有限公司,湖南 长沙 410000;2.战略支援部队信息工程大学地理空间信息学院,河南 郑州 450001)

随着电子技术的发展,家居的智能化已成为必然的趋势。智能门锁作为家居安全的重要“守门员”,其重要性不言而喻[1]。门锁的智能化技术核心在于门锁权限的控制和门锁状态的反馈,能够让用户实时掌控家里的门锁状态。

采用无线通信技术控制终端门锁,其优势在于安装方便,不需要布线。ZigBee 技术具有低功耗、低延时、低成本、网络容量大、安全性高等特点,并且能够实现自组网,具有较强的网络恢复能力,相较于蓝牙、WiFi、LoRa 等无线技术[2-5],具有明显优势。该设计采用ZigBee 技术实现智能门锁系统,功耗低、实时性高,对于酒店、宿舍等需要对门锁集中监控管理的场合提供了极大的便利[6]。

1 系统总体设计

智能门锁系统由终端门锁、无线网关、云平台及用户终端组成,主要功能是检测门锁的状态,实现远程门锁的开关控制及管理。ZigBee 网络采用星型网络拓扑结构,终端门锁作为终端节点,无线网关作为协调器[7-8],系统总体框图如图1 所示。

图1 系统总体框图

终端门锁通过ZigBee 网络连接到协调器,将检测到的门锁状态信息上传平台,同时终端门锁根据协调器下发的控制指令执行门锁的开关操作;无线网关作为终端门锁和平台的桥梁,通过以太网和平台连接,实现终端门锁和平台的双向通信,同时无线网关负责对终端门锁的安全性管理[9]。

用户终端将终端门锁的地址和门锁的白名单下发给无线网关,终端门锁注册入网过程中,无线网关通过比对门锁的地址来控制门锁接入的权限,用户终端下发控制指令到无线网关,无线网关根据白名单进行匹配,在白名单目录内的才允许将控制指令转发给终端门锁;无线网关对终端门锁的在线状态进行管理,监测到终端门锁离线则反馈给平台。

平台记录所有终端门锁、无线网关的工作状态,记录终端门锁的开锁记录等,做到用户终端实时掌控门锁的信息。

2 硬件设计

ZigBee 网络终端节点和协调器选用CC2530 片上系统作为ZigBee 模块[10],CC2530 片上集成了RF 收发器和增强型8051 内核,在发射模式下,电流损耗低于30 mA,休眠模式下低于0.4 μA,且主动模式和休眠模式的切换时间非常短,非常适用于超低功耗要求的系统。

2.1 终端门锁硬件设计

终端门锁由CC2530、电源模块、驱动模块、按键、AD 转换电路等组成,如图2 所示。

图2 终端门锁硬件框图

终端门锁采用干电池供电,对整体功耗的要求高,门锁以CC2530 的片内8051 内核作为系统的微控制器[10-11],微控制器通过AD 转换电路获取干电池的电压值,作为电池电量判断的依据;按键用作系统复位操作,通过按键操作实现微控制器自动复位;JTAG 接口用作程序仿真,仿真器使用CC Debugger仿真器;串口用作参数配置调试;门锁锁体和微控制器之间通过五线进行连接,其中,三线分别是锁舌信号线、反锁信号线和开锁信号线[12]。锁舌信号体现锁体是否上锁;反锁信号体现锁体是否反锁;开锁信号体现锁体是否通过钥匙或指纹进行了开锁操作,微控制器通过读取信号线的高低电平来判断门锁的状态。另外两线是微控制器通过驱动模块和门锁锁体的电机相连接,实现电机的正反转控制,拖动锁舌实现开关锁操作。主控电路原理图如图3 所示。

图3 终端门锁主控电路原理图

门锁采用L7010R 马达控制驱动芯片来驱动电机,L7010R 是控制和驱动电机设计的两通道推挽式功率放大专用集成电路器件,CC2530 通过MA+和MA-两个输出端口控制驱动芯片驱动电机正反转来实现开关锁操作。网络标签号SUOSHE、MECKEY和FANSUO 分别代表锁舌信号线、开锁信号线以及反锁信号线,这三根线和电机驱动信号线通过接线端子和锁体相连接,网络标签号DIANLIANG 连接干电池,通过ADC 采集电量信息,KEY 和RESET 分别连接按键电路和复位电路。

2.2 无线网关硬件设计

无线网关由CC2530、STM32F103RCT6、蜂鸣器、电源模块、以太网等组成,如图4 所示。

图4 无线网关硬件框图

CC2530 作为ZigBee 网络部分的微控制器,完成协调器功能,实现和门锁的无线通信;CC2530 通过串口和主控芯片STM32F103RCT6 相连接。蜂鸣器作为提示音,提示终端门锁是否成功接入无线网关,方便用户对终端门锁的对接调试。无线网关和平台之间通过以太网相连接,考虑到无线网关供电的便利性,电源部分支持外部电源输入供电,也支持POE供电方式;串口2 用作无线网关的参数配置以及调试,图5 是主控制器STM32F103RCT6 原理图。

图5 主控制器STM32F103RCT6原理图

以太网[13]采用W5500 芯片来实现,W5500 芯片是一款集成全硬件TCP/IP 协议栈的嵌入式以太网控制器,主控制器通过SPI 接口控制W5500 芯片实现网络通信,同时W5500 的工作模式定义了引脚和主控芯片相连接,主控芯片通过设置工作模式引脚的高低电平实现W5500 的工作模式。

3 软件设计

CC2530 的软件开发提供了一套完整的Z-Stack协议栈[14],Z-Stack 协议栈是一个基于时间片任务轮询方式的操作系统,Z-Stack 的主要执行流程包括关闭所有中断、芯片外设初始化、芯片内部初始化、操作系统初始化、打开所有中断和执行操作系统。在任务轮询过程中,根据任务的优先级检测任务是否就绪,查询每个任务是否有事件发生,如果有事件发生,则执行相应的事件处理函数,如果没有事件发生,则查询下一个任务[15]。

3.1 终端门锁软件设计

终端门锁作为ZigBee 网络中的终端节点,采用低功耗工作模式,执行休眠、唤醒、休眠循环的工作方式。终端门锁的主体软件流程如图6 所示。

图6 终端门锁的程序的流程

终端门锁主要完成以下功能点:1)检测门锁状态;2)检测电池电压上报平台;3)执行协调器下发的控制开关锁指令。

系统启动后首先对硬件和协议栈进行初始化,为了门锁的安全性,硬件初始化过程中,微控制器驱动电机默认处于门锁关闭状态。终端门锁检查ZigBee 网络,尝试连接协调器,如果连接失败,则设置休眠时间,进入休眠状态,自动唤醒后重新尝试连接协调器,直到连接成功。如果终端门锁在多次尝试连接失败的情况下,系统调节休眠时长做到降低电量的消耗。

在终端门锁成功连接协调器后,执行低功耗工作机制,周期性地从休眠当中唤醒后侦测有无事件要处理,若有事件要处理,处理完之后进入休眠,否则立即休眠,为了保证实时响应协调器下发的控制指令,系统每隔300 ms 唤醒一次,进行事件侦测。

系统每次唤醒后,都会检测门锁的状态信息,若门锁的状态发生变化,则立即将门锁的状态信息进行上报。电池电压的检测不需要频繁进行,每隔1 h唤醒检测一次。

若系统在唤醒后侦测到协调器下发的控制指令,接收控制指令后,如果是开锁指令,则立即执行开锁,同时,为了防止门锁长期打开的安全性问题,系统在延时10 m 后自动执行关锁指令。

微控制器驱动电机的引脚MA+为高电平,MA-为低电平则电机正转,驱动电机关锁;MA+为低电平,MA-为高电平则电机反转,驱动电机开锁,MA+和MA-同时为高电平,则电机停止工作。微控制器在执行开关锁操作后,延时100 ms,然后再驱动电机停止工作。

3.2 无线网关软件设计

无线网关的程序包括ZigBee 协调器程序和主控程序。协调器程序由CC2530 完成,主要功能包括:1)建立ZigBee 网络,接收终端节点加入网络;2)实现终端节点数据转发;3)实现主控程序的数据转发。协调器程序执行流程如图7 所示。

图7 协调器程序的流程

CC2530 执行过程中不需要考虑低功耗机制,系统启动后,检测网络节点的入网操作,对于已入网的终端节点,CC2530 循环检测终端节点是否有数据,在接收到终端节点数据下直接通过串口转发给主控程序,同时CC2530 接收到串口数据后,自动采用无线方式发送给终端节点。

主控程序由STM32F103RCT6 完成,主要完成以下功能:1)平台的数据通信;2)协调器的数据通信;3)平台、协调器数据的处理;4)终端节点的管理。执行流程如图8 所示。

图8 无线网关主控程序的流程

主控程序硬件初始化后,对协调器进行复位操作,启动协调器运行,主控程序根据配置的网络参数,采用MQTT 通信协议[16-17]和平台相连接,MQTT 协议使用发布/订阅消息模式提供一对多的消息发布,解除了应用程序的耦合。

主控程序通过串口接收协调器转发的终端节点的数据,主控程序接收到终端节点的注册成功信息后,则将该终端节点标记为上线,同时通过蜂鸣器鸣叫一声进行提示,后续通过接收终端节点的心跳数据来判断终端节点是否在线,主控程序通过MQTT协议发布终端节点状态到平台。对于终端节点的电池电压、门锁状态等参数信息,主控程序接收到信息以后不做任何处理,直接通过MQTT 进行发布。

主控程序通过MQTT 协议订阅相应的主题,接收平台下发的控制指令,对于接收到的控制指令,主控程序根据存储的白名单进行对比过滤,将合法的数据通过协调器转发给终端节点。

4 系统测试

智能门锁系统实物图如图9 所示,测试过程如下:首先给终端门锁和无线网关进行通电启动,无线网关的蜂鸣器鸣叫一声,说明终端门锁成功连接到无线网关,一段时间后断电重启无线网关,无线网关的蜂鸣器自动鸣叫一声,说明终端门锁在断开连接的情况下能够自动重连,反复试验,成功率达100%。

图9 智能门锁系统实物图

利用MQTT 网络调试助手,按照无线网关订阅的主题向无线网关下发开锁指令,终端门锁鸣叫一声,说明开锁成功,终端门锁在10 s 后自动关锁,重复试验100 次,测试成功率达95%以上。

在终端门锁串联电流表来测试功耗,终端门锁在低功耗休眠下电流为20 μA,终端门锁在唤醒发送接收数据瞬间电流达30 mA。

5 结束语

通过对基于ZigBee 的智能门锁系统的设计,实现了终端门锁系统网络互连的功能,用户可以远程下发控制指令控制门锁的开关操作,终端门锁实时上传门锁的状态信息。通过验证测试,终端门锁静态电流小于20 μA,功耗极低,符合干电池供电的要求,同时开锁成功率达95%以上,系统运行稳定,下发控制指令能够实时反馈,具有较好的实用价值。

猜你喜欢
控制指令信号线门锁
迈腾B8L 轿车灯光系统应急模式控制策略及开关监测信号线作用研究
城轨车辆控制指令试验装置研制
三类矩形微屏蔽线主模截止波长特性的矢量有限元计算
一种简易气门锁夹安装设备
6款热门智能门锁推荐
宏指令控制的多轴系统研究及实现
聊聊蓄电池的那点事儿小小信号线也能让蓄电池亏电
钥匙门锁对对碰
高速公路隧道通风、照明联动控制方案探讨
丰田威驰车门锁随速锁止功能失效