基于单片机的温室监测及提醒系统设计开发

摘 要

随着我国科学技术正在发生着日新月异的变化,同时,我国的人很多,因此对于农作物的需求量也很大。而我这次所选的课题便是基于单片机的温室检测及提醒系统设计开发,研究温室里的温湿度对作物的生长有着不可或缺的价值,并且温湿度同时也是对温室植物的生长影响因素中最大的两个因素。如果白天与晚上的温度差和湿度差变化比较大,这样的话,将不利于温室植物的生长。 因此为了提高温室植物的产量以及质量,就要将温度和湿度控制在温室植物适宜生长的范围之内。
本次设计为对温室的温度及湿度进行监测并调控,为了实现这两个要求,设计了基于STC89C52单片机、温湿度传感器DHT11和LCD1602液晶显示的相结合的方式,制作了智能化温湿度控制器。使用按键键盘来设定温度与湿度,并且通过DHT11温湿度传感器来采集温度以及湿度,采集的数据通过LED1602液晶显示屏显示,进而精确的显示出采集的温度与湿度。当所需温度高于当前记录的温度时,使用继电器外接负载加热薄膜进行升温;当所需温度低于当前记录的温度时,使用继电器外接负载风扇进行降温;当所需湿度高于于当前记录的湿度时,使用继电器外接负载加湿器进行增湿;当所需湿度低于当前记录的湿度时,使用继电器外接负载风扇进行降湿,这样就基本实现了对温室进行智能化的控制。

关键词:单片机STC89C52; 温湿度DHT11; 控制; LCD1602显示

Abstract
As China’s science and technology is undergoing rapid changes, at the same time, China is also a large population, so the demand for crops is also great. And I selected the topic is based on the single-chip greenhouse detection and reminder system design and development, research greenhouse temperature and humidity on crop growth has an indispensable role, and temperature and humidity is also the growth of greenhouse plant factors The two most important factors. If the daytime and night temperature difference and humidity difference is relatively large, so that will be detrimental to the growth of greenhouse plants. Therefore, in order to improve the yield and quality of greenhouse plants, it is necessary to control the temperature and humidity within the greenhouse plant suitable growth range.
This design is to monitor and control the temperature and humidity of the greenhouse. In order to realize these two requirements, a combination of STC89C52 single chip microcomputer and temperature and humidity sensor DHT11 and LCD1602 liquid crystal display is designed to produce intelligent temperature and humidity controller. Use the keypad to set the temperature and humidity, and through the DHT11 temperature and humidity sensor to collect temperature and humidity, the collected data through the LED1602 LCD display, and thus accurately show the collected temperature and humidity. When the desired temperature is lower than the current recorded temperature, use the relay external load fan to cool down; when the required humidity is higher than the current record, when the required temperature is higher than the current recorded temperature, use the relay external load heating film to heat up; , The use of relay external load humidifier for humidification; when the required humidity is lower than the current record of humidity, the use of external external load relay fan, so that the basic realization of the greenhouse for intelligent control.

Keywords:single chip microcomputer; temperature and humidity DHT 11; control; LCD1602 display

目 录

1 绪论 4
1.1 课题的背景 4
1.2 课题的发展状况 4
1.3 课题研究的主要内容 5
2 系统总体方案设计 5
2.1 设计要求 5
2.2 方案选择 5
2.2.1 单片机的选择 5
2.2.2 传感器的选择 6
3. 系统硬件设计 6
3.1 整体方案设计 6
3.1.1 系统概述 6
3.1.2 系统框图 7
3.2 最小系统模块 7
3.2.1 STC89C52简介 7
3.2.2 最小系统电路 9
3.3 DHT11传感器电路 11
3.3.1 DHT11简介 11
3.3.2 接口说明 12
3.3.3 DHT11模块电路图 14
3.4 液晶显示电路 14
3.4.1 1602液晶简介 14
3.4.2 液晶引脚说明 15
3.4.3 指令介绍 16
3.4.4 液晶显示模块电路 19
3.5 蜂鸣器模块 20
3.6 按键输入模块 21
3.7 继电器电路 21
4. 软件设计 22
4.1 程序语言及开发环境 22
4.2 程序流程图设计 23
4.2.1 总体程序流程图设计 23
4.2.2 1602液晶程序设计 24
4.2.3 温湿度DHT11传感器程序设计 25
5. 硬件组装与调试 25
5.1 元器件的选择与测量 25
5.2电路的调试 26
5.2.1 调试方法 26
5.2.2 调试步骤 26
6 结论 27
附录 29
致 谢 30

1 绪论

