李高峰 胡国强 杨彦荣
摘 要: 档案存储环境对档案“寿命”的长短起决定性的作用,为加强对档案存储环境监测,进一步做好档案存储工作,结合LoRa无线通信技术的快速演进,设计一种基于LoRa技术的档案存储环境监测系统。该系统采用LoRa网络将采集的温度、湿度、有害气体浓度数据上传到上位机软件,实现档案存储环境因子温度、湿度、有害气体浓度的实时监测。文中详细描述该系统硬件框架和软件框架的设计方法和实现原理,最后基于PyQt开发档案存储环境监测系统上位机软件。测试结果表明,该系统能准确获取档案存储环境数据,可满足档案存储环境监测的需求。
关键词: 档案存储; 环境监测; 系统设计; LoRa技术; 软件开发; 无线通信
中图分类号: TN931+.3?34 文献标识码: A 文章编号: 1004?373X(2020)12?0078?05
Abstract: The archival storage environment plays a decisive role in the "life" of the archive. An archival storage environment monitoring system based on LoRa technology is designed in combination of the rapid evolution of LoRa wireless communication technology, so as to strengthen the monitoring of archival storage environment and further improve the work of archival storage. In this system, LoRa network is used to upload the collected data of temperature, humidity and harmful gas concentration to the upper computer software, so that the real?time monitoring of temperature, humidity and harmful gas concentration of environmental factors in archival storage are realized. The design method and implementation principle of the hardware and software framework of the system are described in detail. The upper computer software of the archival storage environment monitoring system is developed based on PyQt. The testing results show that the system can obtain the data of the archival storage environment accurately, and meet the needs of monitoring the archival storage environment.
Keywords: archival storage; environment monitoring; system design; LoRa technology; soflware development; wireless communication
0 引 言
档案存储环境因子是指影响档案耐久性的各种自然因素,其主要包括温度、湿度、污染物等。相关研究认为档案存储温度应在8~25 ℃之间,超过25 ℃,会加速纸质档案中纤维素,特别是非纤维素成分老化;档案存储湿度应在50%~65%之间,大于65%在一定条件下会加速纸张中纤维素的水解和降解,不利于抑制微生物和害虫的生长繁殖;酸性有害气体和氧化性有害气体同样会给档案带来危害[1]。为了确保档案存储环境保持在合理科学的温湿度范围,防止污染物对档案造成危害,应对档案存储环境进行实时监测。现阶段大多数档案馆的存储环境监测仍依赖于人工,监测的数据精确度不高,连续性不强,难以实现长期监测。因此,建立自动化、智能化的档案存储环境监测系统迫在眉睫。
针对档案存储环境监测系统,国内已有学者展开了研究,蔡利民采用有线以太网实现了基于Web的档案库房温湿度监测系统[2];贾华峰等采用RS 485总线构建网络实现了档案库房温湿度监测报警系统[3];林光源采用WiFi网络实现了基于B/S模式的远程档案库房环境监测系统[4]。以上研究中有线以太网和RS 485总线方式施工复杂、维修难、扩展性差,WiFi技术没有了物理线路的局限,但也存在节点数目受限、通信范围小、成本高的缺陷。
LoRa是Semtech公司创建的低功耗局域网无线标准。该技术利用433 MHz/470 MHz/868 MHz/915 MHz 频段实现了超低功耗、超远距离传输,有效传输距离可达数千米以上[5]。LoRa还可以将数万个分布在不同地域的传感器组织成一个无线局域网,具有网络节点多、覆盖范围大等特点[6]。 鉴于LoRa技术的优势及解决现有研究存在的问题的需要,本文基于LoRa技术设计一种低成本、低功耗的档案存储环境监测系统,实现了温度、湿度、有害气体浓度等档案存储环境数据的实时采集和远程查询。
1 系统总体架构
本文所研究的档案存储环境监测系统由温湿度传感器、烟雾传感器、数模转换模块、继电器模块、主控制器、LoRa网络和监控主机组成,具体设计如图1所示。
系统通过温湿度传感器可以采集档案存储环境温湿度并向主控制器发送数字信号。当档案存储环境中出现有害气体时,烟雾传感器可以输出对应的信号,此信号经过数模转换模块转换后可发送给主控制器。主控制器接收到温湿度传感器和数模转换模块发送的数字信号后,通过LoRa网络发送给监控主机。监控主机接收到信号后经过处理可显示档案存储环境数据,一旦出现温湿度异常,可在系统界面上给出报警,并下发控制指令给主控制器上的继电器模块调用空调和除湿器进行处理;一旦发现有害气体超标,可通过上位机提醒管理人员进行人工干预,从而保障档案存储环境正常。
2 系统硬件设计
主要对构成档案存储环境监测系统的主控制模块(由主控制器、电源模块和继电器模块组成)、LoRa网络、传感器模块(由温湿度传感器、烟雾传感器、数模转换模块)进行选型和设计。
2.1 主控制器模块
档案存储环境监测系统使用的控制器为Raspberry Pi Zero。此控制器是由英国的慈善机构Raspberry Pi Foundation所开发一款ARM架构的控制器开发板,其硬件配置如下:1 GHz单核CPU;512 MB RAM;Mini HDMI接口;Micro USB OTG接口;Micro USB电源供电;40个可用引脚;Composite video and reset headers;CSI camera connector (v1.3 only)。软件上,由于其支持运行如Raspbian等ARM架构的Linux操作系统,既可以方便灵活地实现传统裸机单片机所不能实现的任务,又支持C语言编程,以满足硬件底层驱动的需求,如实现传感器的驱动。其内置Python解释器,可使用Python语言实现上层应用,如实现多任务处理。随着物联网行业的兴起,Raspberry Pi Zero因其体积小、价格低廉、功能强大、运算速度快且易扩展等优点,从众多单片机中脱颖而出,被越来越多地运用在物联网领域。继电器模块选用光耦隔离、抗干扰性好、单刀双掷的2路继电器。电源系统选用适用于Raspberry Pi Zero的锂电池电源模块。
2.2 LoRa网络
LoRa网络由两个正点原子设计的LoRa无线通信模块组成,该模块使用SX1278芯片,工作频率在410~441 MHz;接口电气标准为TTL;工作温度为-40~85 ℃;工作电压在DC 3.3~5 V之间;工作电流在9 μA~118 mA之间。档案存储环境监测系统在两处使用到了该模块:一处是在Raspberry Pi Zero控制器端;另一处是运行有上位机软件的监控主机。控制器与监控主机通过LoRa无线通信模块进行通信。由于电脑硬件的更新,目前电脑很难找到RS 232串口通信接口。考虑到兼容性以及实用性,本设计在监控主机增加USB转TTL模块,即插即用,方便快捷。
2.3 传感器模块
温湿度传感器选用DHT22空气温湿度传感器。DHT22是一个四针脚模块,包含VCC,DATA,NC,GND四个引脚,实际使用中只会用到VCC,GND,DATA,NC引脚为空脚,VCC电压范围是3~5 V。DHT22测量温湿度的原理是通过内置电容式湿度传感器和热敏电阻来测量周围的空气,取得温度和湿度值后由 DATA引脚向主控板发送一个数字信号。
烟雾传感器选用MQ?2烟雾传感器,MQ?2烟雾传感器探测范围极其广泛,适宜于液化气、苯、烷、酒精、氢气、烟雾等探测[7],测量范围为300~10 000 ppm,具有良好的重复性和长期的稳定性,需要注意的是在使用之前必须加热一段时间,否则其输出的电阻和电压不准确。由于Raspberry Pi Zero没有板载数模转换器,而烟雾传感器输出为模拟量,故在采集烟雾传感器输出信号时需要借助其他模块进行数模转换。本设计使用PCF8951数模转换模块,可以将模拟量转化为数字量,并通过I2C协议输出。
将上述主控制器模块、传感器模块、两个LoRa无线通信模块、USB转TTL模块整合在一起组成整个硬件系统。其核心部分由主控制器模块、传感器模块、一个LoRa无线通信模块组成,电路原理图如图2所示。
3 系统软件设计
3.1 传感器驱动逻辑设计
档案存储环境监测系统的传感器驱动和上层通信均采用Python语言设计。对于底层驱动来说,Python语言并不适合,并且存在一定的困难性。如果采用C语言与Python语言混合编程,也会增加开发难度。综合考虑后,采用纯Python编程。其工作原理如图3所示。其中箭头指向表示数据流动方向。
在初始阶段,Raspberry Pi Zero控制器需要对阈值设定配置文件进行处理,若没有配置文件,则新建配置文件,若有配置文件,则读取配置文件信息,以便后用;控制器采用单总线通信方式直接读取DHT22传感器温湿度数值;控制器通过I2C总线控制PCF8951模块,通过模拟输入口采集MQ?2烟雾传感器模拟量输出;在完成上述操作后,控制器每采集一次传感器数据都会与设定阈值进行比较,当温度不在设定的阈值范围内时,控制继电器1打开,继電器1指示灯亮,可调用空调进行升降温。当湿度值超过设定的阈值时,控制继电器2打开,继电器2指示灯长亮,可调用除湿器进行除湿。
3.2 通信设计
采用主从设计模式进行通信,上位机软件为主设备,控制器为从设备,定义了3种指令:读阈值指令、写阈值指令以及读传感器指令。具体通信方式如图4所示。
上位机与下位机通信编码方式为十六进制。控制器接收到每种指令后,都会进行不同的动作。其中每个指令的第1个字节为指令标识,方便控制器判断指令类型。控制器接收到相应的指令后会根据不同指令响应上位机发送不同的数据,相应数据第1个字节同样为指令标识。这里使用0xzz代表不定值。读数据指令接收的数据中,规定第2,3个字节表示温度整数、小数部分,第4,5个字节表示湿度整数、小数部分,第6个字节表示烟雾含量等级。这里的烟雾含量等级表示烟雾传感器的数据采集结果经过8位A/D采样值得到的结果。对于气体而言,需要将其变换到气体含量,查阅资料,使用根据8位A/D采样值结果,再乘以39.2,可以得到具体气体含量估计值。在写阈值指令和读阈值指令的接收数据中,规定第2,3个字节表示温度上、下限整数部分,第4,5个字节表示湿度上、下限整数部分,第6个字节表示烟雾阈值编码值。对于烟雾阈值而言,由于用户是以ppm为单位输入的气体含量阈值X数值较大,在数据编码方面,在保证系统统一编码字节长度为6的情况下,需要将气体阈值设定值换算到气体含量等级,即X/39.2,然后取整,以方便编码,结果发现误差较大。在保证精度的情况下,为方便编码,使用10×([X39.2])计算方式,对最后计算结果取整,以达到减小误差的目的。上述结果进行十六进制编码即为烟雾阈值编码值。
上述通信数据采用独立LoRa无线通信通道通过LoRa无线通信模块进行通信。由于采用自定义指令、自定义数据编码传输方式,增加了容错能力,抗干扰能力强,数据传输可靠,不会受到同样工作方式下其他通信设备串频的信号干扰。
3.3 上位机程序设计
Qt是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架[8]。Qt是面向对象的框架,使用特殊的代码生成扩展以及一些宏,Qt很容易扩展,并且允许真正地组件编程[9]。Qt库是目前最强大的库之一。PyQt是由Phil Thompson 开发的一个创建GUI应用程序的工具包。它是Python编程语言和Qt库的成功融合[10],并具有许多C++不具有的特性。
本次设计中上位机部分使用PyQt5。使用的主要组件有QWidget,QLcdNumber QLabel,QDoubleSpinBox,QSpinBox,QPushButton,QMessageBox。其中QLcdNumber用于构建LCD模拟显示屏,以增加美观度。QLabel组件主要用于显示文本,这里使用该组件对QLcdNumber组件进行说明。由于本设计需要显示温度、湿度以及有害气体含量三种传感器数据,故分别使用了三个QLcdNumber和QLabel组件以对应三种数据的展示。QDoubleSpinBox,QSpinBox组件用于用户阈值设定值的输入。其两者的区别在于前者具有浮点输入接收能力。QPushButton用于构建各种按钮,本设计中使用该组件生成“保存设定值”“获取设定值”和“空调控制”“除湿器控制”两个按钮。QMessageBox则用于弹窗提醒。QWidget是一个容器组件,用于将上述组件组合到一起。
上位机根据实时监测,设定温湿度上下限和烟雾上限,控制器根据温湿度阈值控制两个继电器单元分别调用空调和除湿器的功能进行设计,并采用周期查询方式实时更新数据。考虑到实际情况,设置周期为20 s,即20 s内可以有效地检查到档案存储环境变化。
上位机将接收到的数据在LCD模拟显示屏上进行显示,并配有标题作为说明。若超过阈值上限,则对应标题栏信息出现超出上限警告提示,并发出声音告警;若低于阈值下限,则对应标题栏信息出现低于下限警告提示,并发出声音告警;正常范围内,标题栏显示其单位和传感器数据类型。基于实际情况考虑,只对烟雾上限进行设定,原理及效果同上。
4 系统测试
本系统在西北农林科技大学档案馆进行测试,先把主设备放置在档案架,让其通过USB接口进行供电,加电后程序开始启动。然后把带USB转TTL模块的LoRa无线通信模块插入到距离主设备10 m的监控主机并安装USB转TTL模块的驱动程序。在监控主机的系统界面上双击打开软件,软件会自动识别设备并加载设备,如加载成功,会有图5所示弹窗提示。点击确定,进入主页面。如未插入设备,软件会有图6所示警告。
此时需要插上设备并重新打开软件,否则会自动退出。由于Raspberry Pi Zero控制器开机需要时间加载程序以及MQ?2烟雾传感器预热,在预热阶段,传感器数值可靠性差。基于此考虑,程序在启动时预留40 s左右的时间,以便控制器进行初始化,以此来达到提高通信质量的目的。
进入主页面后,将温度设定在5~20 ℃,湿度设定在50%~60%之间,有害气体浓度上限设定在400 ppm,然后点击“保存设定值”按钮。在保存设定值操作成功后,系统会对控制器配置文件保存的阈值与本地设定阈值进行比较,如比对成功,上位机界面会出现保存阈值成功的提示;如比对不成功,则系统不会有响应。阈值保存成功后,系统可实时获取档案存儲环境数据,具体如图7所示。
此时温度超过设定的上限,对应的温度标题栏出现警告信息,提示“温度高于上限”;湿度低于设定下限,对应的湿度标题栏出现警告信息,提示“温度低于下限”;有害气体含量保持在正常范围内,对应的标题栏显示数值物理意义和对应单位。
5 结 论
本文基于LoRa技术设计并开发一套档案存储环境监测系统。该系统采用Master?Slave设计思想,详细说明了软硬件实现原理、功能及环境参数。测试结果表明,该系统软硬件工作正常,上位机监测软件能够接收到档案存储环境数据,一旦监测到环境异常则通过上位机监测软件告警并启动相应设备进行干预。该系统能够持续获取档案存储环境监测数据,可扩展性强,能满足档案存储环境实时监测需求。
注:本文通讯作者为胡国强。
参考文献
[1] 贺冰花,吕建辉.基于物联网技术的档案存储环境监测[J].山西科技,2016,31(1):106?108.
[2] 蔡利民.基于Web的档案库房温湿度监测系统的实现[J].江汉大学学报(自然科学版),2007(1):71?73.
[3] 贾华峰,张永玉.档案库房温湿度监测报警系统的研究与实现[J].科技信息,2010(9):88?89.
[4] 林光源. 基于B/S模式的远程档案库房环境监测系统的设计与实现[D].武汉:华中师范大学,2017.
[5] ALI A, SHAH G A, FAROOQ M O, et al. Technologies and challenges in developing machine?to?machine applications: Aasurvey [J]. Journal of network & computer applications, 2017, 83: 124?139.
[6] 王钧.基于LoRa的设施农业区自动气象站监测系统设计[J].中国农机化学报,2018,39(5):82?86.
[7] 张小娟.智能粮仓监控系统的设计与实现[D].长沙:湖南大学,2017.
[8] 刘克然.基于局部半径估算的神经元结构重建算法的研究与实现[D].长沙:湖南大学,2018.
[9] 高钰舒.基于微流控芯片的微颗粒双路荧光检测系统设计[D].大连:大连海事大学,2018.
[10] 朱凤梅,梁一婧,安祥宇,等.基于WebService的地震信息快速发送系统[J].地震工程学报,2015,37(z2):236?239.