基于GSM 技术的农业温室远程监控系统
2015-02-23孙倩,何文,于忠得
孙 倩,何 文,于 忠 得
(大连工业大学 信息科学与工程学院,辽宁 大连 116034)
0 引 言
农业温室是蔬菜、花卉等具有较高经济价值农作物的种植场所。对温室的温度、湿度、光照度参数进行远程监控,实时了解温室的环境参数,实时进行远程调整,不仅有利于农作物的优质高产,而且节省人力成本[1]。
目前,国内在农业温室远程控制中,大都采用基于WSN(无线传感网络)结合ZigBee的数据采集系统[2]。但是ZigBee技术在实际应用中存在很多缺点,例如易受干扰、通信距离短、不适合远程监控等。移动网络(GSM)覆盖域广、接入迅速、按量计费,在远程数据传输中具有很好的优势。
作者将嵌入式技术和GSM 技术相结合,用于农业温室的就地与远程监控,实现了参数的自动采集和远程传输,降低了采集工作量,提高了数据采集精度和信息处理能力。
1 硬件系统设计
硬件系统组成如图1所示,主要实现就地监控与远程监控两项功能。
图1 硬件系统组成框图Fig.1 Block diagram of the hardware system
1.1 就地监控
就地监控由数据采集处理、微处理器和存储器构成的主机、控制信号输出及人-机接口几部分组成。
数据采集部分,选取温室内比较敏感的3个点,安装温度、湿度以及光照度传感器,采集3种传感器输出的数据。
温度传感器选用Pt100,其长期稳定性、测量精度满足温室温度检测的需求。在前向通道中,设计了惠斯登电桥电路实现R/V 转换;设计了自稳零放大电路,对电桥电路输出的微弱电压信号进行放大,达到S3C2440 内部A/D 转换器要求的模拟电压输入范围[3]。
湿度传感器选用瑞士Sensirion公司生产的SHT11,它将湿度传感器、信号放大调理、A/D 转换、I2C总线接口集成于一个芯片中。测量范围:0~100% RH,测量精度:3% FS。输出数字信号,可以直接接到S3C2440的I2C接口上。
光照传感器选用美国TAOS 公司生产的TSL2561光强度传感器,具有标准I2C 总线接口,涵盖1~1 000 000lx的光照度范围,适合农业温室光照强度的测量。
ARM 微处理器与存储器构成硬件系统的主机电路,选用韩国三星公司生产的S3C2440作为微处理器。选用了4 MB 的NOR FLASH 作为程序存储器,32 MB 的SDRAM 作为数据存储器;128 MB的NAND FLASH,作为大容量数据存储器。
选用遮阳网作为光照度参数的执行器,选用加热器作为温度参数的执行器,选用加湿器作为湿度参数的执行器,三类执行器均采用两位式控制。采集的实时参数与设定值比较,出现偏差经过相应的控制运算后,经后向通道功率放大,开启或关闭执行器。
设计了带有触摸按键的彩色LCD 显示屏作为监控系统的人机接口,实现设置参数、观察实时参数、历史记录数据和人工控制输出的功能。
1.2 远程监控
采用西门子公司生产的TC35系列GSM 模块,实现将采集到的实时数据通过GSM 网络,以短信方式发送到指定的手机,并接收指定手机发出的远程控制命令,启动或关闭温室内的控制设备,从而实现远程监控。
TC35系列GSM 模块内部由GSM 基带处理器,GSM 射频模块,供电模块,闪存模块,ZIF(Zero Insertion Force,零阻力插座)连接器,天线接口组成。它与ARM 系统之间的通信是通过RS-232 串 行 接 口 进 行 的,通 信 速 率 为112.5 MB/s,采用8 位异步通讯方 式,1 个起始位,8个数据位,1个停止位。
2 软件系统设计
软件系统设计包括系统软件移植、数据采集、数据处理、控制输出、GUI界面设计和远程通信设计。
系统软件移植包括BootLoader移植、Linux内核移植、GTK 软件移植和文件系统构建等。
数据采集主要是通过Linux系统的底层驱动来控制ARM 微处理器的I/O 口,实现传感器数据的读取。
数据处理采集传感器输出的数据,经过处理、封装、转换,将数据转化成便于对比和绘制的数据格式。
控制输出是将采集的数据和用户设定值进行比较,根据比较结果,通过Linux系统底层驱动实现对执行器的控制。
2.1 基于GTK+的用户操作界面设计
GTK+(GIMP Toolkit)是一套跨多平台的图形工具包,完全采用C 语言开发的图形用户编程接口[5]。
用户操作界面有当前参数显示、越限参数设置、越限报警提示、历史数据显示查询、参数设置等。
系统主要对温室中比较敏感的3 个点的温度、湿度以及光照度进行数据采集和监控。根据实际需要,每10s采集一组数据。其中,温度数据采集显示界面如图2所示,显示了不同温室的温度变化情况。
图2 温度曲线显示界面Fig.2 The display interface for temperature curve
主要函数如下:
通过gdk_cairo_create函数创建一个cairo上下文,在该区域中画线,最后利用cairo_stroke_preserve和cairo_fill对线条进行轮廓的描绘和区域的填充。
越限参数设置的界面如图3所示。
图3 越限参数设置界面Fig.3 Parameters setting interface
参数设置界面是对温度、湿度和光照度的期望值进行设置。越限参数设置界面实现参数越限值设置,图3所示为温室1、2、3点的报警上下限值设置。
主要的函数如下:
通过gtk_notebook_new 创建笔记本构件,将它加入到主窗体中。报警上下限参数的设置是通过创建option和gtk_option_menu_set_menu来实现的。
2.2 远程通信设计
GSM 模块通过RS-232串行接口与ARM 处理器通信,应用程序通过操作串行接口,实现数据交互。在远程通信设计中,主要是串行接口程序设计和GSM 模块通信程序设计。
2.2.1 串行接口程序设计
串行接口在Linux 系统下被表述为终端设备,用tty表示。以下是打开串口设备代码:
打开串口设备后,需要进行串口的初始化工作,主要是设置struct termios结构体的各个成员值。如下所示:
系统调用函数tcsetattr 设置串口的属性,TCSANOW 参数可以使设置的属性立刻生效。根据实际应用进行参数设置完成后,通过readdatafromtty函数读取串口数据,并检测数据的有效性。
2.2.2 GSM 模块通信程序设计
TC35I有AT 命令集接口,支持文本和PDU模式的短消息、第三组的二类传真等模式[6]。在软件编程中,通过向GSM 通信模块写入不同的AT 指令,完成相应的功能。常用AT 命令如表1所列。
数据传输时,需要对传输的数据进行封装,即按确定的通信协议实现通信。
查询某检测点实测参数命令如下:Rs#m/n。其中:R 为固定字符,表示查询实测参数;s#为检测点,s=1、2、3分别表示1、2、3号检测点;m 为参数类型,m=1、2、3 分别表示温度、湿度、光照度;/n为固定字符,表示结束。如:R1#2/n表示查询1号检测点的湿度。
表1 常用AT 命令Tab.1 Common command order of AT
短信查询流程图如图4所示。
图4 短信发送流程图Fig.4 Flow chart of sending messages
短信查询设计中,系统初始化串口和GSM模块后使用AT+CNUM 指令判断号码有效性。通过AT+CMGF=1 指令设置短信发送模式;AT+CMGS=“**/n”设置短信接收端号码;系统返回“>”时,发送查询的内容;系统返回“+CMGS OK”时,表示发送成功。
系统收到短信查询时,先判断是否与设定的号码一致,再读取短信内容。设置系统回复格式如下:Ts#m(xx.y)/n。其中:T 为固定字符,表示系统回复;s#为检测点,s=1、2、3分别表示1、2、3号检测点;m 为参数类型,m=1、2、3分别表示温度、湿度、光照度;(xx.y)为参数值,xx表示2位整数,y表示1位小数;/n为固定字符,表示结束。如:T2#1(35.2)/n表示2号检测点的温度值是35.2 ℃。
系统还具备远程预警和控制功能。远程预警是指检测到参数异常时,系统会自主向工作人员发送报警信息。工作人员通过发送控制指令,实现温室远程控制。
3 结 论
系统在模拟环境下,进行了远程监控测试,测试结果说明了基于GSM 模块的远程双向通信可靠、稳定。数据采集、控制输出部分采用了成熟的技术,其硬件电路方案和相应的软件处理也经实际考核,能够满足农业温室测控环境要求。
嵌入式系统技术和GSM 技术相结合的监控系统设计方案,创新之处在于农业温室中利用ARM9控制GSM 模块,借助手机收发短信实现远程监控,提高了农业温室控制水平和监控的便利性,降低了人工成本。
[1]杨静,张磊.农业温室控制系统的设计与实现[J].广东农业科学,2011(4):166-167.
[2]PARK D H,PARK J W.Wireless sensor networkbased greenhouse environment monitoring and automatic control system for dew condensation prevention[J].Sensors,2011,11(4):3640-3651.
[3]于忠得,林敏,申华.嵌入式系统基础教程[M].北京:国防工业出版社,2009:1-16.
[4]陈莉莉,杨雪莹,周宁轩.基于ARM 的温度监控系统设计[J].信息技术,2012(4):36-39.
[5]韦东山.嵌入式Linux应用开发完全手册[M].北京:中国人民邮电出版社,2010:194-205.
[6]何华斌.基于嵌入式GSM 模块的水文监测系统的设计[J].现代电子技术,2012,35(8):8-11.