基于云端一体的实验室监控系统设计与实现

2018-11-08 09:02陈讲清聂银鑫
实验技术与管理 2018年10期
关键词:树莓底层终端

刘 明, 陈讲清, 聂银鑫

(华中师范大学 计算机学院, 湖北 武汉 430079)

为了实验室的安全需要,各实验室重视监控系统的建设[1]。目前国内高校实验室大多采用视频监控、火灾探测报警等方案,该方案往往由企业承接工程后实施,需要一次性的较大投入,建设及维护成本高,而且监控范围有限,安装点固定不变,很少提供通过移动终端进行远程监控的功能。

智能手机的普及及物联网技术为实验室安全监控提供了很好的移动应用解决思路[2],本文利用APICloud云平台、树莓派及传感器等设计一个远程监控系统。系统底层以树莓派为监控单元,通过各类传感器采集现场的温湿度[3]、烟雾[4]、光照、视频、图像等数据[5-6],通过电路板上GPIO引脚控制电机及继电器等现场设备。树莓派用作设备网关与中间层的APICloud云平台建立连接,将底层数据实时传输到云服务器存储[7]。APICloud同时为底层和终端提供数据服务,用户通过移动终端App可以远程查看多个被监控设备、控制现场设备以及实时获得安全异常提醒等[8-9]。本监控应用系统采用云端一体化结构,数据安全存储在云服务器上,支持远程查看多个被监控设备,新增传感器及开关设备[10]。

1 监控系统的总体设计

1.1需求分析

根据实验室的建设经验以及在实验室工作的体验,总结出的功能性需求如图1所示。

图1 监控系统功能结构

(1) 用户管理。设定的系统用户主要指实验室管理人员。

(2) 传感器管理。包括对监控单元的注册、登录、添加、删除,以及对各传感器的添加与删除。

(3) 温度等监控。显示温度、烟雾、光照等传感器数据变化的折线趋势,统计监测次数以及设置监测数据异常的预警阈值。

(4) 图片拍照。监控现场的照片拍摄操作,以及照片查询、浏览和下载。

(5) 视频录像。监控现场的视频录像操作,以及视频查询和播放。

(6) 开关设备控制。远程控制本地设备的开关闭合操作,并在控制台上显示设备开关状态。

1.2 总体架构

基于云端一体的APICloud提供2个API,即“云API”和“端API”,其中“云API” 包括数据服务、推送、云修复和大数据分析等,因此采用APICloud云平台结构可以简化监控系统的开发,其结构见图2。

图2 APICloud平台

实验室监控系统的总体架构包括底层、APICloud云平台和移动终端3个部分,如图3所示。其中,底层由树莓派通过传感器采集获取实验室现场信息,同时树莓派也可以根据终端发来的命令控制传感器。

图3 系统总体架构图

APICloud Studio可用于开发iOS和Android两种终端设备,用户使用移动终端可以访问APICloud的后台数据库,查看采集的现场信息以及对传感器进行远程控制操作。此外,系统开发时为了减轻云平台的网络流量负担,以树莓派为核心搭建了一个存储视频录像信息的本地服务器,移动终端可以远程获取实时视频流,实现视频监控功能[11]。

1.3 模块设计

根据监控系统的功能需求,设计了6个主要功能模块,包括用户管理、传感器管理、温度等传感器监控、图片拍照、视频录像以及开关设备控制。按照功能的划分可以将该系统划分为底层监控单元、云平台和终端3个部分。底层监控单元和终端之间通过云平台进行数据通信,实现云端一体的架构。用户在移动端可以执行显示查看数据、管理、通信等操作[12]。

2 云端一体实验室监控的实现

2.1 底层监控单元的实现

系统的底层监控单元由树莓派和传感器组成,树莓派是一种基于ARM-Linux的卡片式嵌入式电脑,Raspberry Pi 3B型集成WiFi模块可实现网络通信,并通过GPIO口与传感器进行连接。在树莓派的Linux系统中采用Python作为开发语言,使用Python的GPIO包实现树莓派获取传感器的信息以及控制传感器的操作,使用APICloud平台提供给Python的API来实现数据的上传和下载。Python数据处理流程见图4。

系统各个监控模块对应使用不同传感器,见表1。用户可以根据实验室监控具体需求增减或更换其他传感器模块,以实现有特色的功能服务组合。

图像和视频模块采用树莓派配套的500万像素摄像头,通过树莓派的CSI接口连接。编程开发时需要使用3个基于命令方式的应用程序实现数据采集,包括用于捕捉图像数据的 raspistill 和 raspistillyuv,以及用于捕捉视频数据的raspivid。运行3个应用程序时,通过改变内置命令参数可以捕捉到不同格式效果的图片视频,便于使用shell脚本或者Python语句来控制摄像头采集所需数据。

