基于LoRa的智能图书馆座位管理系统设计与实现
2019-03-19,,,
, ,,
(1.湖北大学 计算机与信息工程学院,武汉 430062; 2.烽火通信科技股份有限公司 业务与终端产出线,武汉 430073)
0 引言
图书馆在使用传统的无人管理座位模式时,座位使用情况的相关参数难以实时采集,因而很难对图书馆的座位形成有效的管理。随着LoRa技术的普遍应用[1],基于LoRa的智能图书馆座位管理系统也应运而生[2]。LoRa技术融合了数字扩频、数字信号处理、超强的链路预算和前向纠错编码技术[3],并且LoRa技术传输距离远、功耗低[4]、抗干扰能力强、穿透性好的特点完美契合本系统的需求[5]。
本文设计实现了一套基于LoRa技术的智能图书馆座位管理系统,能够实时采集座位状态信息,远程控制相关设备并且与用户实时对接。测试结果表明,本系统可以显著提升图书馆座位有效使用率,缩短人均寻找座位时间,具有良好的推广前景。
1 系统总体设计
图1 系统总体设计
系统总体设计如图1所示,基于LoRa的智能图书馆座位管理系统整体上由四部分组成,即:座位管理节点、LoRa基站、智能图书馆云平台服务器以及用户访问平台。座位管理节点包括采集模块以及显示模块两部分,对采集座位状态信息的模块称为采集模块,对显示座位状态信息的模块称为显示模块。LoRa基站保证了智能图书馆云平台服务器与座位管理节点之间的数据交互。智能图书馆云平台服务器对整个系统产生的数据进行处理,将其存入数据库,在需要时随时提取出来供用户使用。用户访问平台包括Web与手机APP。另外,一个LoRa基站覆盖一整栋图书馆的所有座位管理节点,一个智能图书馆云平台服务器可连接多个LoRa基站,实现多图书馆统一管理。本系统总体设计支持数据双向传输。由下至上时,由采集模块检测座位状态信息,通过LoRa网络传输到LoRa基站,再经过4G网络上传到智能图书馆云平台服务器,最终用户就可以获取到实时座位状态信息。由上至下时,由用户通过Web或移动前端发送指令给智能图书馆云平台服务器,再经过4G网络将指令发送给LoRa基站,最后经过LoRa网络发送给显示模块,通过LED指示灯来显示座位状态。
2 系统网络架构设计
在本系统中,LoRa技术采用LoRaWAN网络协议[6],而LoRaWAN的网络架构[7]是一个典型的星形拓扑结构,在这个网络架构中,LoRa基站是传输的中继,连接终端设备和后端中央服务器。在该智能图书馆座位管理系统中,终端设备为座位管理节点,后端中央服务器为智能图书馆云平台服务器。
另外,LoRa基站与智能图书馆云平台服务器通过4G网络建立通信链路,在此过程中采用TCP/IP协议[8]。
3 系统功能设计
3.1 座位的预约
1)通过Web网页、手机APP实现在线预约[9]。
2)座位预约成功后,LED指示灯为蓝色,读者会有30分钟的时间到达座位就坐。若30分钟后红外传感器检测到无人就坐,会自动释放该座位,并判定为一次违规;读者到达指定座位后,点击“确认到达”后即可就坐,LED指示灯变为绿色,若点击了确认达到,但30秒后红外传感器检测到无人就坐会自动释放该座位,并判定为一次违规。
3)若他人强行就坐已经被预约的座位,红外传感器检测到有人会直接将其判定为占座,LED指示灯变为红色,并将信号发送给值班管理员,管理员查明后,判定为一次违规。
3.2 座位的使用
1)可通过Web网页或者APP实现暂离座位、释放座位以及查看个人账号信息。
2)若要暂时离开座位必须点击“暂离”,LED指示灯变为蓝色,暂离时间是25分钟,若超过规定时长,人体热释电红外传感器检测到还无人就坐会自动释放该座位,并判定为一次违规(12:00-13:00和17:30-18:30两个时段保留60分钟)。若离开时没有点击“暂离”,则30秒内红外传感器检测到无人会自动释放该座位,并判定为一次违规。
3)若要释放座位必须点击“释放”,LED指示灯熄灭;若没有点击“释放”便离开,则30秒内红外传感器检测到无人会自动释放该座位,并判定为一次违规。若到了图书馆闭馆时间,可直接离开图书馆,无需手动释放该座位。
3.3 违规说明
1)读者预约座位却未在规定时间内到达或者点击了“确认到达”,却无人就坐。
2)读者没有预约座位,却强行就坐已经被预约的座位。
3)读者离开时没有点击“暂离”或者点击了“暂离”但未在规定时间内返回。
4)读者提前离开图书馆但未释放座位。
5)若读者有三次违规操作,则智能图书馆云平台服务器系统自动将该名读者列入黑名单,读者等待三天后会被移出黑名单。在黑名单期间,读者不能在线预约座位。
3.4 注意事项
1)账号与借书卡账号绑定。
2)每日可在线预约座位数量限额为座位总数30%。每日只要超出在线预约限额,便会关闭在线预约座位窗口,此时读者只能到图书馆现场就座。
4 系统平台设计
4.1 系统硬件设计
根据本系统总体设计可知,硬件部分包括座位管理节点和LoRa基站。
4.1.1 座位管理节点硬件设计
本系统的座位管理节点设计包括采集模块和显示模块两部分。如图2所示,采集模块由人体热释电红外传感器[8]、主控芯片、电源、LoRa无线通讯模块四部分组成,其主要任务是将采集到的座位就坐状态信息数据上传给LoRa基站。显示模块由LED指示灯、电源、主控芯片、三部分组成,主要任务是响应LoRa基站下发的控制[9]指令来控制LED指示灯的状态。其中出于低成本,小体积等因素的考虑,采集模块与显示模块共用主控芯片、电源。对于座位管理节点,并不需要复杂的计算,但考虑其低功耗需求,座位管理节点选取STC公司生产的STC89C52RC单片机[10]为主控芯片。STC89C52RC是一款低功耗、高速、超强抗干扰的CMOS 8位微处理器,在传统的51单片机上做了许多改进,使其为更多嵌入式系统提供有效的解决方案。另外,人体热释电红外传感器采用HC-SR501型红外传感器,其感应角度在100°的锥角内可调,感应距离在3m内可调,均符合功能需求。 LoRa无线通讯模块采用Rejeee公司的M-GW1全双工LoRa无线通讯模块。M-GW1功耗低,是高性能工业级芯片,可快速部署LoRa网络,实现远距离低功耗的控制和数据采集的目的。
图2 座位管理节点示意图
4.1.2 LoRa基站硬件设计
本系统LoRa基站设计如图3所示,由网络接口模块、电源模块、主控芯片、LoRa无线通讯模块四部分组成。LoRa基站一方面将座位管理节点中的采集模块采集到的座位状态信息数据发送给智能图书馆云平台服务器,另一方面响应智能图书馆云平台服务器下发的指令,并让座位管理节点中的显示模块执行。对于LoRa基站,除了低功耗特性外还需要满足一定复杂计算能力,因此LoRa基站选取ST公司的STM32F103[11]为主控芯片。STM32F103是一款ARM Cortex-M3内核的32位微处理器,内置高速存储器,有睡眠、停机、待机3种低功耗模式等特点。LoRa无线通讯模块采用M-GW1全双工LoRa无线通讯模块,与座位管理节点相同,在此不再做详细说明。
图3 LoRa基站示意图
4.2 系统软件设计
4.2.1 座位管理节点软件设计
LoRa节点在LoRaWAN协议里被分为ClassA、Class B和Class C三类不同的工作模式。本系统中的座位管理节点Class B模式是固定周期时间同步,兼顾实时性和低功耗。如图4所示,启动LoRa无线通讯模块后,每当结束字节完成时,则进行数据帧类型的判断。对来自采集模块的数据,先封装成帧,添加帧头、帧尾,然后通过LoRa网络发送至LoRa基站;对来自LoRa基站的数据,先解帧,拆除帧头、帧尾、然后把数据发送给显示模块,后者接收到数据后,调整LED灯显示状态。至此,便实现了采集模块数据的上传与LoRa基站指令的下达。
图4 座位管理节点流程图
4.2.2 LoRa基站软件设计
如图5所示,启动LoRa无线通讯模块后,每当结束字节完成时,则进行数据帧类型的判断。对来自智能图书馆云平台服务器的数据,先封装成帧,添加帧头和帧尾,然后通过LoRa网络发送至座位管理节点;对来自座位管理节点的数据帧,先解帧,拆除帧头、帧尾,然后通过4G网络接口模块发送至智能图书馆云平台服务器,后者接收到数据后,实时地推送给用户访问平台。至此,便实现了LoRa基站数据的上传与智能图书馆云平台服务器指令的下达。
图5 LoRa基站流程图
4.2.3 通信协议的设计
为了实现本系统中数据传输的准确性与可靠性,根据系统需求设计出4种类型的数据帧,分别为上行数据帧、下行反馈帧、下行指令帧、上行反馈帧。上行数据帧表示下层采集模块将采集到的座位状态信息发送给上层智能图书馆云平台服务器;下行反馈帧表示下层座位管理节点在收到该帧后可以得知上层智能云平台服务器是否接收到上行数据帧;下行指令帧表示上层智能图书馆云平台服务器发送给显示模块的指令;上行反馈帧表示上层智能图书馆云平台服务器收到该帧后可以得知下层座位管理节点是否接收到了下行指令帧。
另外,根据本系统的性能以及功能需求,设计了一条通用数据帧,帧内每一个字段的数据以十六进制方式存储。如表1所示,每一帧都包含帧头、数据字段、帧尾3个部分。其中,帧头由帧首、数据长度、数据帧类型三部分组成。数据字段由座位管理节点ID、MAC地址、有效数据、校验位这4个部分组成。如表1所示,帧的定界由帧首,帧尾来完成。帧首表示帧起始的地方,用0x01表示。帧尾表示帧结束的地方,用0x04表示。数据长度表示数据字段的长度。数据帧类型表示数据帧的类型。座位管理节点ID表示一个座位管理节点的编号。MAC地址表示对应座位管理节点的物理地址。有效数据表示真正有用的数据,长度不定。校验位表示从数据长度域开始到客户数据字段结束。
表1 通用数据帧
5 系统测试与分析
本文从功能测试与性能测试两方面来验证基于LoRa的智能图书馆座位管理系统的实际效果。以湖北大学图书馆为例(共十二层楼),在图书馆的每一层都划分出该层座位总数(每层座位总数为300个左右)30%的座位作为智能座位管理区域。为了更好的验证系统的功能与性能,每一层楼除了将智能座位管理区域划分在中心区域,还特地在最偏远的一些角落也按照比例选取了一些座位。剩下的座位总数为70%的区域为传统的无人管理座位区域。具体实现为:首先在图书馆楼顶架设一个LoRa基站,然后在智能座位管理区域布置好座位管理节点,最后搭建一个图书馆云平台服务器和用户访问平台。下面详细介绍用户访问平台(以网页界面为例)。
1.4.1 术前准备 ①患者及家属知晓手术细况,并自愿签署手术知情同意书;②确保患者肠道情况良好,为患者进行通便灌肠,并术前两天对患者采取禁食处理;③对患者进行超声检查腹部、胸部,对患者肝脏、肺脏等脏器情况详细调查;④保证患者情绪正常和患者体质符合手术要求。
预约座位:如图6所示,进入预约座位界面可以预约空余的座位。
图6 预约座位界面
确认到达:如图7所示,到达预定座位之后,点击“确认到达”按钮即可就坐。
图7 使用座位界面
暂时离开:如图8所示,要暂时离开的话,先点击“暂时离开”按钮,离开之后会进入保留座位25分钟的倒计时。
释放座位:如图9所示,离开之前先点击“释放座位”按钮,然后离开。
图9 释放座位界面
5.1 系统功能测试
功能测试主要从系统功能的完整性、系统运行稳定性、两种模式下座位的有效使用率以及人均寻找座位时间,一共4个方面来考察。第一组对比为传统无人管理模式区域与智能座位管理区域的座位有效使用率对比(座位有效使用率 = 实际座位平均使用时长/理论最大座位平均使用时长),测试结果如表2所示。按照各院校中的各年级的人数比例,随机选取一共200人作为样本对象。样本对象第一个星期使用传统的无人管理模式,第2个星期使用智能图书馆座位管理系统,将人均寻找座位时间进行对比,这是第二组对比,测试结果如表3所示。
表2 座位有效使用率统计
表3 人均寻找座位时间统计
经过两个星期的功能测试,结果表明 基于LoRa的智能图书馆座位管理系统实现了所有的设计功能且运行稳定。相比传统的无人管理座位模式,座位有效使用率有了显著提升,人均寻找座位时间有了明显缩短。
5.2 系统性能测试
主要从该系统的覆盖率以及对座位管理节点的最大负载两方面来考察。在图书馆内测试距离以楼层序号为单位,考虑到对整栋图书馆的覆盖,选取12楼、8楼、4楼、1楼为测试样本,测试楼层选取一个星期7天,每天在8:00-12:00、14:00-17:30、18:30-21:303个时段连续收发10000个数据包,分别统 计数据传输过程中的丢包率与误码率,测试结果如表4所示(考虑到每天测试结果大体相同,该表只给出了星期二的测试结果)。另外,对该系统进行拓展覆盖率测试,在图书馆外选取200 m、400 m、700 m、1 000 m为样本测试距离。如表4所示,即使是在晚自习18:30-21:30最高峰的时段,最偏远的角落里,该系统对图书馆内的覆盖率为100%,数据的丢包率和误码率均为零。如表5所示,在图书馆外,随着LoRa网络通信传输距离的增加,数据的丢包率和误码率逐渐增加,值得注意的是,距离为1 000 m时的丢包率仅为1.0%,误码率仅为1.15%。
表4 图书馆内丢包率与误码率统计
经过性能测试,上述结果表明LoRa网络传输距离远,且有较好的穿透性,完全能够100%无死角覆盖整栋图书馆。另外,该系统在最高峰时段,依然能够满足1 000个左右的座位管理节点的正常通信。由此可见,基于LoRa无线组网的智能图书馆系统具有很好的性能。
表5 图书馆外丢包率与误码率统计
6 结束语
本文旨在将LoRa技术应用在智能图书馆座位管理系统中,实现底层座位管理节点,中继LoRa基站,上层智能图书馆云平台服务器三者之间的实时通信,满足智能图书馆座位管理系统的功能与性能需求。文中对系统总体架构设计、系统功能设计、软硬件设计以及通信协议设计做出了详细的研究。该系统便于组网,成本与功耗也很低,而功能与性能测试的结果也表明该系统不仅显著提升座位有效使用率,缩短人均寻找座位时间,还具备抗干扰能力强,穿透性强,传输距离远的优点,这使得该系统具有良好的前景与市场。