找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7410|回复: 0
打印 上一主题 下一主题
收起左侧

单片机+DHT11+FC-28土壤湿度传感器设计盆栽助长器 电路 程序等

[复制链接]
跳转到指定楼层
楼主
ID:794964 发表于 2020-7-1 16:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本套系统采用了ATMEL公司的AT89S52系列单片机,结合DHT11数字温湿度传感器和FC-28土壤湿度传感器,形成了一套多功能低成本的温湿度监测控制系统。主要包括了硬件电路设计和系统软件设计。硬件设计包括了单片机核心控制单元,温湿度传感器,土壤湿度传感器,LCD液晶显示屏,键盘电路,蜂鸣器报警,继电器驱动等各部分。由两个传感器对当前植物生长的实时环境参数进行采集,随后通过放大器将信号放大,再通过模数转换器,将原来测得的模拟量转化为数字信号电压。本套系统的核心控制单元为AT89S52,它控制着模数转换器进行模拟量和数字量的转化,同时,它能将测得的环境参数传输到上位机和LCD上,并且通过驱动继电器进行增温降温增湿降湿的调节方式,自动使植物保持在一个适合生长的环境。
本套系统的软件设计通过C语言对整套系统的正常运行起控制功能。因为C语言自身的语言优势,是整套系统的软件控制方面结构紧凑,编程灵活,可靠便捷,功能强大。能很好的满足当今社会的生产及科研要求。整套系统结合了温度采集与控制,湿度的采集和控制,其采集过程将和单片机与上位机进行数据通信。整套系统已AT89S52为核心控制单元,通过全面感知,可靠传输,智能处理三方面。将测得的环境参数传输到上位机和LCD上,并且通过驱动继电器进行增温降温增湿降湿的调节方式,自动使植物保持在一个适合生长的环境。整个编程过程中涉及模数转换,显示部分,设定温湿度阀值,更改温湿度阀值,复位电路,时钟电路,键盘电路,报警电路,串口通信等各部分。

在温湿度测量采集方面,国外较于我国而言,一直处于领先的地位,且存在着较大的差距。国外发达国家起步早,发展快。早在上世纪的70年代,就已经率先开始了对于精确测量温湿度的研究及发展,后来随主技术的日益成熟,部分发到国家已经在全面实现自动化控制的基础上向无人化的方向发展。
相对于发达国家,我们国家在这一领域的起步较晚,在上世纪一直处于摸索状态,科研人员吸取学习国外该行业的先进经验技术,实现了室内温湿度检测控制,但该项技术致使限于对温度的单项控制,与国外已经实现的自动化无人化还有很大的差距。但随着科研人员的努力,这种差距在逐渐缩小,我国的温湿度测量采集技术也在飞速发展。
1.3课题主要内容
本文主要对本套基于单片机的盆栽助长器系统进行全面论述,共六章,分别为绪论,系统总体设计方案,系统硬件设计,系统软件设计,系统调试,总结与展望。
(1)绪论:概述课题背景及研发现状。
(2) 系统总体设计方案:本套系统所能实现的基本功能和在完成过程中对于各方案的选择。
(3)硬件设计:包括硬件整体框图设计,各模块概述以及用到的基本电路介绍。
(4)软件设计:软件流程图介绍以及软件模块化设计方法。
(5)系统调试:所用辅助软件介绍和实物照片。
(6)总结与展望:对本套系统的全面总结。