针对嵌入式终端设备在处理视频、图像等多媒体数据时往往存在资源受限问题,在后台使用Python搭建服务器网关接口时,采用开源视频服务软件MJPG-streamer提供的软件构架进行开发,实现实时视频查看功能。客户端通过访问该服务器,除查看实时视频图像外,还可以控制云平台设备,获得多个角度的图像。底层配置后监控单元如图5所示。

图5 底层配置后监控单元

2.2 系统云平台的实现

监控系统可以将APICloud云平台用作Web服务平台。“云API”支持自动生成RESTful API、在线NoSQL数据表设计、API调试及用量分析,方便开发者使用。底层监控单元通过APICloud提供的“端API”将数据上传到数据库,用户终端通过“云API”从数据库取出数据。同样,终端也可以通过“端API”控制底层监控单元的操作行为。系统采用APICloud云平台提供的数据库,数据库表单信息见表2。

表2 APICloud云平台数据库表单信息

2.3 系统终端的实现

监控系统集成了用户管理、传感器管理等6个模块,全部功能都要通过终端界面呈现给用户,系统与用户之间进行交互。因此系统开发提供的用户终端主要包括登录注册界面、设备管理界面、监控界面以及传感器状态监测界面。

用户将用户名和密码通过界面注册到表2中的_user表单中后,就可以通过该用户名和密码进行登录操作。图6的设备管理界面将用户在其账户下添加的设备存储在本地,便于用户进行选择。

图6 设备管理界面

图7的监控界面作为主界面用于实现传感器管理、传感器数据监控、图片拍照以及视频录像功能。通过监控界面顶端的窗口可以查看底层监控单元获取到的实时视频流,开始拍照和开始录像按钮用于截取图片和录像。

图7 监控界面

这些操作需要根据传入的参数获取云端数据库的数据。主要实现代码如下:

functiondataGet() {

//获取操作界面上的传入参数

varnumapis = document.getElementById(′numapi′).value;

varfacs = document.getElementById(′fac′).value;

var fads =document.getElementById(′fad′).value;

numapis = parseInt(numapis);

facs = parseInt(facs);

fads =parseInt(fads);

client.setHeaders(″authorization″,$api.getStorage(′token′));

var Model =client.Factory(″tempr″);

//根据传入参数查找云端数据库中的数据

Model.query({

filter : {

where : {″uip″ : myip},

fileds : [″ds18b20″, ″cpuwd″],

skip : 0,

limit : numapis,

order : ″createdAt DESC″}},

function(ret, err) {

//将满足条件的数据取出

if(ret) {

varimglen = ret.length;

ds18t.length = 0;

cput.length = 0;

varmaxc;

varmaxd;

var dt = ret[idx][′ds18b20′];

varct = ret[idx][′cpuwd′];

ds18t.push(dt);

cput.push(ct);}

maxc = Math.max.apply(Math, cput);

maxd = Math.max.apply(Math, ds18t);

myvioce(maxd, fads, maxc, facs);}});}

传感状态按钮(见图8)用于查看传感器状态以及增加新的传感器,设备开关按钮用于打开和关闭各个传感器。监控界面的温度趋势曲线(见图9)用于监测环境温度和CPU温度,显示出当前查询记录的最大值、最小值以及平均值。用户可以改变报警阈值和调节系统灵敏度。若检测到环境参数超出所设置的报警阈值,移动终端会自动语音提醒状态异常。

图8 新增光照传感器

图9 设置温度阈值

2.4 系统测试

监控系统软件安装在安卓手机上。分别对用户管理、传感器管理、温度等监控、图片拍照、视频录像以及开关设备控制6个功能的实现情况进行反复测试,重点关注底层监控单元上传数据和终端获取数据的流畅性和稳定性以及增删设备时系统的鲁棒性。整体的测试情况表明,实验室监控系统能满足功能需求,具有数据可视化、简便清晰、易于查看、系统的操作具有灵活性和个性化特点。

3 结语

基于云端一体的实验室监控系统通过树莓派等硬件和APICloud云平台的结合,控制本地底层监控单元和云服务的数据流,能满足监控系统的功能需求。同时,云端一体结构极大地缩短了系统开发周期,降低了开发成本。在建设和后期维护中,使用集群树莓派及相应传感器等能够以较少的投入快速搭建或扩展监控系统,并且根据现场实际环境位置灵活调整监控区域,因而系统的实用性强。未来可以在树莓派上进行更多的功能实现和拓展,使监控系统的应用范围更加广泛。

猜你喜欢
树莓底层终端
航天企业提升采购能力的底层逻辑
X美术馆首届三年展:“终端〉_How Do We Begin?”
通信控制服务器(CCS)维护终端的设计与实现
基于树莓派的骑行智能头盔设计
基于树莓派的远程家居控制系统的设计
多功能北斗船载终端的开发应用
响应面法优化红树莓酒发酵工艺
ABB Elastimold 10kV电缆终端及中间接头
回到现实底层与悲悯情怀
中国底层电影研究探略