kaiyun官方注册
您所在的位置: 首页> 通信与网络> 设计应用> 基于GSM/GPRS的温室环境远程监控系统设计
基于GSM/GPRS的温室环境远程监控系统设计
来源:微型机与应用2012年第18期
黄 培,徐立鸿,王乐达,蔚瑞华
(同济大学 电子与信息工程学院,上海201804)
摘要:针对农业生产中部分温室地点偏僻、位置分散等特点,设计了一种通过SMS短消息业务和GPRS网络对温室群进行远程监控的系统,并介绍了系统结构和软硬件设计。该系统利用嵌入式技术构建了温室现场采集和控制终端,利用GPRS无线通信技术使温室现场终端和远程Server工作于C/S模式。操作者亦可通过SMS短消息的方式对温室实施监控。
Abstract:
Key words :

摘 要:针对农业生产中部分温室地点偏僻、位置分散等特点,设计了一种通过SMS短消息业务和GPRS网络对温室群进行远程监控的系统,并介绍了系统结构和软硬件设计。该系统利用嵌入式技术构建了温室现场采集和控制终端,利用GPRS无线通信技术使温室现场终端和远程Server工作于C/S模式。操作者亦可通过SMS短消息的方式对温室实施监控。
关键词:GSM;GPRS;农业环境;远程监控

为合理利用农业资源,提高农业生产效率,将现代电子﹑计算机﹑通信和自动控制等技术引进到农业生产领域是发展现代农业的必由之路。在农业环境监控网络化、智能化的发展趋势下,由于部分农业生产环境地点偏僻、位置分散等因素的制约,采用有线的方式对其进行监控面临众多的瓶颈问题,例如以太网接入不便、RS-485总线传输距离有限等。
近年来兴起了很多无线组网技术,如将ZigBee技术用于水产养殖环境监测[1]、温湿度数据采集[2]等。但是ZigBee技术在实际应用中存在很多缺点,例如易受干扰、通信距离短、不适合远程监控等。移动公网GSM/GPRS通信技术在工农业生产中的应用日益受到人们的关注。GSM/GPRS有覆盖域广﹑接入迅速﹑按量计费等优点,在远程突发性数据传输中具有很好的优势。
本文通过采用GSM/GPRS无线网络通信技术与嵌入式技术相结合的方法,设计了一种对温室群进行远程监控的系统,使操作者可通过GSM网络提供的SMS短消息业务或GPRS两种方式获取温室现场状态和下发控制命令。温室现场具备紧急情况下自动控制的功能。系统由于加入了通过手机短消息进行监控的方法,为温室远程控制提供了一种更为灵活的方式。
1 系统架构
系统架构分为三部分:控制端(分为控制中心Server和移动控制端)、GSM/GPRS无线网络传输层和温室现场终端。控制中心Server负责温室现场环境参量的显示和存储,并可通过GPRS网络下发命令。移动控制端指操作者通过手机短消息实施监控的方式,若操作者不在控制中心,可通过手机发短消息查询温室环境参量,并下发控制指令,保证远程监控实施的灵活性。温室现场终端负责3个方面的任务:(1)温室现场环境参量的采集和无线发送;(2)控制端指令的接收和执行;(3)终端内运行温室控制算法,拥有对部分执行机构的直接控制权,执行紧急情况下自动控制的功能。系统示意图如图1所示。

