引言
随着大规模养殖业和物联网技术的快速发展,传统的依靠自然资源、效率低下的养殖业已不能满足现代高产、优质、高效、安全、生态的要求,现代养殖业正伴随着物联网技术向信息化的方向发展[13]。如何在第一时间内获取更多养殖所需的环境参数以实现最佳状态下的养殖是现代养殖业成功的关键。目前国内一些基于物联网技术的养殖虽可测量多个养殖环境参数,但大多设计复杂、价格昂贵,难以得到广泛的应用[45]。
Arduino是一款基于AVR单片机系统,软硬件系统都具有高度模块化的开源电子产品开发平台[6]。其内部封装了各种常用的开发库和常用传感器测量的库函数供开发者调用,开发者只需着眼于程序的逻辑结构而无需了解底层函数设计,大大简化了传感器测量系统的设计[7]。
Machtalk开放平台能够采集任何信息,如城市环境、农业生产、智能家居,可以使用各种传输协议(ZigBee、WiFi、蓝牙、GPRS)和传感器设备。在面向远程数据采集的行业应用中,用于M2M终端的大范围组网和管理,涵盖设备接入、设备管理、数据转发、数据存储、数据展示、数据挖掘、终端认证、运营计费功能。该平台支持HTTP、Socket、MQTT等数据上传方式,既满足低端单片机的数据接入,又提供了小型传输方式(近距离可考虑ZigBee、蓝牙、WiFi方式)。数据采用MD5加密,确保云数据安全,其存储、挖掘、分析和展现托管给此平台,可以极大地提高信息化水平。此外,Machtalk平台提供触发器设备,当用户数据超出设置的触发器范围时,以此提醒用户数据指数超标。采用高实时性的Socket通信技术,传感器数据送达时间只取决于网络环境。
本文设计了一种基于Arduino和Machtalk的温棚环境监测系统,可实时采集养殖系统的环境参数,应用于养殖环境突变状况下的及时报警;兼具界面友好、性价比高、设计简单、实时性强、随时随地查看、安全的特点,可以起到养殖环境突变时及时警报的作用。
1 系统总体设计
温棚环境监测系统由Arduino最小系统、环境参数采集模块、WiFi模块、人机交互模块以及基于Machtalk的上位机监控室组成,其结构框图如图1所示。环境参数采集模块将采集到的温湿度、土壤湿度、PH值、CO2以及光照强度等参数,经A/D转换成数字信号送入微处理器,微处理器对转换后的信号进行处理并实时显示。然后,无线传输模块将处理后的数据打包发送出去。上位机监控室采用Machtalk平台,通过设置WiFi、设备ID、值ID、数据ID、相应的触发条件和APIkey,该平台可以直接通过互联网接收到参数采集节点的数据,将数据进行拆包。最后,通过设备ID来分别显示温棚环境测量参数。Machtalk平台可以自动通过表格、曲线图等方式记录近一年或一个月、一个小时内的数据。此外,该平台提供触发器设备,当用户数据超出设置的触发器的触发范围时,触发器可以提醒用户数据指数超标。在设计过程中,当采集到的温湿度、土壤PH值、空气中CO2、土壤湿度以及光照强度与预设值(标准范围)有差异时,一方面可以通过Machtalk平台触发的方式,发送邮件或者触发开关,另一方面可直接在Arduino软件设计中加入判断条件触发蜂鸣器等。本设计采用邮件触发与蜂鸣器报警相结合的方式,便于在第一时间内获取养殖系统环境异常的情况。
图1 温棚环境监测系统结构框图
2 硬件设计
硬件部分主要包括控制器的选取与电源模块的设计以及环境参数测量模块、WiFi模块与人机交互模块的设计。其中,最小系统采用Arduino ATmega2560,主要在于ATmega2560具有54路数字输入输出接口(15路用于PWM)和4个硬件串口,丰富的I/O接口便于扩展;人机交互部分由蜂鸣器和LCD1602组成。蜂鸣器用于报警;LCD1602采用4线接法,用于测量数据的显示。最小系统电路如图2所示。
图2 单片机最小系统
2.1 数据采集模块
温湿度测量采用具有专用数字模块采集技术和温湿度传感技术的DHT11。DHT11包括一个电阻式感湿元件和一个NTC测温元件,其输出为数字信号(8位温度和8位湿度),具有响应快、抗干扰性强、可靠性高、性价比高的优点。其超小的体积、极低的功耗,使其成为最佳选择。Arduino平台提供了DHT11的开发库,设计过程中只需将数据引脚与Arduino的数字采集接口相连,然后调用库直接读取数据,利用串口监视其结果,如图3所示。
图3 温湿度测试结果
土壤湿度测量采用广泛应用于节水农业灌溉、温室大棚、花卉蔬菜、草地牧场、土壤速测、植物培养、科学试验的FC28。FC28具有体积小,携带方便,安装、操作及维护简单的优点。其合理的结构设计和不绣钢探针保证了其使用寿命,外部以环氧树脂纯胶体封装,密封性好,可直接埋入土壤中使用且不受腐蚀;测量精度高,性能可靠,响应速度快,数据传输效率高。光照强度测量直接利用光敏二级管的特性,其光照强度测量模块输出的结果提供模拟量和数字量输出。FC28和光照强度测量硬件电路如图4所示。图中FC28和光敏二极管分别与参考基准值进行比较,比较后的模拟结果作为输出。
图4采集模块电路
PH值测量采用连线简单、方便实用、专为Arduino设计的模拟PH测量计。使用时,只需将PH传感器与板载BNC相连,板载PH2.0连接到Arduino控制器的模拟采集口,结合Arduino开源测试代码,稍作修改便可测量溶液的PH值。CO2测量采用范围为0~10 000 ppm的MG811。MG811采用模拟量和TTL双路输出,具有灵敏度高、稳定性好、快速的响应恢复特性。在使用模拟量采集过程中,只需将其与控制板模拟采集接口相连,读取引脚数据。
2.2 WiFi模块
WiFi模块选用嵌入串口、以太网和WiFi模块的HLKRM04。HLKRM04基于通用串行接口,符合网络标准,内置的TCP/IP协议栈使其能够实现用户串口、以太网和WiFi的转换。通过该模块,串口设备在不需要更改任何配置的情况下,即可通过网络传输数据。本设计结合HLKRM04和相应的扩展底板,实现了数据的传输。其配置流程如下:
① 使用串口与底板串口相连,搜索串口模块。
② 搜索到串口后,设置为串口转WiFi模式。本设计中采集系统作为客户端向服务器发送数据,因此网络协议选择TCP客户端。
③ 无线参数设置。无线参数根据自己所开的热点设置,确保连网。
④ 远端IP、端口、串口参数的设置与TCP服务器参数(Machtalk提供的IP为60.211.253.162、端口为10086、波特率115 200 bps、数据位8、校验位NONE、停止位1)相对应。
⑤ 网络参数与无线参数一致,需根据实际的网络环境设置。利用HLKRM04提供的调试助手(如图5所示),检测WiFi模块是否连网,可直接执行ping命令设置远端IP。
图5 WiFi模块配置
3 软件设计与实验
3.1 软件设计
本系统软件设计主要包括基于Machtalk的上位机配置和基于Arduino的测量系统。上位机配置分为三步:第一,注册Machtalk账号,获取APIkey。第二,根据相应的传感器模块添加设备(以温湿度传感器为例,需要填写设备的名称、测量数据范围和单位等),获取设备ID和设备Value。第三,设置触发条件。可按照养殖所需的条件设置触发,本设计通过邮件触发的方式,给出最大和最小的阈值进行提醒。
测量模块主程序设计基于Arduino IDE的开发平台完成。由于Arduino平台提供了WiFi和传感器测量的库函数,大大降低了系统设计的难度。其流程如下:首先,完成初始化(中断、LCD、DHT11、串口、WiFi等)。接着,按照顺序读取测量数据并将其与预定值进行比较。若查询到测量的数据超出预定阈值,则启动蜂鸣器报警,然后通过串口将数据以HTTP协议格式发送至WiFi模块。发送的串口数据中,根据设备设置相应的device ID 和device value,加上相应的标签设置,即可区别不同地方的设备测量数据。如果测量数据在阈值以内,则直接将数据打包发送。完成发送后返回,循环上述过程,其程序流程如图6所示。如果设备和WiFi配置正确、串口发送格式无误,在Machtalk上即可看到测量数据。
图6 主程序流程图
3.2 实验
参照上述WiFi模块配置,设置好WiFi模块的参数。然后,将温湿度传感器DHT11与Arduino的数字采集接口连接,光照强度和土壤湿度分别连接模拟采集接口。其测量数据(温度、土壤湿度和光照)通过WiFi上传到Machtalk平台。当测量的阈值超出预定范围时,蜂鸣器发出警报声,接收到Machtalk平台发送的电子邮件。Machtalk平台显示的数据略——编者注。
结语
基于Arduino开源环境和Machtalk物联网平台提出一种温棚养殖系统中多环境参数监测的设计方案,完成了相应传感器模块测试,以及Arduino测量系统通过WiFi模块与Machtalk物联网平台的连接,验证了方案的可行性。结果表明,系统可以准确测量相关环境参数并在Machtalk物联网平台上显示,对异常环境进行预警。测量系统采用具有54路数字I/O的ATmega2560,便于后期扩展更多的传感器。Arduino和Machtalk平台结合,可以降低设计的难度和开发成本、缩短开发周期。此外,本系统只需修改WiFi模块设置,加入9 V锂电池与相应稳压电路,就可结合智能设备提供的热点将其扩展成便携式测量装置,也可通过手机应用软件随时随地查看数据。在实际应用中,应结合特定养殖系统的需要选取相应的传感器。另外,传感器集中封装问题还有待解决。