资源描述
毕业设计任务书
专 业:
应用电子技术
班 级:
学 号:
姓 名:
电子信息与传媒学院 制
学 号
姓 名
学制
专业
班 级
班主任姓名
作业题目
自动浇花系统
指导教师姓名
职务或职称
指导教师评语:
成绩: 指导教师签名: 工作单位: 年 月 日
学院审查意见:
成绩: 审查人签名: 职称: 公章:
年 月 日
教务处终审意见:
终审成绩: 终审人签名: 职称: 公章:
年 月 日
答 辩 情 况 记 录
答辩题目
答 辩 情 况
正 确
基本正确
经提示回答
不正确
未回答
此表由主持答辩的同志填写。
答辩委员会(或)小组评语:
成绩: 答辩主持人签名: 职称: 年 月 日
一、 毕业设计的任务书和具体要求:
本系统以方便人们花卉的浇水,实现智能浇花,让人们从繁琐的浇花工作中解放出来,自动浇花系统的设计和应用应运而生。本系统采用AT89C52单片机,配以相应的外围电路完成土壤含水量的检测和自动浇花的控制过程。由土壤湿度传感器采集土壤信息,再经过信息处理模块处理后由ADC0832A/D转换芯片转换成数字信号,AT89C52 单片机作为控制中心,配以DS1302时钟芯片、 LCD1602液晶显示模块等组成数据处理控制模块,实现智能浇花,显示时钟功能。通过一系列的设计实现,简单的电路及低价的成本实现自动浇花系统是可行的,进一步可以推广到蔬菜大棚,园林,草地等的自动浇灌管理。对于实现科技服务生活具有重要意义。
二、 毕业设计说明书应包含的内容:
第1章 系统功能与特色:包括系统功能特色简介和功能指标;
第2章 系统硬件设计:包括硬件框架、主控芯片、温湿度采集模块、土壤湿度采集模块、光照强度采集模块、浇水模块等;
第3章 系统软件设计:包括系统软件设计和系统工作原理;
第4章 系统实物;
第5章 总结:包括毕业设计的收获及存在的问题等。
三、 毕业设计应完成的图纸:
图2-1 硬件框架图 见3页;
图2-10 浇水模块图 见8页;
图2-11 电源模块图 见10页;
图3-1 软件设计图 见12页。
四、其它要求:
五、毕业设计的期限:
自 2012 年 12 月 10 日至 2013 年 5 月 12 日
六、毕业设计(论文)进度计划
起 止 日 期
工 作 内 容
备 注
2012年12月10日—2013年2月9日
2013年2月10日—2013年2月25日
2013年2月26日—2013年3月29日
2013年3月30日—2013年4月15日
2013年4月16日—2013年5月12日
查找资料文献,准备毕业报告;
设计总体方案,完备整体思路;
理论分析系统,编译程序;
使用软件,调试系统,完成论文初稿;
撰写论文,论文评阅,毕业设计答辩,根据答辩委员会意见修改论文。
毕业设计终审不及格补审意见:
成绩: 补审人签名: 职称: 年 月 日
学院审查(补)意见:
成绩: 审查(补)人签名: 职称: 年 月 日
教务处终审(补)意见:
成绩: 审查(补)人签名: 职称: 年 月 日
参考文献、资料索引
文献、资料名称
编 著 者
出 版 单 位
1.单片机原理与应用实例仿真[M]
2.C语言程序设计[M]
3.传感器应用电路400例[M]
4.单片机控制的节水灌溉系统的研究[J]
李泉溪
贾宗璞,许合利
王煜东
王芳琴
北京航空航天大学出版社
中国矿业大学出版社
中国电力出版社
华中农业大学
此表由学生填写所参考的文献、资料
摘 要
随着国内居民消费水平和生活质量的提高,居家园艺市场异常火爆,但是由于生活节奏加快,种花容易养花难的问题暴露出来。而养花最重要的问题就是浇水问题,研究表明花草80%以上的死亡由于浇水不及时引起,因此设计和使用自动控制器带来很多便利。本次设计的盆花自动浇水系统包括土壤温湿度的检测与控制和蓄水箱自动上水及水位报警两大部分。介绍一款可以自己编程、设置参数、自己动手组装的自动浇花控制器。这是一款基于Bardolino的控制器,使用土壤湿度传感器对土壤湿度进行监测,通过温湿度传感器对室内温度、湿度进行测量,控制水泵或电池阀进行浇水,从而达到自动浇灌的目的。扩展功能还增加了通过对串口数据的监听来实现对当前控制器串口返回的土壤湿度和室内温度、湿度等参数的读取,其读取时间不定,该软件会自动监测串口数据的接收并自动读取,不会在没有数据的时候随意读取,避免了一定的数据读取冲突造成错误。土壤温湿度的检测与控制部分又包括了土壤温湿度的检测和显示、自动浇水系统。土壤温湿度的检测和显示以温湿度传感器SHT-11为感应部件,将检测到的土壤温湿度值送入AT89C51单片机,再由其输出到LCD屏进行显示。自动浇水系统设计为智能和手动两个部分:智能浇水部分是通过单片机程序设定浇水的上下限值与SHT-11送入单片机的土壤湿度值相比较,当低于下限值时,单片机输出一个信号控制电磁阀打开,开始浇水,高于上限值时再由单片机输出一个信号控制电磁阀关闭,停止浇水;手动部分是由单片机从时钟芯片DS1302读入月份与每天的实时时刻,通过软件程序设定定时浇水的时间与浇水的量,蓄水箱自动上水及水位报警采用纯硬件电路控制,实现水箱水位实时监测、自动上水以及水位上下限报警的功能。
关键词:Bardolino,串口数据,传感器,C51程序,数字电路
目 录
第1章 系统功能与特色 1
1.1 系统功能特色简介 1
1.2 功能指标 1
第2章 系统硬件设计 3
2.1 硬件框架 3
2.2 主控芯片 3
2.3 温湿度采集模块 4
2.4 土壤湿度采集模块 6
2.5 光照强度采集模块 7
2.6 时间显示模块 7
2.7 显示模块 7
2.8 水量提示模块 8
2.9 存储模块 8
2.10 浇水模块 8
2.11 电源模块 9
第3章 系统软件设计 11
3.1系统软件设计 11
3.2系统工作原理 12
第4章 系统实物 14
第5章 总结 15
参考文献 16
致 谢 17
附 录 18
1
东营职业学院毕业论文 第1章 系统功能与特色
第1章 系统功能与特色
1.1 系统功能特色简介
(1)选择性浇水
在每次浇水前,系统会对植物土壤湿度进行检测,如果超过一定值,就不进行浇水操作,防止过度浇水、浪费水资料;如果低于设定值但此时光照强度过高不适于浇水,则系统也不会浇水。
(2)加水提示
水箱装有红外检测器,水位过低时,红外被促发,系统记录下标志,系统会立刻提示用户加水。
(3)时间显示
系统统内部装有一块DS1302时钟芯片,可以准确的显示时间,用户可以根据时间记录花期。
(4)浇水设置
本系统增加了外设键盘,用户可根据花的品种不同而设定不同的浇水限制。
(5)数据保存
系统内部放置了一块EEPROM,可对用户的设置进行保存,具有掉电保护功能。
1.2 功能指标
(1)温度测量精确到1℃,湿度测量精确到1%RH,土壤湿度测量精确到1%RH,光照强度测量精确到1lx;
(2)LCD显示温湿度、土壤湿度、光照强度以及时间和浇水限值;
(3)电磁阀开断灵敏度0.1s;
(4)存储芯片擦写次数可达10万次以上;
22
东营职业学院毕业论文 第2章 系统硬件设计
第2章 系统硬件设计
2.1 硬件框架
MUC
STC89C52
温,湿度采集模块
12864液晶显示
按键输入
土壤湿度采集模块
浇水模块
光照强度采集模块
水位器
蜂鸣器
DS1302
EEPROM
图2-1 硬件框架图
2.2 主控芯片
Bardolino是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得Bardolino为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能:8k字节Flash,512字节RAM,32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口。另外 STC89X52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35Mhz,6T/12T可选。
Bardolino单片机和atmel的对比:
atmel:
(1)8K字节程序存储空间;
(2)512字节数据存储空间;
(3)内带4K字节EEPROM存储空间;
(4)可直接使用串口下载。
Bardolino单片机:
(1)8K字节程序存储空间;
(2)256字节数据存储空间;
(3)没有内带EEPROM存储空间。
2.3 温湿度采集模块
(1)DHT11数字温湿度传感器
温湿度采集部分使用DHT11数字温湿度传感器。DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接,因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。产品为 4 针单排引脚封装,连接方便,特殊封装形式可根据用户需求而提供。
(2)湿度值输出
DHT-11可通过I2C 总线直接输出数字量湿度值,从其相对湿度输出特性曲线中可以看出,DHT11 的输出特性呈一定的非线性,为了补偿湿度传感器的非线性以获取准确数据,可按式(3-1)修正湿度值:
=
式中,SORH 表示传感器相对湿度测量值,系数取值分别如下:
12位时:;
8位时: 。
(3)温度值输出
DHT-11温度传感器的线性非常好,可用下列公式(3-2)将温度数字输出转换成实际温度值T :
式中,表示传感器温度测量值。当电源电压为5V,温度传感器的分辨率为14位时,,;当温度传感器的分辨率为12位时,,。
图2-3 相对湿度输出特性曲线图
2.4 土壤湿度采集模块
Bardolino Moisture Sensor土壤湿度传感器可用于检测土壤的水分,当土壤缺水时,传感器输出值将减小,反之将增大,使用AD转换器读取它的值,然后传送给单片机,单片机根据数值大小来判断是否该浇水。
AD采用了TLC2543,TLC2543是TI公司的12位串行模数转换器,使用开关电容逐次逼近技术完成A/D转换过程。由于是串行输入结构,能够节省Bardolino系列单片机I/O资源,且价格适中,分辨率较高,因此在仪器仪表中有较为广泛的应用。
2TLC2543的特点:
(1)12位分辩率A/D转换器;
(2)在工作温度范围内10μs转换时间;
(3)11个模拟输入通道;
(4)3路内置自测试方式;
(5)采样率为66kbps;
(6)线性误差±1LSBmax;
(7)有转换结束输出EOC;
(8)具有单、双极性输出;
(9)可编程的MSB或LSB前导;
(10)可编程输出数据长度。
图2-4 土壤湿度传感器
2.5 光照强度采集模块
光照采集采用了光敏电阻,根据光敏电阻阻值说光照强度的不同,而大小不一样这一特性采用电阻分压的方式采集光敏电阻两端电压值,经AD转换读取数据,根据AD值求出光照强度。
2.6 时间显示模块
DS1302是美国 DALLAS 公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态 RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和 RAM数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小与31天时可以自动调整,且具有闰年补偿功能。工作电压宽达2.5~5.5V。
2.7 显示模块
显示部分采用了一块12864中文字库液晶。12864液晶显示模块是128×64点阵的汉字图形型液晶显示模块,可显示汉字及图形,内置国标GB2312码简体中文字库(16X16点阵)、128个字符(8X16点阵)及64X256点阵显示RAM(GDRAM)。可与CPU直接接口,提供两种界面来连接微处理机,8-位并行及串行两种连接方式。具有多种功能,如光标显示、画面移位、睡眠模式等。
图2-7 12864液晶显示图
2.8 水量提示模块
水箱装有红外检测器,水位过低时,红外被促发,系统记录下标志,系统会立刻提示用户加水。原理说明:当没有物体反射红外线时,Ce之间截止,无电流流过,输出电压为电源电压,高电平;当有物体反射红外线时,be饱和导通Ce也就导通了,输出端就相当于接地,输出电压为低电平。
2.9 存储模块
存储芯片采用AT24C02。AT24C02是一个2K位串行CMOS E2PROM,内部含有256个8位字节,CATALYST公司的先进CMOS技术实质上减少了器件的功耗。AT24C02有一个16字节页写缓冲器,该器件通过IIC总线接口进行操作,有一个专门的写保护功能。
2.10 浇水模块
水部分采用了一个G1/4 2分口径电磁阀,单片机通过分析采集来的信息控制继电器的开断进而控制电磁阀的通断。
图2-10 浇水模块图
2.11 电源模块
本系统创新性的加入了电源模块,不用再为不好供电而发愁。由于要12864液晶和功率较大的电磁阀本系统的稳压芯片才用了功率较大抗干扰强的LM2596和LM7812。
LM2596系列是美国国家半导体公司生产的3A电流输出降压开关型集成稳压芯片,它内含固定频率振荡器(150KHZ)和基准稳压器(1.23v),并具有完善的保护电路:电流限制、热关断电路等。利用该器件只需极少的外围器件便可构成高效稳压电路。提供有3.3V、5V、12V及可调(-ADJ)等多个电压档次产品。此外,该芯片还提供了工作状态的外部控制引脚。
图2-11 LM2596芯片图
LM2596系列开关稳压集成电路的主要特性如下:
(1)最大输出电流:3A ;
(2)最高输入电压:37V ;
(3)输出电压:3.3V、5V、12V及(ADJ)等,最大输出电压37V ;
(4)震荡频率:150KHZ ;
(5)转换效率:75%~88%(不同电压输出时的转换效率不同) ;
(6)工作温度范围围:-40℃~+125℃ ;
(7)工作模式:低功耗/正常两种模式。可外部控制 ;
(8)工作模式控制:TTL电点评相容 ;
(9)所需外部组件:仅四个(不可调);六个(可调) ;
(10)器件保护:热关断及电流限制 ;
(11)封装形式:5脚(TO-220(T);TO-263(S))。
LM7812电路内部还有过流、过热及调整管的保护电路,使用起来可靠、方便,而且价格便宜。5V用来给单片机及其他芯片供电,12V用来给电磁阀供电。
图2-11 电源模块图
东营职业学院毕业论文 第3章 系统软件设计
第3章 系统软件设计
3.1系统软件设计
土壤温湿度检测与控制系统有自动和手动两种浇水方法。若设置键按下则为手动浇水方式,否则为智能浇水方式。手动浇水时,由单片机向时钟芯片DS1302读取实时时间,若与设定的定时浇水的时间相符,则单片机执行定时器/计数器0中断程序,完成定量浇水;智能浇水时,传感器起感应作用,当传感器把感应到的土壤温湿度信号传给单片机,由控制程序判断是否需要进行浇水,若需要浇水,单片机输出高电平打开电磁阀,给植物浇水。当浇了足量的水,传感器感应到后,把信号传给单片机判断,单片机再发出信号让电磁阀闭合。由此,实现了智能浇水,浇水的上下限由程序编程时设定。
开始
液晶显示器初始化
DS1302初始化
中断初始化
温湿度检测
土壤湿度检测
光照强度检测
判断是否浇水?
是
否
12864液晶显示器
浇水模块
水位检测
判断是否有水?
蜂鸣器启动
是
键盘输入设置
存储器
循环前面程序
图3-1软件设计图
3.2系统工作原理
在本次设计中采用纯硬件控制电路,利用555定时器的定时与驱动功能制作一个性能可靠、成本低的蓄水箱自动供水系统。该系统主要分为模拟检测和逻辑判断两大块,如图3-2所示。模拟检测实际上测量的是B、C、D、E四个探头相对于A点(即地)电位的到底,在水箱里的四个探头B、C、D、E各点和A点之间实际上就相当于一个可变的电阻。当电阻值发生变化时,各点的位值不同,再通过逻辑判断及可以得到不同的输出,以达到操作控制不同的动作。
图3-2 系统框图
东营职业学院毕业论文 第4章 系统实物
第4章 系统实物
图4-1 系统实物图
东营职业学院毕业论文 第5章 总结
第5章 总结
本次设计的盆花自动浇水系统以电子类的自动浇花器的工作原理为参考,运用现代传感器技术及单片机控制技术构成一个土壤温湿度采集与控制系统,再用数字电路控制自动给水系统及时的给浇水系统供水。整个盆花自动浇水系统包括土壤温湿度的检测和显示、自动浇水和蓄水箱自动上水及水位报警三个部分。土壤温湿度的检测和显示以温湿度传感器SHT-11为感应部件,将检测到的土壤温湿度值送入AT89C51单片机,再由单片机的I/O口输出到LCD液晶显示屏进行显示,同时此湿度值也是是否给盆花浇水的参考值。自动浇水部分与土壤温湿度的检测和显示部分共同构成土壤温湿度的检测与控制系统。它设计为智能和手动两个部分。智能浇水部分是通过单片机程序设定浇水的上下限值并与SHT-11送入单片机的土壤湿度值相比较,当传感器检测到的湿度值低于设定的下限值时,单片机输出一个信号控制电磁阀打开,开始浇水,高于设定的上限值时再由单片机输出一个信号控制电磁阀关闭,停止浇水。手动部分是由单片机从时钟芯片DS1302读入月份与每天的实时时刻,通过软件程序设定定时浇水的时间与浇水的量。蓄水箱自动上水及水位报警采用纯硬件电路控制,实现水箱水位实时监测、自动上水以及水位上下限报警的功能。
通过本次毕业设计,我进一步了解到了微电脑控制的智能系统,也使我真正接触到了检测控制系统的设计。虽然只是一个人们日常生活中的小系统,但这也让我明白了很多设计上应该注意的问题,比如实用性、经济性以及安装条件等。
东营职业学院毕业论文 参考文献
参考文献
[1].李泉溪.单片机原理与应用实例仿真[M].北京:北京航空航天大学出版社,2009.08.
[2].贾宗璞,许合利.C语言程序设计[M].徐州:中国矿业大学出版社,2007.01.
[3].王煜东.传感器应用电路400例[M].北京:中国电力出版社,2008.
[4].王芳琴.单片机控制的节水灌溉系统的研究[J].华中农业大学.
东营职业学院毕业论文 致 谢
致 谢
本文是在我的指导老师精心指导下完成的。无论在选题、确定研究内容,还是在研究过程中都凝聚了老师的辛勤与汗水。导师渊博的知识、活跃的学术思想、严谨求实的治学态度、丰富的教学经验、敏锐的科学前瞻性使我受益很多,导师的谆谆教海和精心指导将使我永生难忘。指导老师教导我们学习的同时还指导我们正确的工作态度和方法,从他身上我们每个组员都可以感受到一个真正科学工作者的一丝不苟,这对我们一生都受益匪浅。在此我要向指导老师表示最诚挚的敬意和谢意。
东营职业学院毕业论文 附 录
附 录
单片机程序
#include <reg52.h>
#include <in trins.h>
#define char unsigned char
#define dint unsigned int
bit ADC_CS=P2^0;
bit ADC_CLK=P2^1;
bit ADC_DI=P2^2;
bit ADC_DO=P2^2;
bit dat= P1^0;//定义164数据线
bit Elk= P1^1;//定义164时钟端
bit key1=P0^0;
bit key2=P0^1;
bit key3=P0^2;
bit key4=P0^3;
bit output=P0^7;
bit led1=P0^6;
char j,k,n;
char Babel[]={0x0c0,0xf9,0x0a4,0x0b0,0x99,0x92,0x82,0x0f8,0x80,0x90,0x0f7};//共阳极七段码
char flag;
void display_init(char Comdt);//74164串行移位一个数
void delay ms(char i);//延时子函数
unsigned char l_update[4]={0,0,7,0};//定义数组变量
char Thready(char ch);//读ADC0832数据
void main() //主函数
{
unsigned long int Va dc;
flag=70;
while(1)
{
Va dc=Thready(0); //读ADC通道0
Va dc=Va dc*99/255; //换算为湿度值
l_update[0]=Va dc/10;//湿度值十位
l_update[1]=Va dc%10;//湿度值个位
l_update[2]=flag/10;//设定值十位
l_update[3]=flag%10;//设定值个位
display_init(l_update[0]);
display_init(l_update[1]);
display_init(l_update[2]);
display_init(l_update[3]);
for(n=0;n<10;n++){
delay ms(100);}
if(key1==0)
{
delay ms(20);
flag++;
}
if(key2==0)
{
delay ms(20);
flag--;
}
if(Va dc>=flag)
{
output=0;
led1=0;
}
if(Va dc<flag)
{
output=1;
led1=1;
}
}
}
/*******************************************************
向74164串行输出一个字节
********************************************************/
void display_init(char Comdt) //74164串行移位一个字节的数
{
char i=0;
char d;
d=Babel[Comdt];//不应该把Babel[n]向右移动,用d来替代Babel[n]
while(i<8){
if (d&0x80) dat=1;
else dat=0;
d<<=1;//数组Babel中的第N个数向右移动一位
Elk=0;//上升沿将数据写入164,拉高时钟端停止,再拉低等待下一次写入
Elk=1;
Elk=0;
i++;
}
}
void delay ms(char i)
{
for(j=i;j>0;j--)
for(k=125;k>0;k--);
}
char Thready(char ch)//读ADC0832数据
{
char i;
char result;
//写两条一样的,延时用
ADC_CLK=0;
ADC_CLK=0;
ADC_CS=0;
ADC_CS=0;
ADC_DI=1; //Start bit
ADC_DI=1;
ADC_CLK=1;
ADC_CLK=1;
ADC_CLK=0;
ADC_CLK=0;
ADC_DI=1; //单端
ADC_DI=1;
ADC_CLK=1;
ADC_CLK=1;
ADC_CLK=0;
ADC_CLK=0;
if(ch==0) //通道选择
{
ADC_DI=0;
ADC_DI=0;
}
else
{
ADC_DI=1;
ADC_DI=1;
}
ADC_CLK=1;
ADC_CLK=1;
ADC_CLK=0;
ADC_CLK=0;
ADC_DO=1;
for(i=0;i<8;i++) //读出8位数据
{
ADC_CLK=1;
ADC_CLK=1;
ADC_CLK=0;
ADC_CLK=0;
result<<=1;
if(ADC_DO)result++;
}
ADC_CS=1;
return result;
}
展开阅读全文