控制中心Server具有固定公网IP地址。上位机界面基于Visual C++开发,具备数据实时显示和存储的功能,通过ADO技术连接Access数据库,方便操作人员查询历史数据。温室现场终端和控制中心Server工作于C/S模式,Server端建立一个监听Socket,在Socket上建立消息响应函数来接收温室现场终端的连接请求,并用来接收GPRS数据。当两者TCP连接建立后,Server端通过扫描指定端口,读取温室现场终端上传的温室环境参量信息。
2 硬件设计
由于温室环境的复杂性和特殊性,在温室现场终端硬件设计中需要考虑如下两个因素:
(1)控制终端是整个系统信息交互的中心,既要定时上传传感器数据,又要接受远程指令的查询和控制,数据流量较大,对MCU的内存和处理速度有一定要求。
(2)被控温室在无人值守的情况下,为应对异常情况的出现,温室控制终端需具备自动复位的能力。
基于这两种因素,终端MCU选用STC12C单片机,STC12C是单时钟/机器周期(1 T)单片机,速度比普通8051快8~12倍。内置看门狗复位电路,当看门狗没有被定时清零时,将引起复位,从而防止程序陷入死循环。终端硬件设计采用嵌入式技术,MCU搭载传感器、GPS模块和GPRS模块等。终端硬件架构如图2所示。

MCU通过串口分别连接GPS模块和GPRS模块。GPS模块采用Ubolx公司的高精度UbloxNEO6M。通过GPS模块在服务器端显示温室的位置信息,同时截取GPS帧里的时间戳,为每一帧上传至服务器的传感器数据加上时间标记。
传感器用于监测温室内重要的环境参量,包括温度、湿度、光照、二氧化碳等。其中温湿度传感器采用单总线数字式传感器DHT11。DATA引脚用于微处理器与DHT11之间的通信和同步,采用单总线数据格式,工作后可以一次完整传输40 bit温湿度数据。数据格式为:8 bit湿度整数数据+8 bit湿度小数数据+8 bit温度整数数据+8 bit温度小数数据+8 bit校验和。
GPRS模块采用SIMCOM公司的SIM300,内嵌TCP/IP协议栈,支持AT指令集。该模块负责无线通信链路的建立,它通过串口与MCU通信,串口工作于模式1,波特率设置为9 600 b/s。当串口接收到数据或者需要发送数据时产生串口中断,MCU响应中断执行相应处理程序。GPRS模块负责传感器数据上传和远程指令接收两方面的工作。MCU将传感器数据按通信协议封装成帧,交付GPRS模块定时发送。GPRS模块接收到手机短消息指令或控制中心Server指令时,交付MCU进行解析。
温室现场终端通过GPIO口,驱动继电器或电机执行温室天窗开关、遮阳网开关、卷帘收放等动作。
3 软件设计
系统软件设计围绕两个核心问题:传感器数据的无线发送和远程指令的接收并执行。基于这一思路,采取模块化的程序设计以保证良好的可维护性。系统任务由各子程序模块配合协作完成。例如分别有模块执行GPRS网络TCP通信链路的建立、温室控制算法、通信协议的执行以及短消息指令的分析等。图3为系统工作流程图。

3.1 TCP无线通信链路建立
GPRS是在现有GSM网络中增加GPRS网关支持节点GGSN和GPRS服务支持节点SGSN来实现的[3]。图4为通过AT指令使温室现场终端的GPRS模块和控制中心Server建立TCP连接的过程。

这一过程的实现用到的AT指令如下:
AT+CGATT=1(附着GPRS服务)
AT+CGDCONT=1,"IP","CMNET"(定义PDP 场景)
AT+CGACT=1,1(激活或解除PDP 移动场景)
AT+CIPCSGP=1,"CMNET",选择接入点
AT+CIPSTART="TCP","Server的 IP地址",
"Server的端口号",尝试TCP连接。
控制中心Server需具有公网IP地址,当成功建立TCP连接后,可用AT+CIPSEND发送数据到Server。如果要关闭TCP连接可用AT+CIPCLOSE命令。
3.2 通信协议和优先级
由于控制对象是一个温室群,每个温室布置有多种类型传感器,系统制定了完整的通信协议和数据校验机制来保证控制中心Server和温室现场终端的正确握手。
为每个被控温室分配一个独有的一级ID,温室内的各个传感器分配独有的二级ID,每帧上传数据的格式为:帧头0x21+温室ID+时间标记+传感器ID+传感器数据+CRC+帧尾0xFF。
由于为温室提供了SMS和GPRS两种远程控制方法,温室终端也嵌入了温室控制算法,使终端拥有对部分执行机构的控制权,以进行紧急情况的判断处理。为了避免操作的冲突性,系统为每种控制方式分配了不同的优先级,优先级从高到低依次为:温室终端、控制中心Server和移动控制端。当出现重复操作指令时,以优先级最高的为准。不符合通信协议的指令和数据将被直接过滤,避免误操作和重复操作情况的发生。
3.3 温室控制算法