2.系统总体设计方案2.1系统基本功能
中国是著名的园林国家,在江南地方有许多闻名中外的园林。而中国的文人雅士也喜欢寄托山水之间,留下了许多游园赏景的名句。后来对于园林的喜爱渐渐变为了小规模的盆栽种植。随着社会发展,人们的精神文化需求越来越高,有人寄情与山水之间,有人则热衷于亲近自然。现在许多人都喜欢种植盆栽,但却因为各种原因无法时刻照顾花草。本套系统基于AT89S52,采用DHT11和FC-28两个传感器,可对植物生长的环境参数进行实时的检测及控制,能将测得的环境参数传输到上位机和LCD上,并且通过驱动继电器进行增温降温增湿降湿的调节方式,自动使植物保持在一个适合生长的环境。真正实现自动化,无人化,对于盆栽种植有很多便利的帮助,通过科学智能的控制,让植物一直处于适宜生长的环境中,可谓是事半功倍。
其具体功能如下:
(1)检测温湿度及土壤湿度
(2)自由调节温湿度阀值
(3)实时温湿度高于或低于阀值报警
(4)自动增降温湿度
2.2方案选择
为了保证系统能持续,可靠,高效的运行,本着减少成本,方便快捷的宗旨和高效化,无人化,便捷化,智能化的设计要求下。对于系统的各模块进行反复认真的比较选择,以下列举几种器件选择的缘由:
1. 单片机选择
上个世纪ATMEL公司发布了其高性价比产品AT89S52,该单片机采用高密度非易失性存储器技术制造,具有高性能低功耗,兼容性强的优点,并且能完美兼容工业上单片机的产品指令和引脚。该单片机拥有复杂指令集,端口的结构类型特殊,并且配置有外部并行总线,使该款单片机的扩展性能非常之强大,适用于各种复杂艰苦的工作环境,能满足日常科研生产中对单片机的大部分要求。在单芯片上,其拥有灵巧的8 位CPU,使得AT89S52能为众多的嵌入式控制系统提供高便捷、高效率的解决方案。故我们选择AT89S52芯片作为本套系统的MCU。
2. 温湿度传感器选择
温湿度与人类的日常科研与生活密切相关,湿度测量技术来由已久。随着现代科学技术的飞速发展,温湿度测量控制技术也有很大的发展。温度测量方法从原理上划分有20多种,测量方式的多样化,也是市面上有了形形色色的各类型传感器。因为本套系统是对盆栽进行温湿度检测控制,所以选择量程贴近植物生长所需环境的DHT11。常见的温湿度传感器一般如HS1101,DS18B20,DHT11等。
(1)HS1101:基于独特工艺设计的电容元件,这些相对湿度传感器可以大批量生产。在办公自动化,车厢,家电,工业生产控制系统中有很广泛的应用。其拥有全交互性,在正常室温环境下不需要校正很长的时间。
(2)DS18B20:最通用的一款温湿度传感器,体积小,成本低,精度高,相应速度快,但其单总线的测温方式并不适合于本套系统。
(3)DHT11:DHT11是一款具备校准数字信号输出的温湿度传感器,具有性能卓越、快速响应、抗干扰能力强、性价比高等优点,这些优点使它成为该类传感器中,在实际应用场合的最好选择。
因为本套系统是对于盆栽的环境检测控制,所以选择量程与植物生长所需环境相似的DHT11.
3.土壤湿度传感器选择
由于涉及到土壤中工作,环境不可预测性较多,测量控制难度较大,因此土壤湿度传感器的选择尤为重要。FC-28土壤湿度传感器传感元件及信号处理并进行集成,输入预先标定的数字信号,使产品具有了很高的可靠性和长期稳定性。该款传感器工艺复杂,设计精妙,采用了高效的测温元件,并且将模数转换器和串行接口在同一块芯片上无缝连接。从而使该产品具有响应速度快,刚干扰能力强性价比高的优点。微小的体积和低功耗,使之成为了各类应用的首选。传感器与对应引线键采用了更人性化的连接方式,更有利于更换。综上,选择FC-28土壤湿度传感器。