1.1 课题的背景
在我国经济正在高速的发展情况下,由于我国的人口很多,所以对粮食的需求量很大,因此国家也提高了对农业研究与应用的重视程度,而温室大棚便能够使农作物的产量得到很大的提升。然而,温度与湿度是温室大棚影响作物生长的两个很重要的因素,对其进行实时监测,并进行控制,对于提高作物的产量、质量以及生产效率有着非常重要的作用,不容忽视。
这样一来,为了使我国的农业发展向更加科学化、合理化的方向发展,以及提高并推动我国在农业领域方面的发展,必须加快发展我国的设施农业,使农业的机械化程度更高。综上所述,研究对温室里的温度和湿度进行智能化的控制有很大的意义,因此本课题便对这两个因素进行了深入的研究。此次设计是以单片机为核心的。并且可以通过轻触按键来对温度、湿度的报警范围进行设置。当温湿度传感器采集的温湿度超出了设置的正常范围,便会启动声光报警,声光报警是模拟化的,即蜂鸣器发出声音同时发光二极管也会被点亮, 之后就会进入对应的控制系统中,利用发光二极管来模拟各种升温、降温、增湿和除湿设备,另外,可以利用继电器外接负载进行控制,这样就会使得温湿度永远恒定在一个范围之内。总体来说,该设计具有检测精度比较高、操作简单化、成本低和工作状态稳定的特点。
1.2 课题的发展状况
这个课题已经被研究了很多年,而且也取得了很多建设性的成果,很多成果已经被应用在了温室的农作物生长中。在最近几年里,温室的自动监控技术以及管理技术得到了稳步向前的发展。影响温室里作物的生长有很多的因素,分别有温度、湿度、CO2浓度和光照强度等等,而这些因子都可以被控制,目前各种所需要的传感器也都可以很方便的找到,不仅如此,还可以对农作物所需要的微量元素进行监测并进行控制,而且对其的控制技术也都很成熟啦。 另外,自动化程度比较高的很多国家正在向着完全地自动化、无人化的方向发展,由于我国在这些方面与发达国家还有相当大的差距,这是不得不面对的现实,因此我国必须加大对温室研究方面的科研投入。我国的现状是仅仅研究单个因素或者几个因素进行调控的阶段,然而,在实际中温室里的各种影响因素都是处于互相的影响和制约的状态下。综上所述,我国的现代化农业还有很长的路要走。
1.3 课题研究的主要内容
温室里的温度和湿度在小范围内是完全可以利用单片机来进行控制。因此,本课题围绕基于单片机的温室监测及提醒系统进行了设计开发。本系统能够对温室内的温度、湿度进行采集,利用温湿度传感器DHT11将所测温室内的温度、湿度的变化,通过单片机转换成数字量,并通过LCD1602液晶来进行实时的显示。这个简易版的温湿度监控系统完全适合在农业生产的温室大棚中使用,它可以实现对温室内的温度、湿度的变化进行实时的监测,是一种智能化控制程度不是很高但成本低的设计。
1.4 系统的组成框图
此次设计是基于单片机的温室监测及提醒系统设计开发,从而对温室的温度与湿度进行智能化的控制。在此基础上,本文详细地阐述了相应的硬件和软件思想,建立了系统核心为STC89C52单片机,并与protues软件实现相应的系统仿真。 从实施效果来看,该系统的自动化程度相对而言比较高,价格低廉,操作方便简单,具有很大的价值和良好的应用前景。
为了实现设计中的要求,设计了基于STC89C52单片机、温湿度传感器DHT11和LCD1602液晶显示相互结合来实现相应的设计要求以及功能的实现,制作了智能化的温度与湿度控制器。使用按键键盘来设定温度与湿度,并且通过DHT11温湿度传感器来采集温度以及湿度,采集的数据通过LED1602液晶显示屏显示,进而精确的显示出采集的温度与湿度。当所需温度高于当前记录的温度时,使用继电器外接负载加热薄膜进行升温;当所需温度低于当前记录的温度时,使用继电器外接负载风扇进行降温;当所需湿度高于于当前记录的湿度时,使用继电器外接负载加湿器进行增湿;当所需湿度低于当前记录的湿度时,使用继电器外接负载风扇进行降湿,这样就基本实现了对温室进行智能化的控制。系统的基本组成框图如下所示:

在这里插入图片描述

图1-1:温室监测及提醒系统的基本组成框图

2. 系统硬件设计

2.1 整体方案设计
2.1.1 系统概述
此次设计是以单片机为核心的。按键电路则是为了对系统的输入进行设置,通过轻触按键来完成,它可以设置所测温室的温度、湿度正常的工作范围。另外,通过LED1602液晶显示屏对所测温室中所采集的温度、湿度进行显示;声光报警,即就是简单的蜂鸣器发出声音同时发光二极管被电亮;继电器外接负载对温度、湿度进行控制。对于此次设计中的电源则采用寄生电源USB数据线 5V供电模式。

2.1.2 系统简化版框图

在这里插入图片描述