如果将全部的控制权交由控制端(Server端和移动控制端)发出,对整个系统而言是十分危险的。例如光照传感器测出当前温室内光照强度过大,而此时控制端命令发生传输延迟或命令丢失的情况,这就会导致温室现场端因为等待不到远程命令而不作为的情况。植物很可能因此被强烈的阳光灼伤。
在系统设计中,温室现场终端拥有对部分执行机构的直接控制权,终端内运行温室控制算法,将选定的重要温室环境参量输入温室控制算法进行运算,根据运算结果判断是否动作相关执行机构,实现紧急情况下自动控制的功能。
以温室控制算法中的遮阳网控制算法为例,现场终端得到光照传感器测得的光照值后,会将其与程序内设定的适合作物生长的光照值做比较,如果实际值高于设定值,终端会驱动电机关闭遮阳网,反之驱动电机打开遮阳网。图5所示为温室遮阳网控制算法的流程图。

3.4 短消息指令分析
SMS(短消息)是GSM系统提供的一种业务,由于采用了短消息中心的存储和转发机制,保证了较高的可靠性[4-5]。下面为基本SMS设置的精简程序。
static void init_sms()
{ send_string_uart1("AT+CMGF=0\x00D\x00A");
send_string_uart1("AT+CSCS=\"UCS2\"\x00D\x00A"); //设置字符集
send_string_uart1("AT+CSMP=17,167,0,241\x00D\x00A");}
//设置短消息存储模式
GPRS模块上电启动后,通过AT指令进行基本SMS的设置,如“AT+CSCS=UCS2” 设置所使用字符集为UCS2,“AT+CMGF=0”设置使用PDU模式。
对于移动控制端指令,需统一消息帧头,以方便温室终端的提取和分析。本系统中所有的短消息指令都以“wenshictr”开头。如果操作者发短消息“wenshictr+hum=?”至某温室询问湿度值,该温室现场终端收到后, MCU通过AT+CMGR指令读出消息帧,去除帧的时间标记等内容,将控制指令提取出来,然后将实时湿度值经过UCS2编码,打包成PDU帧的格式通过“AT+CMGS”指令回复给操作者。当指定参量超出阈值,通过“ATD<电话号码>”指令可实现电话报警的功能。
本系统在温室现场经过验证,运行良好,GPRS传输数据稳定可靠,实时性较好。但由于移动公司的限制,发送数据的周期最好设置在几分钟以内。因为一定时间内如果通信链路没有产生流量,移动公司会取消分配给GPRS模块的网内IP。本系统设计的初衷是针对偏僻分散温室群的监控,但也可用于其他需要远距离监控的场合,具有良好的可移植性。
参考文献
[1] 宦娟,刘星桥,程立强,等.基于ZigBee的水产养殖水环境无线监控系统设计[J].渔业现代化,2012,39(1):34-38.
[2] 李永成,凌青,吴刚,等.基于ZigBee的温湿度数据无线采集监测系统设计[J].微型机与应用,2012,31(7):61-63.
[3] 卢伟,杨建华,袁雪尧.基于GPRS的嵌入式数据采集与远传系统[J].微计算机信息,2011,27(1):12-13.
[4] 朱万贵,郑国君,顾新建,等.基于SMS的远程监控系统的设计与实现[J].制造业自动化,2003,25(12):32-34.
[5] 周国祥,周俊,苗玉彬,等.基于GSM的数字农业远程监控系统研究与应用[J].农业工程学报,2005,21(6):87-91.

此内容为AET网站原创,未经授权禁止转载。
Baidu
map