4. 液晶显示屏选择
通过传感器测得的环境参数,经由单片机处理后,会显示在液晶显示屏上,因此液晶显示屏的选择尤为重要。LCD1602为字符型液晶,显示数字和字母较为方便,以其性能卓越、快速响应、抗干扰能力强、性价比高诸多优点,在实际科研工作中中得到了越来越普遍的应用。由于本套系统只显示实时温度和湿度,而LCD1602在字母数字显示方面表现最为良好。所以选择LCD1602.
5.模/数,数/模转换器选择
FC-28土壤湿度传感器所直接测得的为模拟量,所以我们需要一款模数转换器将模拟量转换为数字量传输到单片机中来实现具体功能。常见的模/数,数/模转换器有PCF8591,AD0832,AD0809,LTC2460,TLC7135等。一般常用的为AD0832和PCF8591两种,比较这两款ADC,ADC0832为并行双缓冲的8位ADC,而PCF8591功能上比它更强大,为多通道的8位ADC,更为重要的是它采用了I2C通讯方式,使用起来更加快捷,功耗更低,可以有效节约IO口资源。综上所述,我们选择PCF8591作为本套系统的模数转换器。
6.报警电路选择
报警电路采用声光报警,LED等发光,蜂鸣器发声报警,蜂鸣器主要分为压电式和压磁式两种,在接入上分为有源和无源两种,无源蜂鸣器的声音频率是可控的,可发出七个声调,而且价格低廉,有源蜂鸣器内部自带一个振荡源,只要有电源输入,就可发出声音,而且在具体应用中控制方便。
本套系统只需在环境超出阀值时采用简单发声报警,不需要复杂的声音变换,所以选择蜂鸣器进行报警工作。

3.系统硬件设计3.1硬件框图设计

图3.1-1  硬件系统框图
如图3.1-1所示,单片机AT89S52为核心控制单元,DHT11温湿度传感器和FC-28土壤湿度传感器将测得的实时数据传入单片机里,由AT89S52进行数据处理,然后将测量值传到上位机与LCD1602中,此时,测量值在LCD上显示出来。当测量值高于货低于预先设定的环境参数阀值(即利于植物生长的环境)时,LED灯亮,蜂鸣器发出警报,同时系统驱动继电器进行增湿或者降湿来改善环境。当温度高于阀值,继电器驱动风扇进行降温;当温度低于阀值,继电器驱动发热板进行加温;当湿度高于阀值,继电器驱动除湿器进行降湿;当湿度低于阀值,继电器驱动加湿器进行增湿。如果当前环境参数没有超出设定阀值,则系统继续测量,重复工作。
3.2 AT89S52单片机
图3.2-1    AT89S52原理图

上个世纪ATMEL公司发布了其高性价比产品AT89S52,该单片机采用高密度非易失性存储器技术制造,具有高性能低功耗,兼容性强的优点,并且能完美兼容工业上单片机的产品指令和引脚。该单片机拥有复杂指令集,端口的结构类型特殊,并且配置有外部并行总线,使该款单片机的扩展性能非常之强大,适用于各种复杂艰苦的工作环境,能满足日常科研生产中对单片机的大部分要求。在单芯片上,其拥有灵巧的8 位CPU,使得AT89S52能为众多的嵌入式控制系统提供高便捷、高效率的解决方案。
AT89S52采用40管脚双列直插dip封装,其引脚说明如下:
VCC:40引脚,系统正常运行时供电。
GND:20引脚,系统正常运行时接地。
RST:复位输入
3.3 LCD1602液晶显示屏
图3.3-1     LCD1602实物图

通过传感器测得的环境参数,经由单片机处理后,会显示在液晶显示屏上。LCD1602为字符型液晶,显示数字和字母较为方便,LCD1602为字符型液晶,显示数字和字母较为方便,以其性能卓越、快速响应、抗干扰能力强、性价比高诸多优点,在实际科研工作中中得到了越来越普遍的应用。



图3.3-2       LCD1602原理图

如图3.3-2所示,LCD1602分为带背光和不带背光两种,其中不带背光的为14脚接口,带背光的为16脚接口。


引脚号
引脚名
电平
作用
1
GND

接地
2
VCC

电源(+5V)
3
VO

对比调整电压
4
RS
0/1
0=输入指令  
1=写入数据
5
RW
0/1
0=向LCD写入指令或数据
1=从LCD读取信息
6
EN
1,1-0
使能信号,1时读取信息,
1-0时(下降沿)执行指令
7
DB0
0/1
数据总线line0(最低位)
8
DB1
0/1
数据总线line1
9
DB2
0/1
数据总线line2
10
DB3
0/1
数据总线line3
11
DB4
0/1
数据总线line4
12
DB5
0/1
数据总线line5
13
DB6
0/1
数据总线line6
14
DB7
0/1
数据总线line7(最高位)
15
VCC
0/1
LCD背光电源正极
16
GND
0/1
LCD背光电源负极