图2-1 系统框图

2.2 最小系统模块
2.2.1 STC89C52简介
(1)概述
微控制器是数据存储器的芯片,I/O端口,串行通信接口等集成在一起。微控制器是不需要支持装置中的任何外部接口。STC89C52单片机有3个控制信号,分别是EA、PSEN和ALE,称为外部访问(EA)这些信号,程序存储使能(PSEN),并且地址锁存使能(ALE)用于外部存储器接口。控制信号被用于外部存储器接口,EA引脚被拉高(连接到VCC)而其他两个PSEN和ALE被单独留下。

(2)8051单片机的引脚功能
单片机的外部引脚排列如图2-2所示。其中,各引脚的功能为:

在这里插入图片描述

              图2-2 STC89C52引脚图

① 主电源引脚
VCC(40脚),接+5V电源正端;
GND(20脚),接+5V电源地端;
② 外接晶体或外部振荡器引脚
XTAL1(19脚),石英晶体振荡器方向放大器输入端。当采用外部时钟时,此引脚作为驱动端,接外部时钟
XTAL2(18脚),石英晶体振荡器方向放大器输出端。当采用外部时钟时,此引脚悬空
引脚(18、19):用于连接外部晶体,以提供系统时钟。
③ 控制信号线
RESET(9脚):用于复位信号,高电平有效
ALE(30脚):地址锁存允许/编程脉冲输入端
PSEN(29脚),对于外部程序存储器进行读信号,通常接可编程可擦除存储器的OE端口。
EA(31脚):片内程序存储器和外程序存储器选择/编程电源输入端。若CPU对片内程序存储器进行访问,并执行相应的指令,即EA为高电平时;假如不论片内是否有内存,只执行片外程序存储器的指令,那么EA就要为低电平。
④ 多功能I/O口引脚
P0口(引脚32-39):称为端口0(P0.0至P0.7)除了作为I / O端口,低位地址和数据总线的信号被复用该端口(以服务的外部存储器接口的目的)。这是一个双向双向I / O端口(只有一个在8051)和外部上拉电阻需要起作用这个端口作为I / O。
P1口(引脚1-8):称为端口1.不同于其他的端口,这个端口不提供任何其他功能。端口1是一个内部上拉,准双向双向I / O口。
P2口(引脚21-28):称为端口2(P 2.0至P 2.7) -除了作为I / O端口,高阶地址总线信号与这种准双向定向端口复用。
P3口(引脚10-17):称为端口3,该端口也用于一些其他功能,如中断,定时器输入,控制信号对外部存储器接口连接RD和WR,串行通信信号RXD和TXD等,这是一种准双向定向端口与内部上拉。
表2.1 P3口第二用途
端口引脚 第二功能 注 释
P3.0 RXD 串行口数据接收端
P3.1 TXD 串行口数据发送端
P3.2 /INT0 外中断请求0
P3.3 /INT1 外中断请求1
P3.4 T0 定时/计数器0外部计数信号输入
P3.5 T1 定时/计数器1外部计数信号输入
P3.6 /WR 外部RAM写选通信号输出
P3.7 /RD 外部RAM读选通信号输出

2.2.2 最小系统电路
STC89C52单片机元器件的最小系统如图2-3所示,整个最小系统由两个部分组成,分别是晶振电路、复位电路构成最小系统。
单片机的晶振电路比较简单,它是在其18引脚和19引脚分别连接30pF的电容,12MHz的晶振并联在它们的中间,这样便构成了晶振电路。这里用到的电容是为了达到起振的目的,从而能够使晶振更加方便的起振,这里的晶振也可以是24MHz,假如想要使单片机的执行速度更快,可以用大单位的晶振。在画电路图的时候,为了使单片机更好地发挥作用,可以将晶振放置在单片机的附近。
另一方面,单片机的复位电路,通俗来讲就相当于电脑的重新启动功能,假如在使用的过程中,当电脑不能进入正常的工作状态,那么使用者可以按下重启的按钮,这时电脑便会从开始执行内部的程序。然而对于单片机来说,假如单片机在接通电源后进入了运行的状态,被周围环境干扰啦,进而程序出现了bug,这时就可以按下复位按键,从而使得内部的程序能够从开始的部分运行。
复位电路用到的元器件也很少。由于电容有一特性,即对于电压不能发生突变,当单片机在接通电源以后,复位引脚便会产生高电平,同时电路的RC值将用来决定高电平能够持续时间的长短。本设计中用的单片机在复位引脚的高电平,只要能够坚持两个机器周期以上的时间就会复位,因此为了确保能够很好的复位就要选取合适的RC元器件。
对于设计中的电源部分,采用的是外接5V的USB接口直接供电的方式,可采用对手机进行充电的原装器件、PC的USB接口、移动电源等一些装备来对板子进行供电,但是这些设备输出的电流不能过大,过大的话会烧毁器件。
在这里,除了单片机最小系统这些必要的部分以外,还外接了一些其他外部控制电路。这样一来,就可以使P0口能够被用来当作普通的I/O口使用,此次设计的液晶的数据口采用P0口。

