罗桂兰,张 梅,黄 伟,张丽娜
(大理大学数学与计算机学院,云南大理 671003)
随着无线传感器技术的快速发展和安卓系统的普遍使用,在物联网、“互联网+”和云计算不断深入各个领域的今天,传统的生物研究受到了巨大的冲击,生物研究的技术和方式也发生了巨大的改变。
国外在昆虫监测方面的现代化研究起步较早,2010年前就有人提出用于昆虫种群自动监测的电子陷阱,研究了两个电子陷阱原型的设计和实现,一个基于光敏电阻(LDR)传感器,另一个基于红外(IR)传感器〔1〕。日本通过昆虫仿生学的研究已成功研制出依据气味寻找目标的机器人,美国国防部甚至训练蜜蜂来负责搜查地雷的工作〔2〕。近几年来,国外做了很多关于自然保护方面的昆虫研究。例如设计一个标准化的框架,以促进昆虫生境监测与物种恢复工作的整合,通过适应性管理来明确地识别和跟踪生境目标和最终昆虫物种恢复的进展情况,从而提高濒危昆虫恢复工作的透明度和决策过程〔3〕;开发一种基于MODIS(中分辨率成像光谱仪)衍生NDVI(归一化植被指数)的方法,用于近实时监测瑞典北部亚高山白桦林中昆虫诱导的森林落叶,有助于及时进行实地研究,并能够更快地采取对策对树木进行保护〔4〕。
我国由于技术水平的限制,对昆虫生境的研究一直以人工方法为主,由专业研究人员定期到捕捉昆虫的样点进行现场采集昆虫生境数据,将采集到的昆虫样本和生境数据带回实验室进行研究分析。这种方法既耗费人力,又存在很多弊端。人工采集昆虫生境数据在数据测量和记录过程中往往引入了人为误差,由于数据是定期采集,也很难反映出它的变化规律。而且能够采集到的生境数据种类也比较少,使得利用所采集数据进行的研究分析是不够充分的〔5-6〕。近几年来,随着遥感技术的不断发展,将其应用在生物生境监测方面的研究也不断增多〔7-8〕。其中,在昆虫方面的应用主要涉及害虫防治。例如利用遥感技术获取与蝗虫密切相关的各种生境因子,并结合GIS(地理信息系统)技术研究蝗虫的生境因子对东亚飞蝗的产卵、孵化、成虫、迁飞等生育周期的影响机理,可实现对蝗虫监测、预测预警〔9〕;通过卫星遥感反演获取稻飞虱的生境因子,有利于深入研究稻飞虱发生动态以及暴发规律,以便作出可靠的预测〔10〕。
以上这些监测系统的终端大多是固定的,用于监测昆虫生境的移动监测终端的研究较少。湿地的地理特征给人工采集昆虫的生境数据带来诸多不便,不利于生物多样性的研究与保护〔11〕。与此同时,4G移动通信技术已经普及,智能移动终端更是铺天盖地,其中安卓系统占据了最大的市场份额,成为最主流的操作系统。随着物联网的发展,安卓系统的应用不再停留在社交娱乐上,而是逐渐应用在智能的生活和生产之中,但是在昆虫研究方面的应用却是少见〔12-13〕。本文提出的基于安卓系统的昆虫生境移动监测系统,为洱海湿地昆虫种群研究提供了便利。洱海湿地昆虫生境数据的分析与研究对生物防治、物种培育、药理研究以及洱海保护等都有重要意义,同时也将促进洱海湿地生态学的健康发展。
1.1 采集节点硬件设计昆虫生境数据来自于安放在洱海月湿地、罗时江湿地和洱源东湖湿地的数据采集节点,各个节点都搭载太阳能供电系统。数据采集节点每隔1 min就会通过各类传感器采集到一条昆虫生境数据并发送回来,数据包括环境温度、环境湿度、土壤温度、土壤湿度、土壤pH值、光照强度、紫外辐射强度、紫外日累计值、瞬时风速、2 min风速、10 min风速、风向、降雨量等生境因子以及时间、经度、纬度、电量等参数。图1所示的就是一个数据采集节点。
图1 数据采集节点
1.2 节点通讯方式在数据采集模块中安装了GPRS DTU设备,将监测终端的IP地址配置到GPRS DTU设备上,并设置一个TCP协议公用通讯端口,端口号为5002。然后GPRS DTU设备就会通过安装在它里面的SIM卡访问互联网,将数据采集模块采集到的昆虫生境数据发送到对应IP地址的监测终端。在监测终端处理原始数据并上传至Bmob后端云数据库,安卓移动监测终端可以随时随地通过2G、3G、4G或者Wi-Fi上网,从Bmob后端云上获取昆虫生境数据并显示出来。
2.1 软件功能模块设计软件系统的总体设计目标是可以随时随地地对洱海湿地昆虫的生境数据进行实时监测。在昆虫生境数据上传至后端云数据库后,应用程序将会自动获取更新的数据并显示出来,达到实时移动监测昆虫生境的目的,同时让昆虫生境数据的采集更加方便,对昆虫的研究更加高效。
软件功能模块主要包括数据获取模块和数据显示模块。其中,数据获取模块负责获取Bmob后端云数据库上更新的昆虫生境数据,数据显示模块负责将获取到的数据显示在昆虫生境移动监测软件的用户界面上。软件系统的功能模块设计见图2。
图2 系统功能模块
2.2 后端云数据库的建立在云数据库里创建表_User和表Data分别用来存放用户数据和昆虫生境数据。
2.2.1 表_User 表_User用于存放昆虫生境移动监测软件的用户数据,包括用户名username、密码password和手机号码mobilePhoneNumber等。
2.2.2 表Data 表Data用于存放昆虫生境数据,包括环境温度、环境湿度、土壤温度、土壤湿度、土壤pH值、光照强度、紫外辐射强度、紫外日累计值、瞬时风速、2 min风速、10 min风速、风向、降雨量等生境因子以及时间、经度、纬度、电量等参数。
2.3 软件设计流程在完成Bmob后端云服务器的搭建与配置基础上,设计并开发由线性界面布局、数据获取模块和数据显示模块组成的应用程序,实现服务器连接、数据库监听、数据获取、数据显示等一系列流程。昆虫生境移动监测软件数据获取模块会实时监听Bmob后端云数据库中的昆虫生境数据的更新状态,如果发生了数据的更新,就将新上传的那条数据获取下来。数据获取模块获取到数据后就把数据交给数据显示模块,数据显示模块拿到数据后使用SimpleAdapter适配器将昆虫生境数据显示在ListView视图上。软件设计流程见图3。
图3 软件流程图
2.4 数据获取功能实现
2.4.1 创建BmobRealTimeData对象 BmobRealTime-Data是Bmob SDK提供的用于实现安卓端与后端云数据实时同步的对象,昆虫生境数据移动监测软件在InsectActivity中创建了一个该类型的对象data。
代码如下:BmobRealTimeDatadata=newBmobRealTimeData()
2.4.2 连接Bmob后端云服务器 使用start方法连接Bmob后端云,并监听服务器是否连接成功和后端云数据库更新的回调。代码如下:
2.4.3 监听数据 成功连接Bmob后端云服务器后,就使用Bmob SDK提供的方法监听后端云数据库的表和行的更新或者删除,昆虫生境数据移动监测软件采用监听表更新的方法。代码如下:
主要测试应用程序用户注册登录功能、数据获取功能、数据显示功能以及数据的实时分析功能。
3.1 用户注册登录打开昆虫生境数据监测软件的账号注册页面,输入测试用户名为admin,密码为admin,并再次输入密码确认注册。此时软件提示“注册成功—用户名:admin”,并进入昆虫生境监测首页。打开昆虫生境数据监测软件的用户登录页面,使用之前注册的账号admin登录。此时软件提示“登录成功—用户名:admin”,并进入昆虫生境监测首页,此后进入系统主界面。
3.2 数据获取为了测试昆虫生境移动监测软件的数据获取功能模块能否正常运行,本节通过上传一条昆虫生境数据至Bmob后端云数据库,检查软件的数据获取功能模块能否连接到Bmob后端云,连接云服务器成功后能否获取到数据以及获取到的数据是否与上传的昆虫生境数据一致,具体步骤如下。
3.2.1 云服务器连接测试 为了测试昆虫生境移动监测软件在运行时能否正常连接到Bmob后端云,在软件的数据获取功能模块中的onConnectCompleted方法里添加一行Log.d信息打印代码,代码如下:
该代码将data.isConnected()的值输出到Android Studio的调试信息框中,通过查看data.isConnected()的值是true还是false来判断服务器连接是否成功,运行效果见图4。输出的信息表明昆虫生境移动监测软件已经成功连接到了Bmob后端云。
图4 软件成功连接Bmob后端云
3.2.2 数据获取测试 该部分是测试昆虫生境移动监测软件的数据获取功能模块在连接Bmob后端云服务器后能否正常监听到数据库的更新,并将更新的数据获取下来,步骤如下:
首先,在昆虫生境移动监测软件的数据获取功能模块中的onDataChange方法里添加一条Toast提示语句,具体代码如下:
如果数据获取功能模块成功监听并获取到Bmob后端云数据库的数据更新,则该代码会将获取的数据通过Toast消息提示的方式显示在昆虫生境移动监测软件上。其次,使用Postman插件向Bmob后端云数据库上传一条昆虫生境数据后,进入Bmob后端云控制台查看数据更新状态,数据已经成功上传到Bmob后端云数据库。需要注意的是,在数据上传期间软件要在运行状态中。最后,在数据上传成功后,软件立刻获取到数据。
3.3 数据显示为测试昆虫生境移动监测软件的数据显示功能模块能否正常运行,本节通过自定义的两个String类型的数组title〔〕和text〔〕分别模拟生境因子名称以及对应的参数值,内容如下:
将这两个数组放在软件数据显示功能模块中的组织数据步骤里,运行效果见图5。结果表明数据显示功能模块能够将接受到的数据正常地显示在布局中。
图5 测试数据显示成功
3.4 数据实时监测为实现对昆虫生境数据的实时监测,昆虫生境移动监测软件获取并显示数据的速度必须满足实时性要求。通过多次测试,从开始上传昆虫生境数据,一直到软件将数据显示出来的平均时间约为0.8 s。效果见图6。
图6 数据实时列表显示
为满足动态生境数据实时监测,系统根据云数据库样本计算和统计分析,列出了当天每个湿地监测点的整点环境温度。见图7。
图7 环境温度整点实时变化曲线
在通信技术发展日新月异的今天,移动监测终端已经逐渐广泛地应用在家居生活、交通控制、消防控制、农业生产和工业控制等领域之中,其功能愈发的健全和成熟,并且还在趋于更加多元化的发展。针对移动通信技术和安卓智能移动终端设备的普及,本文设计了基于物联网、安卓平台和后端云的湿地昆虫生境移动监测系统,应用程序通过监听后端云数据库上昆虫生境数据的更新状态,获取最新上传的数据并显示,从而达到监测昆虫生境数据的目的,为昆虫的研究提供信息化手段和数据实时分析方法。