图3.3-3    LCD1602引脚图

3.4 温湿度传感器DHT11

图3.4-1    DHT11实物图

DHT11是一款备受使用者好评的温湿度传感器,具有性能卓越、快速响应、抗干扰能力强、性价比高等优点,这些优点使它成为该类传感器中,在实际应用场合的最好选择。而在本套系统中,因为其量程与植物生长所需的环境参数相差不多,所以我们采用了该款实用性强,价格低廉的温湿度传感器。

图3.4-2   DHT11原理图


DHT11引脚结构简单,采用单总线接线方式,只有一个数据口,在VCC电源接口加一个4.7K的电阻,来保护模块正常使用。


PIN
名称
注释
1
VCC
供电3-5.5V
2
DATA
串行数据,单总线
3
N/A
空脚
4
GND
接地,电源负极

图3.4-3    DHT11引脚图

3.5 FC-28土壤湿度传感器

图3.5-1     FC-28土壤湿度传感器实物图

FC-28土壤湿度传感器传感元件及信号处理并进行集成,输入预先标定的数字信号,使产品具有了很高的可靠性和长期稳定性。在传感器加一个上拉电阻,再利用ADC将其测得的模拟量转换为数字量,从而将所测数据传入单片机中进行下一步的处理,该款传感器工艺复杂,设计精妙,采用了高效的测温元件,并且将模数转换器和串行接口在同一块芯片上无缝连接。从而使该产品具有响应速度快,刚干扰能力强性价比高的优点。微小的体积和低功耗,使之成为了各类应用的首选。传感器与对应引线采用了更人性化的连接方式,更有利于更换。

图3.5-2    FC-28原理图

土壤湿度传感器在电路设计上由湿度检测电路和报警电路两部分组成。其大致的工作原理如下:
预先设定X、Y两个湿度上下限值,利用两个探头1、2和比较器a、b,探头深入土壤内,当探头1、2间的土壤电阻值处于阀值范围内,上下限值处的滑动变阻器输出相应的高低电平,对应的绿灯红灯均不放光。当土壤电阻值超过上限值,即土壤湿度过高,1、2探头间电阻变小,分压减小,比较器b输出低电平,绿灯发光;当土壤电阻值低于下限值,及土壤湿度过低,1、2探头间电阻变大,分压增大,比较器a输出高电平,红灯发光。通过以上作用,土壤湿度随时监测,是植物处于适宜生长的状态。
3.6 PCF8591模数转换器

图3.6-1  PCF8591实物图
PCF8591为一款常用的逐次逼近型模数转换器,多通道的8位ADC,更为重要的是它采用了I2C通讯方式,使用起来更加快捷,功耗更低,可以有效节约IO口资源。可将FC-28土壤湿度传感器所直接测得的模拟量转换为数字量传输到单片机上来实现具体功能。
图3.6-2   PCF8591原理图


图3.6-3   PCF8591引脚图

PCF8591采用dip16封装,其引脚各功能如下:

引脚
引脚序号
引脚功能
AIN0-AIN3
1-3
模拟量输入方式
A0-A2
5-7
模拟通道选择
VSS
8
负电源电压
SDA
9
数据信号
SCL
10
时钟信号
OSC
11
振荡器
EXT
12
振荡器输入的外部内部转换
AGND
13
模拟接地端
VREF
14
输入的参考电压
AOUT
15
模拟量输出
VDD
16
正的电源电压

4.系统软件设计4.1 软件流程图
如图2.2-1所示,该系统采用模块化设计方法,主要包括以下几个模块:
  •                                                                                            主程序的初始化:先进行清除看门狗的输入,随后对定时器和系统中断处理操作初始化
  •                                                                                            键盘扫描子程序:实现人对系统的控制,可以手动设定温室度的阀值以及LCD上环境参数的显示。
  • 温度和湿度测量子程序:在系统中,定时器T0的温湿度环境参数测量程序中断服务程序。