在这里插入图片描述

                       图2-3 单片机最小系统

2.3 DHT11传感器电路
2.3.1 DHT11简介
◆相对湿度和温度测量
◆全部校准,数字输出
◆卓越的长期稳定性
◆无需额外部件
◆超长的信号传输距离
◆超低能耗
◆4 引脚安装
◆完全互换
(1)DHT11产品概述
DHT11温湿度传感器的功能总体来说比较强大,它具有校准数字信号输出的功能,相对而言的话是比较复杂的。
这样一来,该传感器具有响应快、抗干扰的能力强、高的性价比等优势。校准系数在OTP内存中存储,而且是以程序的形式。该元器件的封装是 4 针单排的引脚。在连接使用的时候,也是很方便的。

在这里插入图片描述

                    图 2-4 温湿度传感器

2.3.2 接口介绍
(1)接口说明
这个建议的适用性是很强的,即假如与引脚的连线的长度在低于20米的时候,使用5K的上拉电阻;但是假如引脚的连线的长度超过20米的时候,就要根据实际中的情况选用适当的上拉电阻来满足设计的要求。

在这里插入图片描述

图2-5 DHT11典型连接图
(2)引脚说明
引脚1:(VCC),用来连接电源的引脚端口,电压是3-5.5V。
引脚2:(DATA),作用是串行数据,单总线。
引脚3:(NC),在电路中不连接引脚,将其悬空。
引脚4(GND),用来连接地,电源的负极。
(3)串行接口 (单线双向)
DATA使用的方式为单总线数据的模式,完成一次信息处理的过程时间约为4ms,而收集的数据分为两部分,即小数和整数两个部分。
该DHT11温湿度传感器使得它可以很容易的将湿度和温度数据添加到所设计的单片机中。DHT11只使用一条信号线将数据传输到Arduino。电源来自单独的5V和接地线。信号线和5V线之间需4.7K欧姆上拉电阻,以确保默认情况下信号电平保持高电平。
DHT11通过测量两个电极之间的电阻来检测水蒸气。湿度检测部件是具有施加到表面的电极的保湿基板。当水蒸气被衬底吸收时,离子被衬底释放,这增加了电极之间的导电性。两个电极之间的电阻变化与相对湿度成比例。较高的相对湿度会降低电极之间的电阻,而较低的相对湿度会增加电极之间的电阻。
单片机将启动的信号发出以后,这个时候,DHT11从功耗低的工作模式转入到了高速的模式中,在主机开始信号结束以后,DHT11便会发送出响应信号,信号从而被收集啦,而我们可以选择读取部分需要的数据.假如它没有接收到单片机发送的开始信号,DHT11是不会主动进行对所测温室的温湿度数据的收集.在收集数据的过程结束以后,便会转换到低速的模式中。通讯过程如图2-6所示。

假如总线在空闲状态的时候,是处于高电平,那么单片机会把总线进行拉低,从而等DHT11进行响应,确保初始信号能被DHT11监测到。通讯初始化要求如图2-7所示。

在这里插入图片描述

图2-7 通讯初始化
假如总线处于低电平的状态之下,即表明DHT11发送响应的信号。

数字0信号表示方法如图2-8所示。

图2-8 数字0信号的表示方法

数字1信号表示方法如图2-9所示。

在这里插入图片描述

图2-9 数字1信号的表示方法
2.3.3 DHT11模块电路图
DHT11的模块电路图如下图所示:

在这里插入图片描述

图2-10 DHT11模块连接图
2.4 液晶显示电路
2.4.1 1602液晶简介
字符型液晶显示器:字符型液晶显示模块是一种点阵液晶显示器,其主要的用途是用来对字母进行显示,并且也包括数字、符号等。常用的模块型号有16×1,16×2和20×2。通过编程设置还能够显示简易的汉字。
1602LCD的基本参数及引脚功能:

LCD1602元器件有带背光功能和没有背光功能这两个不同的类型,而且大多是HD44780的控制器,具有背光功能的的LCD1602更加厚一点,但是是否具有背光功能在实际的应用中并没有明显的差异,两者尺寸差别如下图3-6所示:
在这里插入图片描述

