基于单片机的农业自动灌溉控制器(共37页).doc
《基于单片机的农业自动灌溉控制器(共37页).doc》由会员分享,可在线阅读,更多相关《基于单片机的农业自动灌溉控制器(共37页).doc(37页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上基于单片机的农业自动灌溉控制器摘要:现有农业灌溉方式效率偏低。本设计意在实现一种高效节水的灌溉控制器。农业自动灌溉控制器采用单片机控制技术,实现田间土壤温湿度采集和灌溉阀门开关控制。该控制器具有自动和手动两种工作方式。自动模式时,单片机实时判断土壤温湿度状况,结合设定阈值,自动打开和关闭阀门;手动时,操作员可以现场或使用手机短信远程完成阀门启闭。实验表明,本设计方案可行性高,使用该控制器可以方便的控制田间农产品灌溉,提高灌溉效率。关键词:灌溉控制器、单片机、传感器、自动灌溉、远程遥控正文1 引言我国是一个干旱缺水严重的国家。淡水资源总量为28000亿立方米,占全球水资
2、源的6,仅次于巴西、俄罗斯和加拿大,居世界第四位,但人均只有2300立方米,仅为世界平均水平的14、美国的15,在世界上名列121位,是全球13个人均水资源最贫乏的国家之一。扣除难以利用的洪水泾流和散布在偏远地区的地下水资源后,我国现实可利用的淡水资源量则更少,仅为11000亿立方米左右,人均可利用水资源量约为900立方米,并且其分布极不均衡。水利部预测,2030年中国人口将达到16亿,届时人均水资源量仅有1750立方米。在充分考虑节水情况下,预计用水总量为7000亿至8000亿立方米,要求供水能力比现在增长1300亿至2300亿立方米,全国实际可利用水资源量接近合理利用水量上限,水资源开发难
3、度极大。这样、节约用水就成了重中之重!我国“十二五”规划也将“节水灌溉”项目作为重点工程进行推进,同时也提供大量的财政方面的政策支持。纵观现有农业灌溉技术,总体上还是处于比较落后的局面,特别是在一些偏远山区,对于一些大面积的作物灌溉时,需要投入大量的人力、物理和财力,这不仅浪费有限的资源,更是增加的生产成本。而灌溉方式的相对落后更是加重了我国资源水平的负担。目前我国多数采用人工灌溉和定时灌溉。人工灌溉就是通过人对作物的需水观察判断,靠人工来控制阀门的开关,实现实时灌溉。这种方式虽然能够大概的满足作物生长的需水量,但是却大量消耗人力,和大量浪费水资源;而对于定时自动灌溉,虽然解决了人力的问题,但
4、是却不能更加灵活的控制,针对性较差,不能准确的根据作物的实际需水状况进行灌溉,仍然会造成水资源的浪费。所以人们期待能够有一种更加灵活方便的灌溉设施,既可以解决人力问题,又可以更加灵活的根据作物实际需水量,针对性的实施灌溉。而如果利用嵌入式技术、传感器技术以及无线传输技术并将这些技术合理的结合,设计一款灌溉控制器的话,就可以真正的实现方便灵活准确的控制灌溉的功能。下面,将会对笔者设计的农业灌溉控制器进行详细介绍。2 自动灌溉控制器概括2.1 工作功能本自动灌溉控制器采用单片机控制技术,通过接收数字式传感器数据、计算处理和控制阀门开关来实现自动控制灌溉功能外,还可以通过手机对其进行远程设置土壤湿度
5、灌溉阙值、每次灌溉时间以及控制阀门的开关。其工作示意图如下图所示。图2-1 农业灌溉控制系统工作原理2.2 模块组成本自动灌溉控制器的模块组成包括3大部分:单片机控制器、传感器通讯模块、GSM无线通讯模块。具体内容,后面章节将会进行详细介绍,这里不进行赘述。2.3 操作方法本自动灌溉控制器默认设置下,开机进入到数据监测工作状态。在数据监测工作状态下,本灌溉控制器可以接收到用户的口令,进行阀门开关控制,如果此时是自动灌溉模式,自动灌溉控制器还可以根据土壤水分实际值和土壤水分灌溉阙值进行对比,自动的控制阀门开关。用户可以通过手动操作本灌溉控制器,设置相关参数和数据,具体设置方法如下。在数据监测工作
6、状态下,按下菜单键,可以进入系统设置菜单中,进行系统设置。系统设置的方法一般为选中要设置的项目后,按下确认键,进入到设置当中,设置完毕后按下菜单键可以返回。用户可以通过手机等移动终端遥控本管概控制器进行相关菜蔬和数据设置。具体方法请参见5.3节 无线通讯自定义协议中的内容,这里不进行赘述。3 土壤温度传感器和湿度传感器土壤温度和湿度传感器是2种数字传感器。两种传感器将检测到的土壤水分和土壤温度数字量封装成一个固定的通讯协议,并通过RS485将数据发送给接收设备。下面,将对土壤温度传感器和土壤水分传感器进行详细的介绍。3.1土壤温度传感器3.1.1土壤温度传感器地址每一个土壤温度传感器都有一个标
7、志传感器类型的代号和标志本身身份标识的地址,土壤温度传感器的类型代号是其地址码低4位二进制数。例如:1号土壤温度传感器的地址是0x0B,2号土壤温度传感器的地址是0x1B,3号土壤温度传感器的地址是0x2B16号土壤温度传感器的地址是0xFB如上所示,一台设备上可以识别的最多的土壤温度传感器的数量是16个。3.1.2土壤温度传感器传输数据原理请求设备(例如单片机)如果想要获得土壤温度传感器的数值,则需要向土壤温度传感器发送一个请求信号,土壤温度传感器收到这个请求信号后,会向请求设备返回土壤温度的数字量。3.1.3土壤温度传感器传输协议与土壤温度传感器进行串口通讯,需要按照一个协议通讯。通讯协议
8、如下:发送传感器数据请求的协议是:请求开始字节是0xAA;第二个字节是0x00;第三个字节是0x64;第四个字节是目标传感器的地址,这里是与土壤温度传感器1进行发送请求,所以发送的第四个字节是0x0B;最后一个字节是0xA5。按照以上顺序发送5个字节后传感器就会返回传感器的数据。返回传感器数据的协议是:在通讯开始的时候,发送一个开始字节0xAA;发送的第2个字节是0x64;发送的第3个字节是土壤温度传感器本身的地址,这里具体指的是传感器1的地址,即0x0B;发送的第4个字节是传感器返回数据(16位数据)的高8位所属的字节;发送的第5个字节是传感器返回数据(16位数据)的低8位所属的字节;发送的
9、第6个字节可能有两种情况:情况1:数据不与0xAA冲突,发送最后一个字节0xA5;情况2:如果返回的数据在数值上等于176或165即0xAA和0xA5,这时为了保证数据格式的一致性,就要避免在数据中直接传输0xAA和0xA5,就要用其他的数据替换0xAA和0xA5,替换方案是第5第6两个字节分别为0xAC、0xAB时替换0xAA;0xAC、0xA6用来替换0xA5;0xAC、0xAD用来替换0xAC。替换0xAC的原因和替换0xAA、0xA5的原因实际上是一样的。因为0xAC和0xAA、0xA5同样都是关键字。发送完第6位数据字节后,还要在后面补发一个结束字节0xA5。完成发送。3.2土壤水分
10、传感器3.2.1土壤水分传感器的地址土壤水分传感器的地址分配,在原则上实际上是与土壤温度传感器是一样的。只不过在类型上有所差别,例如:土壤水分传感器1的地址是0x0C;土壤水分传感器2的地址是0x1C等等。3.2.2土壤水分传感器的传输协议土壤水分传感器传输协议实际上与土壤温度传感器的传输协议是完全一样的。具体方法,请参照土壤温度传感器的传输协议。3.3 RS485通讯土壤温度传感器和土壤水分传感器都是通过RS485总线与外部进行通讯的。采用RS485据有诸多优点:RS485是一种可以1对多的通讯,相比较RS232的只能点对点的通讯更加适用于工程应用。RS485通讯的信号传输方式类似于“广播”
11、,即只能一个终端发送,可以多个终端接收。如果同时出现2个终端发送的情况,将会使RS485的总线出现数据混乱。这也是RS485总线的一个缺点。相对于RS232总线,RS485数据总线的传输数据距离更远。RS232总线的传输距离一般在100米以内,RS485总线的传输距离最远可达1000米。在实际应用中,RS485总线靠近芯片端的AB线之间应该接一个大小为100的电阻来加强数据接收。否则接收端将会很难稳定的接收总线上的数据。这一点经验是在不断试验和摸索的过程中得到的。4 GSM无线通讯介绍GSM无线通讯需要借助GSM无线传输模块,GSM无线传输模块无处不在,典型的例子就是人们日常生活中不可缺少的手
12、机,当通过手机打电话和发送短信的时候,这些操作都是经由GSM无线传输模块完成的。本农业灌溉控制器采用西门子公司GSM模块,型号为TC35的模块的短信功能,通过此模块可以实现对收到的用户指令进行处理。下面将会对TC35模块的短信功能进行着重介绍。4.1 TC35 GSM模块操作方法用户对TC35 GSM模块的操作,主要是通过所谓的“AT”指令集来实现的。用户通过与GSM无线模块的信号交互端TXD0、RXD0口进行串行通信,并向GSM无线模块发送“AT”指令集,最终达到操作GSM模块进行无线传输的目的。TC35 GSM模块的TXD0和RXD0端是全双工的串口通讯,其中TXD0是GSM模块的串口信号
13、接收端、RXD0是TC35 GSM模块的串口信号发出端。通过与其他有串口通讯接口设备向链接,可以实现串口通讯。拿51单片机举个例子:51系列单片机都有一对串口通信接口TXD和RXD,对于单片机来说,TXD口是串行信号输出端、RXD口则是串行信号的输入端,所以如果要51单片机和TC35进行串行通信的话,就要把单片机的输出端口与TC35的信号输入端口相连接即TXD口与TXD0口向关联;同样的,也要把TC35模块的信号输出端与单片机的串口信号输入端相连接即RXD0口与RXD口相关联。到了这里理论上单片机和GSM模块应该就可以实现相互之间的串口通信了,但是在实物连接调试过程当中却屡屡不能实现预期的效果
14、。最后在不断的实验和尝试下,终于找到了原因。原因主要有以下两点:第一:忽略了TC35 GSM模块与单片机的供电部分是完全分开的,所以没有共同的接地端。因为单片机与TC35 的GSM模块串行通讯是电平之间的通讯,如果没有共同的“接地”端,那么两者之间的电平就会出现不一致的情况,这种情况是很危险的,举个例子,假设单片机的“接地”端与TC35模块的“接地”端电平相差50V,那么在两者通讯过程当中很有可能出现器件由于过电压而击穿的现象。所以,在应用过程中,原件之间的“接地”端,一定要一致。第二:在将TC35 GSM模块的“接地”端与单片机的“接地”端链接以后,却出现了新的问题:单片机有的时候可以与TC
15、35 GSM模块正常通讯,有的时候却不可以。这个问题在不断的实验和调试后也找到了原因:TC35 GSM是CMOS器件,STC89C516RD+是TTL芯片,二者在通讯过程中会出现高电平不兼容的情况,电平不兼容主要表现在TTL电平无法完美兼容CMOS电平。解决的方法有2个,一种是在TTL电平的单片机和CMOS电平的TC35 GSM模块之间加上RS232数据总线,利用RS232芯片使单片机能够与TC35GSM模块正常通讯。另一种方法就是把单片机的TXD端经由7407芯片(TTL转CMOS芯片)转换后在连接TC35 GSM模块。解决了以上两个问题,单片机可以与TC35 GSM模块正常的通讯了。4.2
16、 TC35 GSM模块发送短信操作TC35 GSM模块发送消息的“AT”指令是字符串AT+CMGSTC35 GSM发送短信的模式有两种:TEXT模式发送短信以及PDU模式发送短信4.2.1 TC35TEXT模式发送短信TC35 GSM模块实用TEXT模式发送短信的操作过程相对于PDU模式来的简单得多,TEXT模式下,TC35 GSM模块可以向目标地址发送128个ASCII码表中的字符或符号。具体操作方法如下:第一步:设置短信编码格式单片机向TC35 GSM模块发送字符串“AT+CMGF=1”和一个回车符(ASCII码为0x0D)设置TC35 GSM模块的短信编码模式为TEXT模式。第二步:发送
17、目标号码单片机向TC35 GSM模块发送字符串“AT+CMGS=“”和一个回车符,TC35 GSM模块在接收到这个“AT”指令后,将会返回给单片机以上“AT”指令码以及一个>符号,这就代表单片机可以开始发送短信的内容了。注意:在单片机向GSM发送目标号码过程中,目标号码两端都要加双引号。 第三步:发送短信内容单片机在收到>这个符号后,开始发送具体短信内容,这里要注意“TEXT”编码的短信模式下,不可以发送任何超过128的ASCII码,否则发送失败。在发送完需要的短信内容后,就可以发送一个ASCII码为0x1A的符号完成最后发送。TC35 GSM模块在发送成功后会返回给单片机一个“O
18、K”字符串,意为成功的发送短信息。4.2.2 TC35 PDU模式发送短信TC35 GSM模块使用PDU模式发送短信,可以发送UNICODE编码格式的字符,例如发送中文短信和ASCII扩展表的内容(超过128的ASCII码)。不同于TEXT编码模式发送短信的操作过程。PDU模式发送短信前是需要先将短信内容编码后再将编码发送出去的。具体PDU模式发送短信步骤如下:第一步:将要发送的短信进行编码如果我们要发送的短信内容是“你好!”则短信内容的编码是4F60597D0021,在这里,不妨设sMSG为4F60597D0021。对短信编码后,还需要对短信中心地址、目标号码、短信相关设置等内容进行编码。短
19、信中心地址编码如下01905F0,其中08代表SMSC地址信息的长度,即08后面的字串长度的一半,也就是说905F0的字串长度是16个字符、一半也就是08。这里不妨设sADDR为01905F0。假设接收短信方的号码是,则编码为11000D398F7,其中11代表TP-MTI/VFP参数,这里可以可以视为固定值;00代表消息基准值(TP-MR),也可以视为固定值;0D代表目标地址数字个数不包括91和F共13个十进制数;91代表目标号码地址的格式,这里也就是使用用国际通用格式,在号码前有一个“+86”的号码,这就是国际通用格式,+86指代中国地区。8F7就是目标号码的编码,编码方式:如果号码不够偶
20、数位,则对号码的最后一位加一个F,补码后在对号码进行每两位前后数字倒置。最后得到8F7。这里不妨设sTAR为11000D398F7。此外还要对短信内容设置部分进行编码,编码内容是0004AA06其中00代表普通GSM通讯类型即点到点方式;04代表短信内容采用8-bit编码格式发送。AA表示有效期时间长度;06代表短信编码长度的一半,这里是6.这里不妨设刚才设定的sMSG为短信格式设定加上短信内容即sMSG为0004AA064F60597D0021。最后可以得到PDU编码为sADDR+sTAR+sMSG即01905FD398F70004AA064F60597D0021。编码完成第二步:发送“AT
21、”指令”AT+CMGS=21”加一个回车符这里的21代表sTAR+sMSG的字符串长度的一半。TC35 GSM模块在收到AT指令后将会发送回一个>符号,意为用户可以发送PDU编码了第三步:单片机向TC35 GSM模块发送内容为PDU编码的字符串加一个0x1AASCII码。TC35 GSM模块在接收到以上内容、并判断无误后会将“你好!”发送到目标号码中。4.3 TC35 GSM模块接收短信TC35 GSM模块可以读取手机卡中存储的短信息,但是当收到一条新短消息的时候,TC35 GSM模块并不是直接将消息通过串口发送给其他设备,而是需要其他设备(如单片机)主动的去读取TC35 GSM模块中S
22、IM卡的短信息。虽然TC35 GSM模块不可以在短信息刚到的时候就将信息发送到串口,但是却可以手动设置TC35 GSM模块在有新短消息的时候自动通过串口提示其他设备有新短消息。这样,其他设备在得知有新短消息后,就可以进行读取消息操作了。关于TC35 GSM模块读取短消息功能,由于发送短信时有不同的编码格式,所以在接收短信的时候也有不同的编码格式。发送短信有TEXT模式和PDU模式,同样的,接收短信也有TEXT模式和UPD模式。4.3.1 设置自动提醒新短消息功能设置TC35 GSM模块自动提醒新短消息,需要向模块发送AT+CNMI命令,例如发送:AT+CNMI=1,1,0,0,1<回车&
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 农业 自动 灌溉 控制器 37
限制150内