□□ 张 钰 (山西职业技术学院,山西 太原 030006)
目前,楼宇智能门锁系统的无线网络通信普遍采用WIFI、蓝牙协议栈BLE、ZigBee和NB-IoT等通信技术,各种类型的智能门锁特点见表1。由表1可知,现有技术不能满足稳定性、长距离传输和低功耗等工程应用需求,同时存在用户体验差、管理不便和安全性较低等问题。因此,拟设计一种基于改进型LoRa的智能锁系统,充分利用LoRa通信协议功耗低、通信距离长和频段免费等特点,使得智能门锁具有安全性高、成本低和便于管理等特点。
表1 无线通信协议的智能门锁
智能门锁系统的设计是根据开放式系统互连OSI(Open System Interconnect)参考模型为依托,设计自南到北的模块化功能,智能门锁系统由物理层、网络层和云端服务层等三部分组成,智能门锁系统结构如图1所示。
图1 LoRa门锁系统总体框架
其中,物理层主要是LoRa通信模块,LoRa通信模块为小区每个用户的门锁;网络层为LoRa网关设备,其是各用户门锁LoRa通信数据的汇聚中心,实现与物理层和LoRa服务器之间的数据通讯;云端服务层由云端服务控制和应用服务控制组成,用于实现业务处理和设备管理,云端服务控制是远程控制LoRa智能门锁服务的各种功能的后台远程维护,应用服务控制是在手机终端,实现用户与智能门锁系统之间的交互功能。
智能门锁系统的物理层设计如下:
(1)硬件设计。关键在于LoRa通信模块中各个核心部件的选用。首先是控制器芯片型号的选择,核心芯片确定后,基于实现的功能选择外围电路模块。
(2)软件设计。基于硬件资源开发的软件功能和手机Android APP软件。根据功能需求,智能门锁系统的核心芯片采用低功耗STM32系列芯片,系统的无线网络构建采用改进性LoRa通讯协议。
2.1.1核心芯片
智能门锁核心芯片的选用是基于LoRa的STM32系列芯片,其主控芯片型号为STM32L151C8T6D。智能门锁由LoRa主控芯片模块、1.8寸串口TFT触摸屏模块、PAM8610数字微型功放板、直流电机正反转模块(驱动电压12 V)和DC电池模块(具有升压功能)组成,如图2所示。
图2 基于LoRa的门锁硬件组成图
通信模块是整个门锁系统能耗的关键,故使用支持LoRa通信协议芯片,其型号为STM32L151C8T6D,该芯片的微控器功耗低、可扩展性好、稳定性高且性价比高。智能门锁的RF射频模块采用利尔达芯片模块,型号为LSD4RF-2F717N30。
2.1.2软件开发
物理层硬件芯片代码由STM32 CubeMX软件生成,是基于芯片型号的硬件模块化初始代码包,再利用uVision5进行模块化应用开发,如图3所示。
图3 硬件芯片代码模块化编程
模块化的硬件编程大大缩短了开发时间。由STM32 CubeMX软件生成的模块化代码包中包括LoRa智能门锁功能性设计中所需要功能的基础代码、触摸屏显示与交互和低功耗模式选择等。硬件功能开发设计思路是LoRa智能门锁系统初始化完成后,与网关进行网络注册;注册成功后,智能门锁与网关之间保持畅通的无线网络通信;智能门锁打开外部中断控制服务,转入低功耗休眠模式,此时智能门锁系统的所有功能将由外部中断控制激活;激活后智能门锁系统进入中断服务主程序,根据外部中断功能调用对应中断服务函数实现中断控制,其主程序流程如图4所示。
图4 主程序流程图
在完成系统初始化、MAC初始化、设备入网、设备注册、开启中断服务并转入低功耗休眠模式后,等待外部中断信号唤醒系统,外部中断信号分为触摸屏唤醒信号和远程APP控制中断信号。智能门锁系统在未接收到外部中断信号时,系统一直处于低功耗的休眠模式,并关闭触摸屏和语音播报等功能。当智能门锁系统接收到外部中断信号时,会立即唤醒系统,由低功耗模式转入正常工作模式,启动触摸屏功能、语音播报功能以及远程控制功能,实现全功能操作控制模式,并且通过判断外部中断信号来源,根据不同的信号来源执行不同的中断服务函数,在中断服务程序执行完毕,系统重新进入低功耗休眠模式。为此智能门锁系统设计了远程控制和触摸屏控制子程序模块,具体如下:
(1)远程控制模块。远程控制功能通过移动通信网络和Internet网络连接LoRa网关,由LoRa网关控制智能门锁节点实现远程控制,系统初始化配置智能门锁节点设备上的LoRa通讯接收机每隔0.2 s进行信道活动检测(CAD),检测信道中LoRa网关发送的远程呼叫信号。若有远程呼叫信号,LoRa通讯接收机接收并检查信号来源,产生远程控制中断信号,远程控制中断信号唤醒休眠中的智能门锁系统进入正常工作模式,并产生外部控制外围设备,激活外围设备,实现远程控制智能门锁功能,完成远程控制操作。其中远程控制信号指令分为4种状态,分别为“0”、“1”、“2”和六位字母和数字密码,分别对应开锁、关锁、紧急关锁和新密码。开锁功能执行后,恢复系统初始化状态,恢复触摸屏功能,系统的执行结果发送给LoRa网关后进入低功耗休眠模式。
(2)触摸屏控制模块。触摸屏功能主要是密码开锁和呼叫远程控制开锁。在密码开锁控制中,用户连续敲击两次,唤醒触摸屏,显示和语音播报“欢迎主人回家!”,并在触摸屏的下一行显示“请输入密码”按钮,同时唤醒智能门锁系统,触摸按键开启系统控制时间中断函数,设置10 s定时器功能,在10 s内输入密码,按下确认键后密码输入结束,系统定时器功能结束,关闭定时器和触摸屏功能。若输入密码正确时执行开锁,生成开锁日志信息,发送给LoRa网关,系统进入低功耗休眠模式;若输入密码错误时则显示和语音播报:“密码输入错误,请重试!”,同时时间定时器复位,重新定时10 s,用户可重新输入;若输入错误密码次数≥6时,触摸屏则启动锁死功能,锁死功能一旦触发,将启动锁死事件定时器,该锁死功能定时为12 h,用户在12 h时之内无法使用触摸屏,触摸屏上显示和语音播报:“密码输入错误,请明天重试!”,该时间段内用户只能使用手机APP开锁。
网关开发选用SX1262LORA无线470M网关扩频开发模块。LoRa网关的功能是支持固定IP和动态域名解析方式连接数据中心,并且支持透明传输协议、通用模式(主动轮抄,定时上报)和MQTT协议等,实现LoRa协议智能门锁节点通过LoRa网关,实现与LoRa云端服务器的链接。LoRa网关网络通信结构结构如图5所示。
图5 LoRa网关网络通信结构
LoRa网关将门锁节点上传的数据通过UDP协议转换成Json格式的加密数据。通过以太网IPv4传输给LoRa服务器,由LoRa服务器备份数据,再将加密的Json数据使用MQTT协议发送给云端服务器,供服务层和应用层实时解析数据并控制。选用改进型的LoRa技术同步叠加信号的解调方式进行LoRa通信,保证系统的稳定性,与通用型LoRa的性能比较见表2。
云端服务层由LoRa服务控制和功能性维护控制组成。其中LoRa服务控制负责管理和对接LoRa底层网络,业务服务器实现整个系统管理和控制功能;LoRa服务控制是管理功能,基于B/S架构实现;前后端都部署在云端服务器;LoRa服务控制网页界面使用Visual Studio进行Windows界面设计开发,功能有权限设置、注册用户信息修改和用户信息修改;LoRa服务控制的数据使用MySQL数据库存储信息,并用MyBatis管理数据库。功能性维护控制的数据链表由驱动软件、用户控制日志、开关锁日志、用户信息和用户密码信息(WPA2-PSK)等数据组成,用来存储设备、键盘锁定状态和设备所属用户的信息。LoRa服务器使用开源的物联网服务器,具有云端服务控制和应用服务控制两部分功能。
手机APP应用开发使用Android Studio软件基于Android 5.0系统开发APP应用,如图6所示。手机APP和服务器之间采用C/S架构,采用http协议进行通信;APP登录成功之后,用户与远程服务器,通过HTTP协议向服务器进行交互,接收当前门锁信息;在APP上显示当前门锁的状态,用户通过APP发送控制指令,控制智能门锁。
图6 Android Studio开发界面
在某学校6层宿舍楼对基于改进型LoRa智能门锁系统进行功能性测试和通讯稳定性测试。其中功能性测试如图7所示。
图7 APP智能门锁控制记录
通讯稳定性测试是在带宽和传输速率一致的条件下,LoRa扩频因子使用SF12,一对多收发数据,进行10次测试,其丢包率见表3。
表3 LoRa智能门锁系统丢包率
利用LoRa通信技术的优势和特点,将LoRa通信技术应用于智能门锁。基于改进型LoRa智能锁系统设计了LoRa智能门锁系统,通过测试该设计系统可行,且该系统具有稳定性高、公共免费传输频段、耗能低和安全性高等特点。