毕业论文自动浇花系统.docx
《毕业论文自动浇花系统.docx》由会员分享,可在线阅读,更多相关《毕业论文自动浇花系统.docx(24页珍藏版)》请在冰点文库上搜索。
毕业论文自动浇花系统
毕业设计任务书
专业:
应用电子技术
班级:
学号:
姓名:
电子信息与传媒学院制
学号
姓名
学制
专业
班级
班主任
作业题目
自动浇花系统
指导教师
职务或职称
指导教师评语:
成绩:
指导教师签名:
工作单位:
年月日
学院审查意见:
成绩:
审查人签名:
职称:
公章:
年月日
教务处终审意见:
终审成绩:
终审人签名:
职称:
公章:
年月日
答辩情况记录
辩论题目
答辩情况
正确
根本正确
经提示答复
不正确
未答复
此表由主持辩论的同志填写。
辩论委员会〔或〕小组评语:
成绩:
辩论主持人签名:
职称:
年月日
一、毕业设计的任务书和具体要求:
本系统以方便人们花卉的浇水,实现智能浇花,让人们从繁琐的浇花工作中解放出来,自动浇花系统的设计和应用应运而生。
本系统采用AT89C52单片机,配以相应的外围电路完成土壤含水量的检测和自动浇花的控制过程。
由土壤湿度传感器采集土壤信息,再经过信息处理模块处理后由ADC0832A/D转换芯片转换成数字信号,AT89C52单片机作为控制中心,配以DS1302时钟芯片、LCD1602液晶显示模块等组成数据处理控制模块,实现智能浇花,显示时钟功能。
通过一系列的设计实现,简单的电路及低价的本钱实现自动浇花系统是可行的,进一步可以推广到蔬菜大棚,园林,草地等的自动浇灌管理。
对于实现科技效劳生活具有重要意义。
二、毕业设计说明书应包含的容:
第1章系统功能与特色:
包括系统功能特色简介和功能指标;
第2章系统硬件设计:
包括硬件框架、主控芯片、温湿度采集模块、土壤湿度采集模块、光照强度采集模块、浇水模块等;
第3章系统软件设计:
包括系统软件设计和系统工作原理;
第4章系统实物;
第5章总结:
包括毕业设计的收获及存在的问题等。
三、毕业设计应完成的图纸:
图2-1硬件框架图见3页;
图2-10浇水模块图见8页;
图2-11电源模块图见10页;
图3-1软件设计图见12页。
四、其它要求:
五、毕业设计的期限:
自2021年12月10日至2021年5月12日
六、毕业设计〔论文〕进度方案
起止日期
工作容
备注
2021年12月10日—2021年2月9日
2021年2月10日—2021年2月25日
2021年2月26日—2021年3月29日
2021年3月30日—2021年4月15日
2021年4月16日—2021年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〕选择性浇水
在每次浇水前,系统会对植物土壤湿度进展检测,如果超过一定值,就不进展浇水操作,防止过度浇水、浪费水资料;如果低于设定值但此时光照强度过高不适于浇水,那么系统也不会浇水。
〔2〕加水提示
水箱装有红外检测器,水位过低时,红外被促发,系统记录下标志,系统会立刻提示用户加水。
〔3〕时间显示
系统统部装有一块DS1302时钟芯片,可以准确的显示时间,用户可以根据时间记录花期。
〔4〕浇水设置
本系统增加了外设键盘,用户可根据花的品种不同而设定不同的浇水限制。
〔5〕数据保存
系统部放置了一块EEPROM,可对用户的设置进展保存,具有掉电保护功能。
1.2功能指标
〔1〕温度测量准确到1℃,湿度测量准确到1%RH,土壤湿度测量准确到1%RH,光照强度测量准确到1lx;
〔2〕LCD显示温湿度、土壤湿度、光照强度以及时间和浇水限值;
〔3〕电磁阀开断灵敏度0.1s;
〔4〕存储芯片擦写次数可达10万次以上;
第2章系统硬件设计
2.1硬件框架
图2-1硬件框架图
2.2主控芯片
Bardolino是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得Bardolino为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
具有以下标准功能:
8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,置4KBEEPROM,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土壤湿度采集模块
BardolinoMoistureSensor土壤湿度传感器可用于检测土壤的水分,当土壤缺水时,传感器输出值将减小,反之将增大,使用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-712864液晶显示图
2.8水量提示模块
水箱装有红外检测器,水位过低时,红外被促发,系统记录下标志,系统会立刻提示用户加水。
原理说明:
当没有物体反射红外线时,Ce之间截止,无电流流过,输出电压为电源电压,高电平;当有物体反射红外线时,be饱和导通Ce也就导通了,输出端就相当于接地,输出电压为低电平。
2.9存储模块
存储芯片采用AT24C02。
AT24C02是一个2K位串行CMOSE2PROM,部含有256个8位字节,CATALYST公司的先进CMOS技术实质上减少了器件的功耗。
AT24C02有一个16字节页写缓冲器,该器件通过IIC总线接口进展操作,有一个专门的写保护功能。
2.10浇水模块
水局部采用了一个G1/42分口径电磁阀,单片机通过分析采集来的信息控制继电器的开断进而控制电磁阀的通断。
图2-10浇水模块图
2.11电源模块
本系统创新性的参加了电源模块,不用再为不好供电而发愁。
由于要12864液晶和功率较大的电磁阀本系统的稳压芯片才用了功率较大抗干扰强的LM2596和LM7812。
LM2596系列是美国国家半导体公司生产的3A电流输出降压开关型集成稳压芯片,它含固定频率振荡器〔150KHZ〕和基准稳压器〔1.23v〕,并具有完善的保护电路:
电流限制、热关断电路等。
利用该器件只需极少的外围器件便可构成高效稳压电路。
提供有3.3V、5V、12V及可调〔-ADJ〕等多个电压档次产品。
此外,该芯片还提供了工作状态的外部控制引脚。
图2-11LM2596芯片图
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.1系统软件设计
土壤温湿度检测与控制系统有自动和手动两种浇水方法。
假设设置键按下那么为手动浇水方式,否那么为智能浇水方式。
手动浇水时,由单片机向时钟芯片DS1302读取实时时间,假设与设定的定时浇水的时间相符,那么单片机执行定时器/计数器0中断程序,完成定量浇水;智能浇水时,传感器起感应作用,当传感器把感应到的土壤温湿度信号传给单片机,由控制程序判断是否需要进展浇水,假设需要浇水,单片机输出高电平翻开电磁阀,给植物浇水。
当浇了足量的水,传感器感应到后,把信号传给单片机判断,单片机再发出信号让电磁阀闭合。
由此,实现了智能浇水,浇水的上下限由程序编程时设定。
图3-1软件设计图
3.2系统工作原理
在本次设计中采用纯硬件控制电路,利用555定时器的定时与驱动功能制作一个性能可靠、本钱低的蓄水箱自动供水系统。
该系统主要分为模拟检测和逻辑判断两大块,如图3-2所示。
模拟检测实际上测量的是B、C、D、E四个探头相对于A点〔即地〕电位的到底,在水箱里的四个探头B、C、D、E各点和A点之间实际上就相当于一个可变的电阻。
当电阻值发生变化时,各点的位值不同,再通过逻辑判断及可以得到不同的输出,以到达操作控制不同的动作。
图3-2系统框图
第4章系统实物
图4-1系统实物图
第5章总结
本次设计的盆花自动浇水系统以电子类的自动浇花器的工作原理为参考,运用现代传感器技术及单片机控制技术构成一个土壤温湿度采集与控制系统,再用数字电路控制自动给水系统及时的给浇水系统供水。
整个盆花自动浇水系统包括土壤温湿度的检测和显示、自动浇水和蓄水箱自动上水及水位报警三个局部。
土壤温湿度的检测和显示以温湿度传感器SHT-11为感应部件,将检测到的土壤温湿度值送入AT89C51单片机,再由单片机的I/O口输出到LCD液晶显示屏进展显示,同时此湿度值也是是否给盆花浇水的参考值。
自动浇水局部与土壤温湿度的检测和显示局部共同构成土壤温湿度的检测与控制系统。
它设计为智能和手动两个局部。
智能浇水局部是通过单片机程序设定浇水的上下限值并与SHT-11送入单片机的土壤湿度值相比拟,当传感器检测到的湿度值低于设定的下限值时,单片机输出一个信号控制电磁阀翻开,开场浇水,高于设定的上限值时再由单片机输出一个信号控制电磁阀关闭,停顿浇水。
手动局部是由单片机从时钟芯片DS1302读入月份与每天的实时时刻,通过软件程序设定定时浇水的时间与浇水的量。
蓄水箱自动上水及水位报警采用纯硬件电路控制,实现水箱水位实时监测、自动上水以及水位上下限报警的功能。
通过本次毕业设计,我进一步了解到了微电脑控制的智能系统,也使我真正接触到了检测控制系统的设计。
虽然只是一个人们日常生活中的小系统,但这也让我明白了很多设计上应该注意的问题,比方实用性、经济性以及安装条件等。
参考文献
[1].泉溪.单片机原理与应用实例仿真[M].:
航空航天大学,2021.08.
[2].贾宗璞,许合利.C语言程序设计[M].:
中国矿业大学,2007.01.
[3].王煜东.传感器应用电路400例[M].:
中国电力,2021.
[4].王芳琴.单片机控制的节水灌溉系统的研究[J].华中农业大学.
致
本文是在我的指导教师精心指导下完成的。
无论在选题、确定研究容,还是在研究过程中都凝聚了教师的辛勤与汗水。
导师渊博的知识、活泼的学术思想、严谨的治学态度、丰富的教学经历、敏锐的科学前瞻性使我受益很多,导师的谆谆教海和精心指导将使我永生难忘。
指导教师教诲我们学习的同时还指导我们正确的工作态度和方法,从他身上我们每个组员都可以感受到一个真正科学工作者的一丝不苟,这对我们一生都受益匪浅。
在此我要向指导教师表示最诚挚的敬意和意。
附录
单片机程序
#include
#include
#definecharunsignedchar
#definedintunsignedint
bitADC_CS=P2^0;
bitADC_CLK=P2^1;
bitADC_DI=P2^2;
bitADC_DO=P2^2;
bitdat=P1^0;//定义164数据线
bitElk=P1^1;//定义164时钟端
bitkey1=P0^0;
bitkey2=P0^1;
bitkey3=P0^2;
bitkey4=P0^3;
bitoutput=P0^7;
bitled1=P0^6;
charj,k,n;
charBabel[]={0x0c0,0xf9,0x0a4,0x0b0,0x99,0x92,0x82,0x0f8,0x80,0x90,0x0f7};//共阳极七段码
charflag;
voiddisplay_init(charComdt);//74164串行移位一个数
voiddelayms(chari);//延时子函数
unsignedcharl_update[4]={0,0,7,0};//定义数组变量
charThready(charch);//读ADC0832数据
voidmain()//主函数
{
unsignedlongintVadc;
flag=70;
while
(1)
{
Vadc=Thready(0);//读ADC通道0
Vadc=Vadc*99/255;//换算为湿度值
l_update[0]=Vadc/10;//湿度值十位
l_update[1]=Vadc%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++){
delayms(100);}
if(key1==0)
{
delayms(20);
flag++;
}
if(key2==0)
{
delayms(20);
flag--;
}
if(Vadc>=flag)
{
output=0;
led1=0;
}
if(Vadc{
output=1;
led1=1;
}
}
}
/*******************************************************
向74164串行输出一个字节
********************************************************/
voiddisplay_init(charComdt)//74164串行移位一个字节的数
{
chari=0;
chard;
d=Babel[Comdt];//不应该把Babel[n]向右移动,用d来替代Babel[n]
while(i<8){
if(d&0x80)dat=1;
elsedat=0;
d<<=1;//数组Babel中的第N个数向右移动一位
Elk=0;//上升沿将数据写入164,拉高时钟端停顿,再拉低等待下一次写入
Elk=1;
Elk=0;
i++;
}
}
voiddelayms(chari)
{
for(j=i;j>0;j--)
for(k=125;k>0;k--);
}
charThready(charch)//读ADC0832数据
{
chari;
charresult;
//写两条一样的,延时用
ADC_CLK=0;
ADC_CLK=0;
ADC_CS=0;
ADC_CS=0;
ADC_DI=1;//Startbit
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;
re