图2-11 LCD1602尺寸图
1602LCD主要技术参数:
显示容量:16×2个字符
芯片工作电压:4.5—5.5V
工作电流:2.0mA(5.0V)
模块最佳工作电压:5.0V
字符尺寸:2.95×4.35(W×H)mm
引脚功能介绍,LCD1602液晶使用标准的14脚(没有背光功能)或16脚(背光功能)的接口,每个引脚接口介绍见下表:
编号 符号 引脚说明 编号 符号 引脚说明
1 VSS 电源地 9 D2 数据
2 VDD 电源正极 10 D3 数据
3 VL 液晶显示偏压 11 D4 数据
4 RS 数据/命令选择 12 D5 数据
5 R/W 读/写选择 13 D6 数据
6 E 使能信号 14 D7 数据
7 D0 数据 15 BLA 背光源正极
8 D1 数据 16 BLK 背光源负极
表2-2:引脚接口说明表

第1脚:VSS为地电源。
第2脚:VDD接5V正电源。
第3脚:VL是用来调整LCD的对比度,要想使对比度最弱,就要接到VCC;但是假如对比度很高的话,那么一定接了地;同时若有非正常的显示,极大的可能是对比度过高引起的,为了解决这个问题,在实际的电路使用中,可以调整对比度用10K的电位器来满足要求。
第4脚:RS是用来选择寄存器的引脚端口,假如要选择数据寄存器,就要是在高电平的情况下;但假如要选择指令寄存器,就要是在低电平的情况下。
第5脚:R/W是用来对读/写进行选择,假如要进行读命令,就要处于高电平;但假如要进行写命令,就要处于低电平。假如要进行写入的指令或者表明地址操作的命令,那么就要使RS和R/W一起为低电平;假如要产生读忙信号,那么就要使RS为低电平而R/W为高电平;假如要进行写入数据的操作,那么就要使RS为高电平而R/W为低电平
第6脚:E端为使能端口,假如想要使它执行命令,那么使能信号的E端就必须要从高电平转变为低电平。
第7~14脚:8位的双向数据线端口是8个引脚(D0-D7)。
第15脚:背光源正极。
第16脚:背光源负极。

LCD1602的指令说明及时序

LCD1602液晶元器件内的控制器总共有11条控制命令,如表2-3所示:

序号
指令 RS R/W D7 D6 D5 D4 D3 D2 D1 D0
1 清显示 0 0 0 0 0 0 0 0 0 1
2 光标返回 0 0 0 0 0 0 0 0 1 *
3 置输入模式 0 0 0 0 0 0 0 1 I/D S
4 显示开/关控制 0 0 0 0 0 0 1 D C B
5 光标或字符移位 0 0 0 0 0 1 S/C R/L * *
6 置功能 0 0 0 0 1 DL N F * *
7 置字符发生存贮器地址 0 0 0 1 字符发生存贮器地址
8 置数据存贮器地址 0 0 1 显示数据存贮器地址
9 读忙标志或地址 0 1 BF 计数器地址
10 写数到CGRAM或DDRAM) 1 0 要写的数据内容
11 从CGRAM或DDRAM读数 1 1 读出的数据内容

                表2-3:控制命令表

LCD1602液晶显示器这个元器件可以通过指令的编程来进行一些操作
指令1:清屏。光标会复位到地址00H,这个时候指令码为01H。
指令2:对光标进行复位操作。这时光标便会复位到地址00H处。
指令3:输入方式设置。其中,I/D表示光标的移动方向,假如要向右面移动的话,则应该为高电平;但假如要向左方向移动的话,就应该是为低电平;另外假如想要判断显示屏上所显示的文字是否进行了向左方向移动或者向右方向移动的话,即要用S表示,而且在有效的时候为高电平,无效的时候为低电平。
指令4:显示开关控制。其中, D命令用于控制整体显示的开与关操作,如果要打开显示,就要为高电平;如果要关闭显示,就要为低电平 C用于控制光标的开与关指令,假如有光标的话,那么就应该是高电平;但是假如没有光标的话,那么就应该为低电平 B是用于对光标进行控制其是否要进行闪烁,假如要进行闪烁的话,那么就要是处于高电平状态,假如不让其闪烁,那么就要是处于低电平状态。
指令5:对光标或字符进行移位的控制操作 其中,S/C:假如想要移动显示屏上的文字,那么就要是在高电平的情况下,但是如果想要使光标进行移动,就要是在低电平。
指令6:功能设置的命令 其中,DL表示假如想要是四位总线,就要是在高电平的时候,但是假如想要是八位总线,即那么就要在低电平的情况之下 N表示如果要进行单行显示,就要在低电平的状态之下,但如果要进行双行显示操作,就要在高电平的情况下
指令7:对字符发生器RAM的地址进行设置。
指令8:对DDRAM的地址进行设置。
指令9:其是用来表示读忙信号与光标地址的操作指令 其中,忙标志位是BF,假如想要表示忙,那么就要在高电平的状态之下,同时在这个时候模块也不能完成接收命令或者数据的操作啦,但假如想要表示不忙,那么就要在低电平的时候。
指令10:写数据指令。
指令11:读数据指令。

