聂超凡,彭 琛,王文虎
(湖南文理学院 计算机与电气工程学院,湖南 常德 415000)
当前,我国有机农业在政策引导和市场需求的双重作用下得到较大程度的发展,从事有机农业生产的企业逐年增加,生产面积和规模逐年扩大。然而,受限于我国农业分散经营的体制以及技术、设备、管理相对落后的局面,加上对标准化和品牌化的重要性认识不足,导致有机农业标准化、品牌化严重滞后[1]。
随着我国经济的快速发展,农产品的需求量也日益增长,尤其是有机农产品非常短缺。有机农产品对生长环境的要求非常苛刻,既不能打农药,也不能施加化学肥料,因此其出产量非常低。如何让有机农产品出产量增大,是现阶段需要重点解决的问题。针对此情况,本文提出一款有机农场生态环境监测系统,该系统可以对有机农场的各项环境指标(空气温度、空气湿度、土壤温度、土壤湿度、光照强度等环境指标)进行检测,通过手机APP和PC端提醒农场管理者如何去改变环境指标,让有机农产品更加适宜生长,进而提高有机农产品的产量;还可以在测量的环境指标超标时进行实时报警。
有机农场生态环境监测系统由环境检测终端、PC端、手机APP组成,系统结构如图1所示。其中环境检测终端安装在有机农产品生长土壤中,它可以获取有机农产品生长环境的各项参数指标信息。首先将这些信息通过GPRS模块统一发送至互联网,然后互联网传输至物联网云平台,最后通过互联网传输至手机APP和PC端,让农场管理者能够实时掌握有机农产品的生长环境情况[2]。
图1 系统结构图
环境检测终端以MSP430F5438A单片机为智能控制核心,外围电路主要包括GPRS模块、温湿度传感器模块、光照传感器模块、CO2传感器模块、故障检测及报警模块、按键模块等。环境检测终端结构如图2所示。
图2 环境检测终端结构
环境检测终端电路如图3所示。
图3中U1采用TI公司的MSP430F5438A单片机。MSP430F5438A单片机是16位单片机,采用了精简指令集(RISC)结构,只有简洁的27条指令,大量的指令是模拟指令,众多的寄存器以及片内数据存储器都可参加多种运算。这些内核指令均为单周期指令,功能强、运行的速度快。MSP430F5438A还是基于闪存的新款产品,具有最低工作功耗,在1.8~3.6 V的工作电压范围内性能高达25 MIPS,包含一个用于优化功耗的创新电源管理模块。图中Y、C1、C2连接到U1的P5.2/XT2IN、P5.3/XT2OUT引脚构成时钟电路;R1、C5串联并连接到U1的RST构成低电平复位电路;处理器MSP430F5438A的PJ.3/TCK、PJ.2/TMS、PJ.1/TDI、PJ.0/TDO分别外接JTAG下载调试器A6的TCK、TMS、TDI、TDO端,RST、TEST分别外接JTAG下载调试器A6的8、11脚,共同组成JTAG程序下载调试接口,用于下载程序和在线系统仿真调试。时钟单元、复位单元、JTAG程序下载调试接口以及MCU共同构成微处理器的最小应用系统[3]。
图3 环境检测终端电路图
如图3中A1为温湿度模块,选型为DHT11。DHT11适用于专用的数字模块采集技术和温湿度传感技术,能够保证产品的极高可靠性和长期稳定性,具有测量范围广、测量精度高、价格低廉等优点。U1的P5.7引脚外接A1的SDA端,U1的P5.6引脚外接上拉4.7 kΩ的电阻,增强信号的抗干扰能力,实现DHT11和微处理器的单总线数据传输模式。
如图3中A2为光照强度模块,选型为TSL2561。TSL2561是TAOS公司推出的一种高速、低功耗、宽量程、可编程且灵活配置的光强度数字转换芯片。U1的P3.1引脚外接A2的SDA,U1的P3.2引脚外接A2的SCL,U1的P1.0引脚外接A2的INT,实现I2C通信模式。
如图3中A3为GPRS模块,选型为WH-LTE-7S4 V2。适用于联通、电信、移动4G以及联通和移动的3G、2G网络制式,可自定义注册包、心跳包,具有UDC、HTTPD、网络透传共三种模式,还支持2路Socket的连接模式,具有高速率、低延时的特点,可提供高效率、高质量、高安全性的数据通信服务。通过串口调试助手和TTL调试模块,可发送AT指令初始化GPRS模块(设置串口波特率、传输模式等),使该模块连接在GPRS网络上,并自动获得网络运营商动态分配的GPRS终端IP地址,从而与云服务器建立连接。U1的P9.5引脚外接A3的TXD,U1的P9.4引脚外接A3的RXD,实现串口通信模式。
如图3中A4为LCD显示模块,选型为串口屏KLL480272T043-01。该串口屏自带核心处理器LT7688,能够较好地节约U1的处理空间、提升处理速度;显示颜色有16位RGB,具有显示色彩分明、价格低廉的特点。U1的P3.5引脚外接A4的TXD,U1的P3.4引脚外接A4的RXD,实现串口通信模式。
如图3中A5为CO2浓度测量模块,选型为MH-410D。该传感器利用非色散红外(NDIR)原理对空间中存在的CO2进行探测,具有很好的选择性、无氧气依赖性,性能稳定、寿命长。内置温度传感器,可进行温度补偿。U1的P2.7引脚外接A5的Vout,实现ADC采集模式。
程序初始化配置开始时,首先要先关闭MSP430F5438A的看门狗功能,否则会导致程序一直复位;然后再进行I/O的模式配置、定时器配置、串口波特率配置以及传感器的时序和响应配置。环境检测终端软件主要完成网络连接、测试网络连接状态、响应云服务器发来的中断请求、采集有机农作物生长环境数据并打包发送等。主流程如图4所示。
图4 主程序流程
WPF客户端应用是基于Visual Studio平台利用C#语言开发的PC端应用[4]。首先在Visual Studio平台下创建WPF应用(.NET Framework 4.5);然后在Welcome.xaml、LoginWindow.xaml、MainWindow.xaml三大窗口类的基础上,用 Label、Button、Image、GroupBox、StackPanel、DataGrid六大基本控件搭建用户交互界面。其中:Label用于显示文本内容;Button用于按钮交互设计;Image用于图片显示;GroupBox用于控制界面的显示效果;StackPanel用于约束布局GroupBox中的控件,使同类控件紧凑排列,当移除GroupBox中的控件后,剩余的控件可自动补缺,更人性化地显示人机交互界面;DataGrid用于展示MySQL中的数据,显示存储数据和历史数据[5]。
WPF客户端应用开发流程如图5所示。当搭建用户交互界面时,可以通过控件StackPanel、GroupBox,合理地将图片、文本、按键等控件进行约束布局[6];之后让WPF应用与MySQL建立连接,用来储存接收数据;最后WPF应用通过互联网与云服务器交互,让WPF应用能接收和发送数据至云服务器(接收和发送数据的响应时间可根据相应情况进行调整)。
图5 WPF客户端应用开发流程
WPF客户端应用的开发重点在于与物联网云服务器的数据传递,因此须在App.config中加入应用程序连接物联网云服务器的全局配置项,用来固化物联网云服务器。当物联网云服务器更换时,方便对配置文件进行修改,不需要修改程序。添加全局配置项声明如下:
系统所用服务器是新大陆云服务器,WPF客户端应用采用的是HTTP协议接入新大陆云服务器。HTTP协议接入主要是采用RESTful风格的“添加传感数据”API接口实现数据上报,不需要建立“连接请求”等过程;在云端添加好传感器后即可直接以JSON格式进行数据的上报[7]。首先,通过如图6所示的Get函数获取web.config中的配置项;再利用POST方法,使用创建的云服务器账号与密码请求账号登录接口“https://api.nlecloud.com/users/login”;然后通过JSONObject对获取的数据进行解析,进而得到Access Token(传输密钥);用GET的请求方式把得到的Access Token代 入“http://api.nlecloud.com/devices/{device Id}/sensor/{apitag}”,其中{deviceId}须替换为真实的设备ID,{apitag}须替换为真实的传感器标识名(设备ID与传感器标识名都可在新大陆云平台中创建项目获得)[7];最后在后台程序中打开子线程,让该子线程每隔n秒就向服务器获取数据、解析数据、存储数据。
图6 Get函数代码
WPF客户端应用通过与物联网云服务器相连,并与物联网云服务器互传数据,进而通过物联网云服务器回传数据给GPRS,GPRS又将数据传给单片机,从而让农场管理者在家中通过电脑就能够远程观测环境参数的变化,还可控制农场监测终端。
农场管理者在电脑上登录账号密码后,即可查看其管理的有机农产品各项生长环境指标(以温度、光照强度、湿度、CO2浓度为例)。如图7为WPF客户端应用的用户交互界面,主要是对某一个地区的有机农产品生长环境温度、湿度、光照强度、CO2浓度指标参数进行实时监测。当多个终端通过组网后,PC端能够远程观测有机农场中各个区域的各项环境指标(区域的多少根据所布置终端个数确定)。当设定各项环境指标的阈值后,有环境指标未超出预设阈值范围时,对应环境指标后面的灯会常绿;反之,有环境指标超过预设阈值时,对应环境指标后面的灯会常红,并第一时间提醒农场管理者进行指标调控,进而能够让农场管理者提前发现有机农作物生长环境的改变,做到及时调控,最终让有机农作物的产量和质量都得到提高。
图7 WPF客户端应用用户交互界面
手机APP是基于Android Studio平台利用Java语言开发的手机应用[7]。在Activity、Broadcast Receive、Service三大基本组件的基础上,用Constraint Layout约束布局、Linear Layout线性布局两大布局方式搭建用户交互界面,最后搭载Android自带SQLite数据库和网络技术开发而成。Activity组件用于显示用户交互界面;Service组件用于执行不需要与用户交互并要求长期运行的任务,即使程序被切换到后台或用户打开另一个应用程序,任务依然能够保持正常运行;Broadcast Receive可对外部事件进行过滤,且只针对感兴趣的外部事件; Constraint Layout约束布局和Linear Layout线性布局用于对所有控件、文本和图片进行合理的布局[8]。SQLite数据库用于将内存中接收到的瞬时数据保存到数据库中;网络技术可利用HTTP协议和物联网云服务器进行网络交互,并对物联网云服务器返回的数据进行解析。如图8为手机APP开发流程图。首先在Android Studio平台下,利用Activity搭建好用户交互界面。然后通过线性布局和约束布局两大布局方式,将文本、图片、按键等控件进行合理布局[6]。Android系统自带的SQLite数据库占用空间资源少、运算速度高,建立好SQLite数据库,以便于手机APP接收存储数据[9]。最后手机APP通过互联网与云服务器交互,让手机APP能接收和发送数据至云服务器。
图8 手机APP开发流程
手机APP的开发重点与WPF客户端应用相同,也是与物联网云服务器的数据传递,但与WPF客户端应用开发不同的是:手机APP开发访问网络时需要有提前声明权限。网络权限声明如下:
手机APP接入新大陆云服务器时与WPF客户端应用的开发相同,亦是采用HTTP模式接入方式;除了不需要用到Get函数获取web.config中的配置项外,其他方法均与WPF客户端应用开发相同,此处不再赘述。最后,接入成功后再在后台程序中打开子线程,让该子线程每隔n秒就向服务器获取数据、解析数据、存储数据。
手机APP通过与物联网云服务器相连,并与云服务器互传数据;云服务器与GPRS模块进行数据通信,最后GPRS模块与单片机通过串口通信进行数据的接收与发送,从而实现农场管理者远程控制终端监测系统。
农场管理者在手机APP上登陆账号密码后,即可查看其管理的有机农产品的各项生长环境指标[10](以温度、光照强度、湿度、CO2浓度为例),如图9为手机APP用户交互界面。手机APP的功能与WPF客户端应用相似,与其不同的是:超阈值报警时,手机会进行振动报警,还可根据具体情况增加新功能[11]。
图9 手机APP用户交互界面
APP端相较于PC端有其独特的优势,APP端能够全天候用手机随时随地查看。由于农场管理者不可能每天坚守在电脑前,因此开发APP端来协助农场管理者实时监控亦是非常有必要的。将PC端与APP端有机结合,这样也就形成了“1+1≥2”的新监测模式,能够更早地发现有机农作物生长环境的变化,进行及时有效的调控。
本文提出的有机农场生态环境监测系统,可以对有机农场的各项环境指标(空气温度、空气湿度、土壤温度、土壤湿度、光照强度等环境指标)进行检测,并通过手机APP和PC端提醒农场管理者环境指标的变化,还可以在测量的环境指标超标时进行实时报警,帮着农场管理者更高效地管理农场,让有机农产品更加适宜生长,进而提高有机农产品的产量,以助于我国有机农业能够尽快地实现产品的标准化、品牌化。