摘 要:针对传统的自动灌溉系统存在的效率低、稳定性差等问题,本文提出了一种新的自动灌溉控制方案。本方案以MSP430为主控芯片,结合CC1101作为无线通讯模块简化布线,上位机辅助判断减轻MCU运算负担。简约的硬件设计配合功能完善的上位机完成自动控制灌溉、历史环境参数记录、环境异常短信警告等功能。该系统稳定、可靠,具有较好的实用性及可延展性。 
关键词:MSP430 自动控制 上位机 轮询方式 
  当前我国农业灌溉水平低,但是节水潜力巨大,节水灌溉技术的应用和推广,是缓解我国水资源紧缺的战略选择,是建立节水型社会的需要[1]。现有的智能灌溉系统控制器通常采用MCS51等其它微控制器作为控制芯片,并配以较多的模拟电路和逻辑门电路,其设计复杂,功耗、稳定性和可靠性难以得到保证[2]。如今,随着计算机技术的飞速发展,一些复杂的数据处理完全可以交给计算机通过上位机软件完成。 
  本文将分别从硬件编程和软件上位机两个方面,结合外围电路,介绍一种以MSP430为主控制器的、稳定的农田自动灌溉系统。 
  1 系统整体构架及工作原理概述 
  这种农田自动灌溉系统的整体执行思路如图1所示,本系统采用的是离散型控制系统,其具有三级结构。系统从下到上依次为:传感器检测与灌溉执行部分,MCU自动检测控制部分,田间监控中心。 
  底层的传感器有多种,分别对土壤的温度、湿度等进行检测。本系统能根据采集到的土壤湿度情况进行自动控制灌溉,其余采集到的环境参数供人员参考,做出合适的施肥灌溉决定。这些传感器或设备受到MCU控制,将信息呈递到单片机,通过其内部集成的12位ADC对数据进行处理,从而判断是否需要灌溉,并将数据通过无线通讯模块发送到田间监控中心。 
  田间监控中心可以修改田间各节点判断灌溉的标准值,能够按时接收并储存各节点的环境参数,记录灌溉情况,通过折线图或列表形式显示。当田间发生火灾或其他异常情况时,软件通过网络自动发出短信提示人员前去查看。此外,上位机能自动从网上下载天气信息,协助实现自动灌溉功能。 
  2 系统硬件部分 
  2.1 主控芯片 
  MSP430系列单片机是由TI公司1996年推出的一种16位超低功耗、具有精简指令集的混合信号处理器。 
  本系统的主控模块采用MSP430F2553微处理器。MSP430系列单片机是具有精简指令集的超低功耗的16位单片机。它的最高工作频率可达25MHz,同时具有256KB Flash、16 KB RAM,内含硬件乘法器、12位ADC,以及SPI模块[3]等,四种超低功耗模式,非常适合低功耗产品开发。它具有五种低功耗模式,在不同的模式下消耗电流为0.1~340 uA[4],是目前功耗最低的单片机。另外它从低功耗模式转到活跃模式,需要的时间仅为6 us,可以被快速唤醒。因此该微处理器被广泛用在智能传感器、实用检测仪器、点击控制、便捷式仪表等领域[5,6]。 
  2.2 传感器选用 
  本系统的检测部分分别对土壤的温度、湿度等环境参数进行检测,其中土壤温度传感器采用DS18B20,土壤湿度传感器采用FDR土壤湿度传感器。 
  土壤温度传感器采用的是不锈钢封装的DS18B20,如图2所示。其具有现场安装简单、控制方便、系统性能好、易于扩展等特点[7],插入土壤对地温进行检测,精度较高、工作稳定,单片机与其进行单总线通讯获取温度值。 
  FDR(Frequency Domain Reflectometry) 土壤湿度传感器,见图3,利用电磁脉冲原理,根据电磁波在土壤中传播频率测试土壤的表观介电常数ε,得到土壤容积含水量(θv)[8,9]。其输出信号为模拟电压0~ 1.1V,本系统利用MSP430F5438内部的12位ADC直接对其采集到的数据进行处理得到土壤湿度。 
  2.3 电源模块 
  系统供电采用电源转换器直接将220 V交流电转为12 V直流电,用于给水泵和土壤湿度传感器供电。MSP430单片机的供电电压为3.3 V,为保证散热效果,采用二级降压的方式分散热量,集成LM2596与LM1117,依次将12 V直流电压转为5 V和 3.3 V电压,取3.3 V为MSP430F5438、土壤温度传感器及无线通讯模块供电。电路图如图4所示。 
  2.4 灌溉控制模块 
  灌溉控制模块由单片机、继电器和水泵组成。单片机根据采集到的土壤湿度,结合此时地温等条件,判断是否需要进行灌溉。满足灌溉条件时,由P3.0口送出控制信号控制至光耦,光耦接通使继电器开启,从而开启水泵。系统中水泵的额定电压为12V,继电器作为水泵的开关,选用12V继电器,因此在电路中并联续流二极管保护电路。如图5所示。 
  2.5 无线通讯模块 
  本系统采用的无线通讯模块为美国TI公司出品的CC1101。CC1101是一款低于1 GHz高性能射频收发器,其内部集成了一个高度可配置的调制解调器,支持多种调制格式,最高数据传输率为500 kb/s。在发射状态下,其发射功率可通过编程调节,最大发射功率可达+10 dBm,接收灵敏度最佳为-110 dBm,抗干扰能力强,且功耗极低,可用于极低功耗的RF应用。它与MSP430F5438结合,使系统更为节能。 
  3 单片机控制部分 
  3.1 田间节点及灌溉控制部分 
  田间节点以MSP430F5438为控制核心,结合各传感器、继电器、水泵、无线模块,共同构成。以开发平台IAR Embedded Workbench为开发环境,对MSP430F5438进行C程序开发,这款软件具备高度优化的IAR AVR C/C++编译器,可以有效提高用户的工作效率。   对田间节点的环境参数检测、数据发送及控制灌溉,由MSP430F5438单片机控制执行。土壤湿度的上下阈值保存在E2PR 
  OM中,可通过上位机软件发送更改预设值命令,更改土壤湿度预设值即灌溉条件。单片机控制灌溉的基本流程如图6所示。 
  田间监控中心有中央通讯模块,通讯模块由MSP430F5438和CC1101组成。中央通讯模块通过串口与上位机进行通讯,对田间节点采用轮询方式进行无线传输,避免信息拥塞。 
  此外,用户还可直接使用上位机软件发送灌溉命令到单片机,开启水泵灌溉。 
  3.2 无线通讯部分 
  本系统中无线收发模块采用CC1101,正常情况下,每隔固定的时间发送一次数据,因此通讯模式为轮询通讯模式。轮询方式的工作原理为,总线信道上有一个主站和N个子站,主站向子站发送询问命令,子站收到后才可利用信道,以避免信息拥塞。通过MSP430编程对CCll01的4线SPI接口和GDO2测试接口进行配置,结合MSP430的时钟,将各田间节点的CC1101设置成轮询通讯模式。 
  4 系统上位机软件部分 
  4.1 开发环境 
  本上位机软件收集单片机检测的温度、湿度、PH值等数据,经过适当处理,存储到数据库中并以折线图和列表的形式显示。由于Windows API复杂、难度大,本上位机采用C#语言,在Visual Studio 2010.NET环境下开发完成。.NET集成了大量类库,使用非常方便,可以满足用户的各种要求。 
  4.2 软件上下位机通讯设计 
  本上位机使用SerialPort类进行串口通信,SerialPort类为应用程序提供了通过串口收发数据的简便方法,具有功能强大,通信快速,实时性好等特点。此外还使用了Timer控件,当Timer控件启动后,每个一个固定时间段触发相同时间。用Timer控件实现了数据接收。 
  4.3 自动绘图功能的实现 
  关于折线图的显示,本上位机使用Zed 
  Gragh控件进行折线图的绘制,ZedGragh是一个开源的.NET图表类库。此类库比.NET自带类库使用更加灵活方便。使用DataGridView控件实现以列表的形式显示数据。Form1窗体是本上位机的主窗体,拥有各种功能按钮,并进行折线图显示,List窗体是Form1窗体的子窗体,负责进行列表显示。 
  系统采集全天的温度信息并以折线图显示界面如图8所示。 
  4.4 异常时短信报警功能的实现 
  报警是指,当上位机接收到的某些数据超过上限值时会发送短信提醒用户,如田间发生火灾等。手机短信发送是本上位机的扩展功能。通过C#编程,实现上位机给手机发送短信,当客户不在PC端时提示客户的功能。该功能的原理是通过一些运营商提供的接口实现的。本上位机采用可发送短信的Web Service,Web Service是新浪网提供的、可供用户直接调用的发送短消息的Web Service。Web Service中提供了一个发送短消息的方法"sendXml"。此方法的语法格式如下: 
  string sendXml(carrier,userid,password,mobilenumber,content,msgtype) 
  carrier:运营商名称 
  userid:新浪网上注册的手机号 
  password:成功注册手机后的反馈密码 
  mobilenumber:目标手机号码 
  content:所要发送短消息的内容 
  msgtype:发送短消息以文本信息形式发送,输入"Text" 
  4.5 上位机软件其他功能原理及实现 
  数据保存,通过上位机控制根据用户需求将接受到的数据保存起来,以便以后可以再次读取历史数据。为了数据的安全性,本上位机将数据保存到数据库中,使用的是Oracle数据库。基本功能实现流程如图9所示。天气信息通过中国气象局提供的API获取,根据获得的晴雨天气,给下位机发送信息协助判断、控制灌溉。历史数据可按照温度、湿度、pH值按钮显示不同数据,可以选择具体时间或具体节点查看环境情况。 
  5 结语 
  本文介绍的节水灌溉自动控制系统,利用MSP430单片机内部的ADC模块使得电路设计简单化,田间各节点的单片机收集环境参数并自动判断灌溉,上位机通过网络获取天气信息、检测环境参数正常,辅助判断是否应灌溉,并且能对田间每各节点的灌溉参数进行修改,实现自动控制灌溉。 
  实验证明,该系统具备较好的稳定性,节能且运行可靠,可以满足基本农业生产需要,使用方便,节水节能。但对于数据的处理性不强,仍需做完善。在硬件和软件方面仍具备可延展性,可采集周边环境参数如光照、雨量、CO2等,结合信息融合、PID等算法,提高系统对周围环境的分析能力,满足不同用户的需求。 
  参考文献 
  [1] 马成,周进祥.浅析我国农业节水灌溉现状及发展[J].科技传播,2009,9下:31-32. 
  [2] 刘善梅,彭辉.基于MSP430的智能灌溉系统设计[J].农机化研究,2010,7:117-120. 
  [3] 齐怀琴,张松,王晗.基于MSP430F5438的超低功耗森林火灾预警系统设计[J].测控技术,2013,32(1):28-31. 
  [4] Texas Instruments Incorporated. Msp430x1xx Family User's Guide[EB/OL].2009-10-01.http://www.msp430.com. 
  [5] 秦龙.MSP430单片机应用系统开发典型实例[M].北京:中国电力出版社,2005:1-345. 
  [6] 胡大可.MSP430系列FLASH型超低功耗16位单片机[M].北京:北京航天航空大学出版社,2001:1-316. 
  [7] 张军.智能温度传感器DS18B20及其应用[J].仪表技术,2010,4:68-70. 
  [8] 李元寿,王根绪,程玉菲,等.FDR在高寒草地土壤水分测量中的标定及其应用[J].干旱区地理,2006,29(4):543-547. 
  [9] 吕国华,李子忠,赵炳祥,等.频率域反射仪测定土壤含水量的校正与田间验证[J].干旱地区农业研究,2008,26(4):33-37.