芯片时序表如下:

读命令 输入 即为RS=L, R/W=H, E=H 输出 D0—D7=状态字
写命令 输入 即为RS=L,R/W=L,D0—D7=指令码,E=高脉冲 输出 无
读数据 输入 即为RS=H,R/W=H,E=H 输出 D0—D7=数据
写数据 输入 即为RS=H,R/W=L,D0—D7=数据,E=高脉冲 输出 无

                    表2-4:基本操作时序表

读写操作时序的图如2-12和2-13所示:
在这里插入图片描述

图2-12读操作
在这里插入图片描述

图2-13写操作时序

2.4.2 LCD1602电路图

在这里插入图片描述

                     图2-14 LCD1602电路图

2.5 蜂鸣器报警电路
蜂鸣器是一种在电子电路的设计中经常用来报警的元器件,采用直流电压的方式来进行启动并工作,在日常生活中,它是不可或缺的。定时器、报警装置、电子产品中等等,都要用它来进行报警。
有两个类型的蜂鸣器在实际中得到了很广泛的应用,分别是压电式蜂鸣器和电磁式蜂鸣器。对于第一种蜂鸣器来说,它是由蜂鸣片、外壳、多谐振荡器等来构成。电磁式蜂鸣器在此次设计中便被得到了应用。
另一方面,蜂鸣器还有其他方面的不同,即有源的蜂鸣器和无源的蜂鸣器这两种。在这里的源指的是震荡源。因此,假如在内部如果带有震荡源的话,就是有源的蜂鸣器。因此,如果将电源接通的话,那么就会发出声音;然而,假如内部如果不带有震荡源的话,就是为无源的蜂鸣器。所以这样一来的话,DC信号是没有办法让其发出声音的,为了解决这一问题,那么就一定要用2K-5K的方波去驱动进而使其发出声音。为了避免这一问题,所以有源蜂鸣器便成为了本次设计的首选。这样就可以一接通电源就使其发声,方便了许多。
蜂鸣器处于工作状态时,其工作电流比较大,为了能够使单片机的IO端口输出的电流变大,决定采用三极管PNP的来控制发声,由于震荡源在蜂鸣器的内部,所以单片机就没有必要连续性的发出高低电平信号来驱动它,仅仅只需要输出高(或低)电平信号就行,这样大大简化了单片机程序设计。在此次设计中采用的是PNP三极管,并且I/O口上的单片机电源电平过高,如此一来,尽管电源被接通,然而电路中的蜂鸣器是不会有任何声音发出的。

2.6 按键输入模块

键盘可以用来进行人与单片机的交流控制通信。从系统监控软件设计的角度来看,如果仅仅是实现对键盘进行扫描,只读取了当前阶段的键盘状态,是不能满足要求的。现阶段,在单片机的设计应用中,被普遍应用的两种键盘电路分别为独立键盘和矩阵键盘。就拿独立键盘来说,硬件电路以及程序的编写都比较简单,所以它经常应用于简单电路中;另一方面,若是硬件电路较复杂以及程序的编写也很繁琐,那么一定是矩阵键盘啦,但是它能够有效地减少对端口资源的利用。综上所述,多按键电路的时候,就要首选矩阵键盘。
本设计中采用的按键数量相对而言比较少,只有3个按键,分别是“设置”、“减”、“加”,故采用了独立键盘的方式。按键的连接图2-16所示:
在这里插入图片描述

                          图2-16 按键电路

2.7 继电器电路
继电器是一种在生活中得到广泛使用的,并且是采用电来控制的元器件。它是当输入信号(即激励信号)改变到我们对其要求的范围时,即被控制量会发生提前设定的阶跃变化的一种元器件。同时,继电器也是有输入回路与输出回路(即外接负载)之间的相互作用关系。它在自动控制电路中被大规模的应用,事实上,继电器的工作机理是用一个较小的电流进而来控制大电流操作的一个“自动型开关”。因此,在实际的电路设计中有比较多的作用。
从继电器工作的原理或结构特征的角度来看,继电器的种类有很多,然而本次设计选中的继电器是电磁继电器。一般来说,电磁继电器的组成部分较多,通常很多是由铁芯、衔铁、接触簧片、线圈等来构成。因为存在电磁作用力的缘故,所以铁芯便会被衔铁所吸引,这样一来的话,衔铁的动触点与静触点就会吸合。但是假如想要使电磁的吸力没有,衔铁也能够返回原来的位置,以及动触点与原来的静触点不再接触,就要将线圈进行断电才能满足要求。在反反复复的吸合、断开的状态下,就能够很好地实现了电路中接通与断开。使用的继电器,基本上来说可以分为两种电路,为别是低压控制电路与高压工作电路。
对于在本次的设计中继电器模块的控制电路如下图(图2-17)所示。继电器使用5V的电压来使其触发。由于继电器是从接通到断开的刹那间,进而工作线圈会产生电感,所以这样的话,会形成瞬时的电压尖峰在继电器线圈的低电压端,通常可以达到数倍的额定工作电压。为了解决这一问题,那么就需要在继电器的两端接入一个二极管,将正电源接到了二极管的负引脚,这样一来,便抑制了电压尖峰,因此也能够保护了电路中的其他电子元器件。
在这里插入图片描述

                          图2-17 继电器电路

