梁民, 王建
(中国人民大学, 实验室管理与教学条件保障处, 北京 100872)
中国人民大学图书馆自习区共2461个自习座位,各类在校生共计3万多。由于自习区座位数量有限,在校学生数多,经常会出现学生不排队无序抢座的现象。同时,存在使用水杯、书包或者图书等占座但又不使用的问题。为了解决以上问题,中国人民大学图书馆购置了座位管理系统并投入使用,提前预约座位的方式。较好地解决了无序抢座和占座不用等问题。
系统投入使用后,运维人员发现预约者选座成功后,有不到或者迟到早退现象,如果他们不主动地在管理系统释放座位,即使为空座,其他用户在座位管理系统中也无法选择此座位,由此带来了资源浪费。根据中国人民大学图书馆相关部门调研和统计发现,约90%左右读者预约时间未到提前离开,不会主动在系统里释放座位,造成大量空座但又在系统无法被选,此现象在中午十一点到十二点之间以及下午四点到五点之间尤其普遍。
上述现象,在使用了座位管理系统的高校图书馆,具有普遍现性。为了解决此问题,使用了座位管理系统的各高校图书馆,如文献[1]所述,采用了不同的管理制度和惩罚措施,约束预约者迟到或者提前离开时主动释放座位,一定程度上降低了座位空置率。中国人民大学图书馆通过加强宣传力度和增加运维人员巡检频次,通过及时释放座位来解决此问题。
靠管理制度和增加运维人员来解决上述问题,增加了运维成本,同时,某些时候也不可避免会造成了管理人员和座位预约者之间的矛盾。“工欲善其事,必先利其器”,要提高管理效率、减少运维成本,同时也减少工作人员与学生之间的矛盾,就需要开发更符合实际工作需求的、经济可行的软硬件系统,提供更为智能的管理方式,建设高效、智能、自动化的管理体系。
基于以上情况,文章在原座位管理系统基础上,进行了深入研究,对系统进行了如下优化。
(1) 设计了一套硬件系统,能够采集座位有人/无人信息,并能把采集到的信息传递给软件系统。
(2) 同时,对软件系统进行了二次开发,对迟到或者早退的座位预约者,系统自动发送短信,提醒用户在系统中释放座位操作;预约了座位而一定时间内无人的座位,后台自动释放此座位。
通过以上优化研究方案,较好地解决了座位管理系统存在的迟到早退不在系统主动释放座位,而使座位资源浪费这一问题。
图书馆座位管理系统优化方案设计如下。
(1) 设计一套硬件系统,对已预约的座位,通过探测座位区域的温度(有人时,探测到的温度为37±2 ℃,无人时,探测到的温度<30 ℃),判断座位上是否有人,从而达到采集座位状态(有人/无人)信息的目的,并把座位状态信息实时传输到服务器端。
硬件系统主要包括传感器模块、控制模块以及基站设备[2]。其中传感器模块主要功能为对座位状态(有人/无人)进行监测,然后传送给控制单片机;控制模块功能为接收各传感器采集的座位状态(有人/无人)信息,并将其传送至基站;基站设备功能为对数据打包进行处理后传输到上位机,即软件系统。
(2) 对座位管理系统进行二次开发,包括2部分,其一是开发短信提醒功能,提醒迟到早退者及时在座位管理系统进行操作或者释放座位;其二是对硬件系统传输过来的数据进行分析,把座位状态为“已预约”而一定时长内无人的座位,在系统后台自动释放,使其状态改变为“空闲”或者“可预约”状态。
系统优化方案总体架构图如图1所示。
图1 系统总体架构图
根据实际需要,本硬件系统主要功能是采集座位状态(有人/无人),并把信息传输到座位管理系统。除满足基本需求外,还应该尽量保证方便安装和布线,造价低廉,具有实际应用和推广价值。
本硬件设计方案主要功能是采集座位状态(有人/无人),只涉及到单片机、外围电路及传感器电路等,基站设备选用北京普诺兴科技有限公司的成熟的市场量产产品PS-DCA900-P1型边缘计算盒子。此设备支持BLE蓝牙连接, 并支持WIFI/ETH/4G 3种方式将数据传输云端。
(1) 单片机最小电路
系统采用意法半导体STM32L051K8U6芯片作为控制单元。此低功耗单片机在standby模式下电流大小为0.27 μA,芯片数据总线宽度为32位,最大主频32 MHz,芯片ROM大小为64 kB,RAM大小为8 kB, 有27个I/O口。工作电源电压范围从1.8 V至3.6 V,工作温度范围为-40 ℃至85 ℃。单片机最小系统部分包含电源、外部晶振和SWD调试下载接口等。此系统中,电源部分采用CR2032纽扣电池。图2为单片机最小电路[3]电路图。
图2 单片机最小电路图
(2) 温湿度传感器部分
系统采用Sensirion SHT3x温湿度传感器来采集座位附近环境温度。SHT3X是瑞士SENSIRION公司的一种新型温湿度传感器,体积小、精读高、采样快,温度测量精度可达±0.1 ℃,使用数字I2C通信接口。
SHT3x传感器将采集到的环境值经内部ADC模数转换后,得到原始的温湿度量。这个数字值经过Calibration Memory工厂校准、Data processing &Linearization线性化模块进行补偿,减小误差后,通过I2C接口(包含SCL和SDA引脚)输出给STM32控制芯片。
SHT3x温湿度传感器的引脚1(SDA) 和引脚4(SDA)作为I2C总线外接STM32L051K8U6芯片引脚的PB6和PB7,SHT3x温湿度传感器的引脚6(nRESET复位)接STM32L051K8U6芯片引脚的PB5,SHT3x温湿度传感器的引脚3(中断输出)接STM32L051K8U6芯片引脚的PB4。
式(1)是温度计算方法,其中,ST是实际测量值,-45和175是传感器厂家根据实际环境温度和实际测量值对应的曲线关系,得出的一个基本常量,经式(1)转换后,可以得到真实的温度(单位是℃)。
T=-45+175×ST/(216-1)
(1)
传感器部分电路图如图3所示。
图3 温湿度传感器设计电路图
(3) 低功耗2.4 GHz无线收发芯片部分
无线收发模块采用南京中科微SI24R1芯片,此2.4 GHz无线收发芯片(关断模式下≤0.7 μA电流,通信距离≤350 m)工作在2.4 GHz ISM频段,专为低功耗无线场合设计,集成嵌入式ARQ基带协议引擎的无线收发器芯片。SI24R1芯片工作频率范围为2400-2525 MHz,共有126个1 MHz带宽的信道,使用SPI通信。接口电路如图4所示。
图4 低功耗2.4 GHz无线收发芯片电路图
SI24R1无线收发模块的模块控制引脚3接STM32L051K8U6芯片的引脚PB0,SI24R1无线收发模块的模块片选引脚4接STM32L051K8U6芯片的引脚PA4,SI24R1无线收发模块的模块SPI总线时钟引脚5接STM32L051K8U6芯片的引脚PA5,SI24R1无线收发模块的模块SPI数据输入引脚6和模块SPI数据输出引脚7分别接STM32L051K8U6芯片的引脚PA7和PA6, SI24R1无线收发模块的IRQ引脚5接STM32L051K8U6芯片的引脚PB1。
(4) 按键和指示灯部分
为方便交互,系统采侧按按键。为指示明显,系统采用绿色LED指示灯。此部分电路如图5所示。
图5 按键和指示灯部分电路图
(5) 电源检测系统部分
由于尺寸、功耗因素,使用STM32L051K8U6芯片的内部模数转换器,采集DET与LOW的数值,12位AD数值范围为0至4095。电路方面,串联2个100 K的电阻,其BAT_DET引脚接STM32L051K8U6的PA0引脚,BAT_LOW引脚接STM32L051K8U62的PA1引脚。通过以下算式计算当前的电压:
BAT_DET电压=3.3/4096×AIN0通道采集的数值。
BAT_LOW电压=3.3/4096×AIN1通道采集的数值。
电池电压=BAT_DET+((BAT_DET-BAT_LOW)/100 000) × 100 000
图6为此部分电路图。
图6 电源检测电路图
系统流程如图7所示。首先是系统上电,对STM32的初始化,该初始化有STM32芯片的时钟初始化、中断初始化、串口初始化以及LED、按键初始化等。接着对2.4 GHz无线收发芯片进行初始化,包括对SPI初始化和模块的初始化。然后对SHT3x温湿度传感器进行初始化,包含I2C总线初始化及传感器初始化。最后对外围设备进行初始化。初始化是通过调用不同的子函数方式实现[4]。初始化完成后,系统会循环执行以下过程,单片机首先读取并计算温湿度传感器数据,然后进行协议格式填充、温湿度数据填充、CRC校验值计算填充、数据封包处理,并将数据包发送给基站设备。最后进入系统休眠。
图7 系统运行流程图
根据需求分析,座位管理系统二次开发主要完成2个功能。一是短信提醒功能:短信提醒迟到者,规定时间内到馆签到,否则座位会被释放;短信提醒早退者,及时返回或者主动在系统释放座位,否则规定时间后座位会被自动释放。第二个新增功能是对于迟到或者早退者,如果一定时间没有返回,座位管理系统在后台自动释放座位。
为实现以上功能需求,需要对原数据库表进行重新设计以及对业务进行逻辑分析,增加部分代码实现。
和座位相关的表有座位基础信息表Seats_Inf,存储每个座位的座位号、所属楼宇、楼层等相关信息,还有座位预约登记表Seats_Reserve,存储了被预约的座位一些信息,座位预约登记表Seats_Reserve结构[5]如表1所示。
表1 座位基础信息表Seats_Inf
为实现新功能,需要新设计一表,把每次硬件系统探测到的座位为“已预约”且座位无人的座位的当前时间,存放进来。新设计的表Seats_Status主要字段如表2所示。
另外,还需要在预约者信息表中增加一个预约者手机号码字段,以便于发送短信提醒信息。
表2 座位状态表Seats_Nowtime
为便于描述,做如下2个量化规定。
硬件系统每间隔N1分钟采集一次座位状态信息,传递给软件系统;已预约座位如果连续N2分钟状态为“无人” ,则发送提醒短信;已预约座位如果连续N3分钟状态为“无人” ,则在系统后台释放此座位,使其状态改变为“可预约”,其中N1 (1) 功能设计 更改座位状态的逻辑过程如下:对硬件系统传输过来的座位状态数据,软件系统先拆分数据包,得到座位编号和座位状态信息,首先判断座位状态是有人还是无人,接着判断是“已预约”还是“可预约”,如果是可预约,则不做任何处理,如果是“已预约且无人”,则把此当时时间和座位状态(有人/无人)信息写入数据库Seats_Status中,接着判断连续无人时间是否{N1-1,N1+1}分钟范围内,如果是,则发送短信提醒,连续无人时间大于N2分钟,就在后台释放此座位,使其状态变为“可预约”。 更改座位状态流程图[6]如图8所示。 图8 更改座位状态流程图 (2) 功能实现 发送短信提醒功能可以使用中国移动、中国电信或者中国联通的企业短信平台,其可以实现与客户指定号码进行短信批量发送和自定义发送业务,能够满足系统的需求。使用企业短信平台,用户可以根据需求自主撰写相关的文字内容,操作简便,修改方便。同时,统一的发送也确保了告知信息的精确度。这种方式不需要任何的硬件支持,只须向运营商申请网关和进行简单的API配置,设置好短信发送触发规则,即可实现短信自动发送。 在本系统,座位已预约&&座位状态为无人&&连续无人时间在(N2-1,N2+1)分钟内为触发短信发送的条件。其中座位是否已预约可根据座位ID查询获得结果,座位有人/无人状态可根据硬件系统传输过来的数据获取。判断某个座位连续无人时间在(N2-1,N2+1)分钟内的方法可以使用表Seats_Nowtime里面的某个座位的当前记录时间减去前N2/N1条记录的时间值(单位为分钟),如果差值在N2±1范围内,说明该座位为连续无人。 更改座位状态,使其从“已预约”更改为“可预约”,可通过数据库的Update()函数实现,只需一个查询语句,即可把符合条件的座位状态进行批量更改。 对该系统硬件做出了实物并进行了功能测试。测试方法及结果如下: 1) 断开STM32L051K8U6的引脚2和3,使晶振模块工作不正常,LED灯闪烁; 2) 断开SHT3x温湿度传感器的引脚1和和引脚4,使温湿度传感器模块工作不正常,LED灯闪烁; 同时,在基站设备PS-DCA900-P1型边缘计算盒子上了设置,当收到STM32L051K8U6单片机系统发送的数据包后,基站数据灯闪烁。实际测试,当系统实物动、静状态发生改变时,PS-DCA900-P1型边缘计算盒子数据灯会闪烁,证明监测到了状态变化,并传送到了基站。 针对现在图书馆座位预约管理系统使用中普遍存在的预约座位后不去或者迟到早退而使座位空置,浪费座位资源这一问题,进行了深入研究,设计了硬件系统和对软件系统二次开发,很好地解决了问题。系统的实际应用,能够提高图书馆信息化管理水平,有效减少管理者和学生之间矛盾,有较高的社会效益,具备较好的推广价值。4 系统测试
5 总结