(4)  温度和湿度控制子程序:单片机的温度和湿度的设定值和实际值的大小,从而产生起动和各种电气设备的信号停止。
程序初期准备各参数及传感器子程序的初始化,同时将测得到的数据通过串口上传到上位机上,将各项数据与预先设定的阀值进行比较,如果超过阀值则启用水泵,蜂鸣器报警,当温度高于阀值,继电器驱动风扇进行降温;当温度低于阀值,继电器驱动发热板进行加温;当湿度高于阀值,继电器驱动除湿器进行降湿;当湿度低于阀值,继电器驱动加湿器进行增湿。未超出则继续检测,并将检测到的数据送到AT89S52中进行处理,处理之后将结果显示到              LCD上。
4.2 温湿度传感器部分


图4.2-1  DHT11时序图

当程序初始化完毕,温湿度传感器开始工作。主机MCU对DHT11发出信号,DHT11转换工作模式,转换到高速模式,当主机发出的开始信号结束,DHT11进行响应,送出40字节的数据,并开始信号采集,这是我们可以选择是否读取数。如果DHT11没有接受到主机的发送开始信号,则不会主动进行采集数据。当采集全部结束后,DHT11自动转入低速模式。最后将所得到的5个字节数据放入数组中。当传感器采集到当前环境参数后,将所测数据送入单片机中,此时,系统半段所测数据是否正常,随后将所测数据送入LCD中,分行显示。
DHT11测量部分伪代码:
void read_value()               
{
              uchar i;
              DHT=0;
              delay_1ms(20);
              DHT=1;
DHT11处理数据伪代码:
void pro_value()
{
              read_value();
              temp=read_data[0]+read_data[1]+read_data[2]+read_data[3];
              if(read_data[4]==temp)                                         
                            {
                                          shiZ=read_data[0];               
                                          wenZ=read_data[2];            
                            }



4.3 PCF8591转换部分
图4.3-1    PCF8591时序图
PCF8591为一款常用的逐次逼近型模数转换器,多通道的8位ADC,更为重要的是它采用了I2C通讯方式,使用起来更加快捷,功耗更低,可以有效节约IO口资源。可将FC-28土壤湿度传感器所直接测得的模拟量转换为数字量传输到单片机上来实现具体功能。
进行数据操作时,使用片上的DA转换器和高增益比较器,每个转换周期发送一个模式给PCF8591后,转换周期在时钟脉冲的后沿触发,同时输入电压被转换为8为二进制码保存在芯片中。
4.4 LCD1602部分
图4.4-1  LCD1602时序图
LCD1602为字符型液晶,显示数字和字母较为方便,LCD1602为字符型液晶,显示数字和字母较为方便,以其性能卓越、快速响应、抗干扰能力强、性价比高诸多优点,在实际科研工作中中得到了越来越普遍的应用。
其部分伪代码如下:
void display2()                                         
{
              write_1602com(yh+2);
              for(a=0;a<2;a++)
              {
                write_1602dat(tate[a]+0x30);
              }
              write_1602com(er+3);
              for(a=2;a<4;a++)
              {
                write_1602dat(tate[a]+0x30);
              }
}

5.系统调试
5.1 辅助软件介绍
本次设计硬件模拟部分所用的软件为由英国公司出版的Proteus,作为同类仿真软件中的佼佼者,该软件从原理图的布图,代码调试和实物电路仿真联系在一起,可以一键实现PCB设计,真正意义上实现了从概念想法到实物产品的完整设计。完美支持市面上大部分处理器模型。
代码调试所用的软件为美国公司研发的KEIL软件,KEIL作为一款单片机C语言的开发系统,在各个方面有很大的优势,其方便快捷的集成环境,功能强大的仿真调试功能通常让使用者事半功倍。
5.2 实物图
本套系统的实物完全手工焊接,LCD显示屏参数显示正常,继电器可正常驱动,蜂鸣器工作正常,传感器工作正常。

相关资料下载(程序+电路):
http://www.51hei.com/bbs/dpj-191373-1.html

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏4 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表