3. 软件设计

3.1 程序语言及开发环境
C语言是计算机程序设计语言的一种,它同时具有高级语言和汇编语言的特点。它可以将工作系统进行控制,对设计系统进行应用程序的编写与开发,另外,编写的应用程序也可以不依靠计算机的硬件。它目前被大量的应用着,例如被应用在软件的开发方面、各类科研中,同时,在数据处理方面,能力是很强的。 它是非常适合用于编写系统软件、2D、3D图形以及动画,在单片机的课程设计以及嵌入式的系统开发中都得到了很好的利用。
假如你想要使用C语言来进行程序的编写,那么Keil完全能够满足要求,而且也很方便。另外,Keil提供的用户界面能够使屏幕空间的利用率更高。

3.2 程序流程图设计
3.2.1 总体程序流程图设计
对于此次设计功能的实现,设计了如图3-1所示的软件流程图,在系统从初始状态下开始工作的时候,为了保证顺利的完成设计,要对LCD1602液晶进行功能初始化以及显示内容的初始化设置。初始化之后,便要判断具有设置功能的轻触按键是否被按下,假如被按下的话,就会在LCD1602液晶上进入相应的蜂鸣器报警范围的设计界面。接下来单片机就会判断刚刚从DHT11传感器读取的温湿度是否超过了设置的报警范围,假如读取的数据不在范围之内的话,蜂鸣器会发出声音,发光二极管也会亮起,同时通过继电器外接的风扇、雾化器、加热薄膜负载也会进入工作状态,经过这一过程之后,便会使所测温室的温湿度在一个范围内进行波动。这之后便会进行短暂的延时,然后温湿度传感器再次进入对所测温室的温湿度数据的读取状态中,这样一来,系统便会反反复复地执行上述的命令过程。

在这里插入图片描述

图3-1 程序流程图

3.2.2 LCD1602液晶程序设计
在这里插入图片描述

在这里插入图片描述

                        图3-2液晶显示流程图

3.2.3 温湿度DHT11传感器程序设计

在这里插入图片描述

                    图3-3温湿度传感器程序流程图

4. 硬件组装及调试

4.1 元器件的选择
对于此次设计的完成,用到的元器件有:STC89C52单片机、晶振、LCD1602液晶、电阻、PNP三极管、电容、轻触按键、有源蜂鸣器、电源开关、电位器、电源座、发光二极管、稳压管、温湿度传感器、加热薄膜、风扇、雾化器、继电器等。由于这些元器件有些是我们所熟悉的,有些都没有听过,所以是非常有必要去查找相关的资料对元器件的引脚以及功能特性进行深入的了解,这样之后,才能够对PCB板进行焊接。设计中所需要的元器件在淘宝店铺是很容易购买到的。然而,在焊接的时候,一定要注意元器件引脚的正负、大小等细节。一般而言的话,元器件的正负遵循这样的规律,即长正短负。若遇到特殊的元器件,可能就要查阅相关资料啦。
4.2调试电路
调试主要是指对设计的电路进行调整、改进和测试。测试是在原理图和PCB图的基础之上对所购买的元器件在制作的PCB板上进行焊接,焊接完备之后便接通电源,进而开始对电路的工作状态以及各种参数进行测量;然而,在进行测试改进的时候,一定要确保在调整电路参数之后的基础之上,进而满足对于本任务书的要求。调试之前一定要有计划性,例如要列出所需要测的参数列表,对参数进行测试的先后顺序,以及调试的方法措施和在这过程中所要用到的实验仪器等,因为只有把各种工作准备就绪,这样的话,才能使调试工作很好的被完成。

5. 结论

在这几个月的学习中,本次毕业设计的课题是基于单片机的温室监测及提醒系统设计开发,设计中的任务要求大体上都已实现。尽管这个设计题目已经被很多人研究分析过,但是在我完成这个设计的过程中,对整个设计进行开发分析,使我学习到了很多知识。
对于农作物的生长而言,因为任何作物能够收获丰硕的果实都需要在温度、湿度都适宜的范围内,同时温度、湿度也是影响作物生长关键的两个因素,所以研究温度、湿度是有很大的意义的。此次设计比较完美地实现了对所测温室的温湿度的监测与控制,大体上完成了智能化的目标。
此次设计是将硬件设计和软件设计进行了完美的结合,硬件设计包括对原理图以及PCB图的绘制,而软件设计则是指对控制程序进行编写。经历了这个过程,使我对AD制图软件、keil软件能够更加熟练地使用。
在这次毕业设计完成的整个过程中,我学习到了很多很多,认识到了专业知识的对完成设计的重要性,也理解了从理论联系实际的深刻意义,并且在这个过程中更好地检验了大学四年的所学到的知识。尽管在这次设计中暴露了我的很多问题,比如对所学到的知识进行的恰如其分的运用还不是很得心应手,但是我一定会在今后的工作和学习中不断地努力,使自身的能力能够得到极大的提升。这样一来的话,必然会使自己得到更大的进步。

参考文献:

[1] 郭天祥.51单片机C语言教程[M]. 北京:电子工业出版社,2009.
[2] 刘建清.轻松玩转51单片机C语言[M]. 北京:航空航天大学出版社,2011.
[3] 张绪光,刘在娥.电路与模拟电子技术[M]. 北京:北京大学出版社,2010.
[4] 徐晓光.数字逻辑与数字电路[M]. 北京:机械工业出版社,2008.
[5] 张俊谟.单片机中级教程[M]. 北京:北京航天航空大学出版社,2006.
[6] 谢维成.单片机原理与应用及C51程序设计[M]. 北京:清华大学出版社,2009.
[7] 赵健,吴顺伟.基于单片机的温湿度测量系统的研究与设计[M].电子技术
[8] 张艳丽,杨仁弟.数字温湿度传感器及其应用[J].工矿自动化,2007.6第3期
[9] 杨旭方.单片机控制与应用实训教程[M]. 北京:电子工业出版社,2010.
[10] 江力.单片机原理与应用技术 [M]. 北京:清华大学出版社,2006.
[11] 张涛.单片机技术[M]. 北京:电子工业出版社,2012.
[12] 刘同法,肖志刚,彭继卫.C51单片机C程序模板与应用工程实践[M]. 北京:北京航天航空大学出版社,2010.

附录
附录1电路图

在这里插入图片描述

附录2 PCB图

致 谢

本论文是在老师的指导下完成的。她一丝不苟的作风,严谨求实的工作态度,精益求精的工作作风,将我深深地感染了。从课题的选择到论文以及设计的最终完成,老师都始终给予了我细心的指导。在此向老师表示衷心的谢意,感谢老师对我的关心和指导,在今后的日子里,我将以她为榜样不断地学习。

老师是一个很认真的老师,她对待学生很和蔼,但在对待教学方面却很严谨。平日里,她对我们总是耐心地指导,严格地要求,以其严谨的治学态度、高度的敬业精神影响着我们。老师对同学们的毕业设计更是尽心尽力,同学们遇到的问题她都能认真解答,竭尽所能地让我们更好地完成毕业设计,在指导我们毕业设计的过程中,我们不仅学到了知识,还深刻地体会到了姬老师对待工作的认真、耐心与责任心。在大学结束之际,让我对老师致以最崇高的敬意,老师的教导,我将铭记于心。另外,感谢在这次设计的给予我帮助的同学,他们对我此次的设计做出了较大的贡献,在此也感谢他们。同时,此次毕业设计让我学到了很多专业性知识,使大学生活圆满的结束啦。
感谢机械工程与自动化学院对我的培养,“崇真尚美”的校训将会成为我的座右铭。在四年的大学学习期间,每位老师对我的学习、生活和工作都给予了很多的关心与帮助,使我的水平得到了很大的提高,取得了长足的进步。

相关推荐

  1. 基于单片机输液监测系统设计与实现

    2024-03-16 18:14:01       43 阅读
  2. 基于51单片机温湿度检测调节系统

    2024-03-16 18:14:01       32 阅读
  3. 基于单片机大棚温湿度控制系统设计

    2024-03-16 18:14:01       40 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-16 18:14:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-16 18:14:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-16 18:14:01       87 阅读
  4. Python语言-面向对象

    2024-03-16 18:14:01       96 阅读

热门阅读

  1. C/C++蓝桥杯之整数拼接(较难)

    2024-03-16 18:14:01       42 阅读
  2. 机器学习模型—CatBoost

    2024-03-16 18:14:01       43 阅读
  3. vue3 循环设置 ref 并获取

    2024-03-16 18:14:01       39 阅读
  4. docker安装rabbitmq

    2024-03-16 18:14:01       38 阅读
  5. Linux守护进程

    2024-03-16 18:14:01       40 阅读
  6. 每日一题 第五期 洛谷 图的遍历

    2024-03-16 18:14:01       43 阅读
  7. 最长连续序列 - LeetCode 热题 3

    2024-03-16 18:14:01       40 阅读