毕业设计之基于单片机的温室大棚自动控制系统 - 图文

更新时间:2024-05-08 08:12:02 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

基于单片机的温室大棚自动控制系统

【摘要】本系统由单片机STC89C52、温度检测电路、湿度检测电路、光照度检测电路、键盘扫描电路、时钟电路、传感器电路以及继电器控制电路等部分组成。系统采用STC89C52单片机,功能强、功耗低、价格低、稳定可靠、应用广泛、通用性强等特点。

论文完成了以STC89C52单片机为核心对空气温度、土壤湿度、光照度进行数据的采集、处理、显示等系统

的基本框图、工作原理和继电器控制的设计的阐述。该系统对植物生长过程中的土壤湿度、环境温度、光照度进行了实时地、连续地检测、直观地显示并进行自动地控制。克服了传统的人工测量方法不能进行连续测量的弊端,节省了工作量,并避免了人为的疏漏或错误造成的不必要的损失。

【关键词】单片机、湿敏传感器、数字温度传感器、光敏电阻、继电器控制。

基于单片机的温室大棚自动控制系统

目录

1.绪论 ................................................................................................................................................................... 2 1.1选题背景 ................................................................................................................................................... 2 1.2国内外的发展现状 ................................................................................................................................... 2 1.3课题内容、目的及思路 ........................................................................................................................... 2 1.4设计过程及工艺要求 ............................................................................................................................... 2 2.方案的比较和选择 ........................................................................................................................................... 3 2.1湿度传感器的选择 ................................................................................................................................... 3 2.2温度传感器的选择 ................................................................................................................................... 4 2.3光照度传感器的选择 ............................................................................................................................... 5 3系统的总体设计 ............................................................................................................................................... 5 3.1确定系统任务 ........................................................................................................................................... 5 3.2系统的组成和工作原理 ........................................................................................................................... 5 3.3元件的特性 ............................................................................................................................................... 8 3.3.1 STC89C52特点 ................................................................................................................................. 8 3.3.2AD0804特点....................................................................................................................................... 9 4.电路设计 ........................................................................................................................................................... 9 4.1湿度测量电路 ........................................................................................................................................... 9 4.2温度测量电路 ......................................................................................................................................... 10 4.3光照度测量电路 ..................................................................................................................................... 11 4.4数据显示电路 ......................................................................................................................................... 11 4.5复位电路 ................................................................................................................................................. 12 4.6键盘电路 ................................................................................................................................................. 12 4.7继电器控制电路 ..................................................................................................................................... 13 5.软件设计 ......................................................................................................................................................... 13 5.1主程序流程图 ......................................................................................................................................... 13 5.2.参数测量子程序流程图 ........................................................................................................................ 15 5.3.键盘扫描子程序流程 ............................................................................................................................ 15 6.总结 ................................................................................................................................. 错误!未定义书签。 参考文献 ............................................................................................................................................................ 17 附录1 电子元器件明细表 ........................................................................................................................... 19 附录2:系统总体电路图 ................................................................................................................................. 20 附录3:实物图 ................................................................................................................................................. 21 附录4:系统源代码 ......................................................................................................................................... 24

1

基于单片机的温室大棚自动控制系统

1.绪论

1.1选题背景

现代化农业生产中的重要一环就是对农业生产环境的一些重要参数进行检测和控制。例如:空气的温度、湿度、光照强度、二氧化碳含量、土壤的含水量等。温室环境与生物的生长、发育、能量交换密切相关,进行环境测控是实现温室生产管理自动化、科学化的基本保证,通过对监测数据的分析,结合作物生长发育规律,控制环境条件,使作物达到优质、高产、高效的栽培目的。以蔬菜大棚为代表的现代农业设施在现代化农业生产中发挥着巨大的作用,所以对大棚内的温度、湿度与光照强度等参数的控制就显的非常重要了。

传统的方法是用毛发湿度表、酒精温度计等进行人工测量,再对不符合的温度、湿度、光照度通过

[1]

在温室大棚进行灌溉、降温、遮光等控制操作来调节,这种人工测控的方法费时费力、效率低、且无法保证测量的连续性,测量的误差大、随机性大,随意性强。为了克服以上几点不足,我们需要一种造价低廉,使用方便且测量准确的自动测控系统。

1.2国内外的发展现状

国外的温室设施己经发展到比较完备的程度,并形成了一定的标准,但是价格非常昂贵,缺乏与我国气候特点相适应的测控软件,不利于在我国广泛地推广,而当今在我国大多数地方对大棚温度、湿度、二氧化碳含量,光照强度的检测与控制都采用人工管理,存在着测控精度低、劳动强度大及由于测控不及时等弊端,容易造成不可弥补的损失,结果不但大大增加了成本,浪费了人力资源,而且很难达到预期的效果。本系统主要针对温室大棚内温度、湿度,光照强度研制了单片机控制的温室大棚自动控制系统,综合考虑系统的精度、效率以及经济性要求三个方面因素之后,最终确定以STC89C52单片机为控制核心,选用性价比比较高的传感器,实现对温湿度的精确测量与准确控制,同时又具有价格低等优点,便于在我国推广。

1.3课题内容、目的及思路

本系统主要采用STC89c52单片机作为系统的控制核心,由温室内的空气温度传感器、土壤湿度传感器、光照度传感器采集数据,经过模数转换后送入单片机,由单片机根据采集的数据做出相应的控制,例如控制继电器的开合,使换气风扇、滴灌设备、遮阳幕等设备的启动或停止,达到控制温室各项参数的目的。同时在外接的LCD液晶上显示实时参数 ,便于观察。外接的键盘可以设定系统控制的温度值,以满足不同条件下对温度的不同要求。

1.4设计过程及工艺要求

在本系统中为了保证对温度、湿度和光照度的检测的实时性和准确性,采用了数字温度传感器DS18B20来检测温度。采用湿度传感器HS1101来检测土壤湿度。采用光敏电阻检测光照度。最后通过单片机STC89C52处理后显示在1602液晶显示屏上,并通过控制继电器的开合控制相应的调节部件对植物的生长环境的各项参数进行调节,以达到适合植物生长的环境条件。

本系统的基本功能有:检测空气温度、土壤湿度、环境光照度。显示以上各项参数并自动调节。

2

基于单片机的温室大棚自动控制系统

2.方案的比较和选择

2.1湿度传感器的选择

单片机作为控制核心,要有被检测信号输入,由单片机处理。如何准确的确定外围环境的各项参数就显的非常重要。

传感器是实现测量与控制的首要环节,是测控系统的关键部件,如果没有传感器对原始信号进行准确可靠的捕捉和转换,系统就无法实现要求的各项功能。工业生产过程中的自动化的测量和控制,大部分主要依靠各种传感器来检测和控制生产过程中的各项参量,使系统工作在最佳的状态下。 测量土壤湿度的方法有很多种,其原理是根据某种物质从其周围的土壤中吸收水分后引起的物理或化学的性质的变化,间接的获得土壤的湿度。电容式、电阻式和湿涨式湿敏元件分别是根据其高分子材料吸水后的介电常数、电阻率和体积发生的变化进行湿度的测量。

方案一:采用HOS-201湿敏传感器。HOS-201湿敏传感器为高湿度开关传感器,它的工作电压为交流1V以下,频率为50HZ~1KHZ,测量范围为0%~100%RH,工作温度为0~50℃

,阻抗在75%RH(25℃)时为1MΩ。这种传感器主要用于开关的传感器,不能在宽频域内检测湿度。这种传感器只限于一定范围内使用时具有良好的线性度。

方案二:采用HS1100/ HS1101湿度传感器。HS1100/ HS1101湿度传感器,在电路结构上等效于一个电容器,其电容量随着土壤湿度的增大而增大,不需要校准的完全互换性,高可靠性和长期稳定性,快速响应,专利设计的固态聚合物结构由顶端接触(HS1100)和侧面接触(HS1101)两种封装产品,适用于线性电压输出和频率输出两种电路。

综合比较方案一和方案二,方案一虽然满足精度和测量温度的要求,但是只是限定于一定的范围内使用时具有良好的线性度。因此,我们选择方案二作为本设计的湿度传感器。

200 190 180 170 F [3]

[2]

电容

20 40 60 80 100 相对湿度%

图2-1:HS1101湿度-电容响应曲线

3

基于单片机的温室大棚自动控制系统

湿度传感器HS1101的特点:相对湿度在1%~100%RH范围内:电容量有16pf变到200pf,其误

RH,响应时间小于5S,温度系数为0.04pf/。由此可以看出HS1101具有测量精度高,反

差不大于

应速度高的优点,其湿度-电容响应曲线如图2-1:

HS1101的一些常用参数如表2-1:

表2-1:HS1101常用参数 参数 工作温度 储存温度 供电电压 湿度范围 焊接时间@=260℃ 符号 Ta Tstg Vs RH t 参数值 -40~100 -40~125 10 0~100 10

单位 ℃ ℃ Vac %RH S 2.2温度传感器的选择

方案一:采用AD590温度传感器。AD590温度传感器是美国模拟器件公司生产的单片集成两端感温电流源。AD590性能描述:测量范围在-50℃-- +150℃,满刻度范围误差为±0.3℃,当电源电压在5—10V之间,稳定度为1﹪时,误差只有±0.01℃ 。AD590为电流型传感器温度每变化1℃其电流变化1uA在35℃和95℃时输出电流分别为308.2uA 和368.2uA 。

方案二:采用DS18B20温度传感器。美国DALLAS公司的产品可编程单总线数字式温度传感器DS18B20可实现室内温度信号的采集,有很多优点:如直接输出数字信号,故省去了后继的信号放大及模数转换部分,外围电路简单,成本低;单总线接口,只有一根信号线作为单总线与CPU连接,且每一只都有自己唯一的64位系列号存储在其内部的ROM存储器中,故在一根信号线上可以挂接多个DS18820,便于多点测量且易于扩展。

综合比较方案一和方案二,两方案都可以满足设计所要求的精度温度要求,但方案一的后续电路复杂,需要经过放大,数模转换等步骤,增加了设计的复杂度和成本,并需要占用单片机较多的I/O口。方案二的后续电路简单,占用的I/O口数量少,为整体设计留出了足够的I/O口资源。故我们采用方案二作为本系统的温度传感器。

DS18B20的温度值格式如表2-2:

表2-2 DS18B20的温度值格式

低字节 高字节 位7 2 位15 S 3[5][4]

位6 2 位14 S 2位5 2 位13 S 1位4 2 位12 S 0位3 2 位11 S -1位2 2 位10 2 6-2位1 2 位9 2 5-3位0 2 位8 2 4-4DS18B20中的温度传感器完成对温度的测量,用16位二进制形式提供,形式表达,其中S为符号位。例如+125℃的数字输出为07D0H (正温度直接把16进制数转成10进制即得到温度值 ); -55℃的数字输出为 FC90H。(负温度 把得到的16进制数 取反后1再转成10进制数)。

数字输出格式如表2-3:

4

基于单片机的温室大棚自动控制系统 表2-3 DS18B20的数字输出格式表

温度 +125 +85 +25.0625 +10.125 +0.5 0 -0.5 -10.125 -25.0625 -55 数字输出(二进制) 0000 0111 1101 0000 0000 0101 0101 0000 0000 0001 1001 0001 0000 0000 1010 0010 0000 0000 0000 1000 0000 0000 0000 0000 1111 1111 1111 1000 1111 1111 0101 1110 1111 1110 0110 1111 1111 1100 1001 0000 数字输出(十六进制) 07D0h 0550h 0191h 00A2h 0008h 0000h FFF8h FF5Eh FE6Fh FC90h 2.3光照度传感器的选择

方案一:采用光照度传感器M124749,该光照度传感器采用先进的电路模块技术开发变送器,用于实现对环境光照度的测量,输出标准的电压及电流信号,体积小,安装方便,线性度好,传输距离长,抗干扰能力强,量程可调。但价格昂贵,性价比不高,且不易购买。

方案二:采用光敏电阻。光敏电阻的工作原理是当有光线照射时,电阻内原本处于稳定状态的

电子受到激发,成为自由电子,所以光线越强,产生的自由电子也就越多,电阻就会越小。光敏电阻的优点有内部的光电效应和电极无关(光电二极管才有关),即可以使用直流电源。灵敏度和半导体材料、以及入射光的波长有关,价格低廉,性价比高。

比较以上两个方案,方案一虽然具有更好的设计精度和线性度,但性价比不如光敏电阻好。方案二

具有较高的性价比且同时也能满足系统的设计要求,故采用光敏电阻作为光照度传感器。

3系统的总体设计

3.1确定系统任务

本设计的要求是以STC89C52为控制核心,以HS1101湿度传感器、DS18B20、光敏电阻完成对温室大棚内的各项参数进行测量,并将数据输入到单片机中,有单片机根据所编写的程序,通过继电器控制电路控制相应的设备达到自动调控温室大棚内各项参数的目的,同时将通过各种传感器测的数据实时地显示在液晶屏上。系统可通过按键人为地设定合适的参数,便于根据不同的植被的环境中使用。

3.2系统的组成和工作原理

硬件系统主要有信号采集、信号分析、信号处理三个部分组成。 (1) 信号采集 由HS1101、DS18B20、光敏电阻组成。 (2) 信号分析 由单片机 STC89C52基本系统组成。

5

基于单片机的温室大棚自动控制系统

(3) 信号处理 由并行口 LCD液晶显示屏和继电器控制电路组成。 硬件系统的原理方框图如图3-1:

温度传感器LED显示屏温室大棚湿度传感器光照度传感器A/DSTC89C52滴灌设备排气扇及喷雾遮阳幕 图3-1 硬件系统的原理图

键盘执行部件控制电路开始湿度是否在设定的适宜范围内?NY湿度是否高于设定的适宜范围的上限?N滴灌设备继电器断开湿度是否低于设定的适宜范围的下限?NYY滴灌设备继电器吸合一分钟滴灌设备停止工作滴灌设备开始工作结束图3-2 土壤湿度控制流程图

6

基于单片机的温室大棚自动控制系统

土壤湿度控制部分流程如图3-2:

单片机通过湿度传感器检测土壤的湿度,若土壤的湿度过低,单片机就打开滴灌设备的电磁阀一分钟,对作物进行滴灌作业,增加土壤湿度,经过一段时间,单片机再次检测土壤湿度,如果湿度过高,就关闭滴灌设备的电磁阀,停止滴灌作业。如果开始检测的土壤湿度在适宜的范围,单片机则维持现有状态不变。

空气温度控制流程如下图3-3:

开始温度是否在设定的适宜范围内?NY温度是否高于设定的适宜范围的上限?N排气扇及喷雾设备继电器吸合温度是否低于设定的适宜范围的下限?NYY排气扇及喷雾设备继电器断开排气扇及喷雾设备开始工作排气扇及喷雾设备停止工作结束图3-3空气温度控制流程图

单片机通过温度传感器检测温室的空气温度,当空气温度过高时,就通过控制电路,打开排气扇配合设置在温室大棚顶部的喷雾设备的进行一段时间的温室大棚的降温作业,而当温室温度过低时,则通过单片机自动关闭降温设备的工作,使温度值达到适宜的范围。 若一开始检测的光照度在适宜范围,单片机将维持现有状态。

光照度控制部分流程如下图3-4:

光照度的控制主要靠遮阳幕的开关,光照度过高时,系统通过关闭大棚顶部的遮阳幕,避免阳光直射作物,减小光照度,及减少强光对作物生长的影响。当光照度过低时,就打开遮阳幕,增加光照度。如果检测的光照度在适宜范围,单片机将维持现状。

7

基于单片机的温室大棚自动控制系统

开始光照度是否在设定的适宜范围内?NY光照度是否高于设定的适宜范围的上限?N遮阳幕的继电器吸合光照度是否低于设定的适宜范围的下限?N关闭遮阳幕YY遮阳幕的继电器断开遮阳幕关闭结束图3-4 光照度控制流程图

3.3元件的特性

3.3.1 STC89C52特点

(1)它是MCS-51系列单片机的派生产品,在指令系统、硬件结构和片内资源上与标准8052单片机完全兼容,DIP40封装系列与8051兼容均为Pin-to-Pin,使用时容易掌握;

(2)高速(最高时钟频率90 MHz)、低功耗、价格低、稳定可靠、应用广泛、通用性强,在系统/在应用可编程(ISP,IAP),不占用户资源。

STC89C52单片机管脚如图3-5:

[6]

8

基于单片机的温室大棚自动控制系统

图3-5 STC89C52单片机管脚定义图

3.3.2AD0804特点

ADC0804为8bit的一路A/D转换器,其输入电压范围在0—5v,转换速度小于100us,转换精度0.39﹪,满足设计的精度要求。

[7]

4.电路设计

4.1湿度测量电路

HS1101湿度传感器,在电路中等效于 一个电容器件,其电容量随着所测的土壤湿度增大而增大,如何将电容的变化量准确的转换成单片机易于接受的信号,常有两种方法:一是将该湿敏传感器置于运放与阻容组成的桥式振荡电路中,所产生的正弦波电压信号经整流、直流放大、再经过A/D转换成为数字信号;另一种是将该湿敏传感器置于555振荡电路中,将电容值的变化转化为与之成反比的电压频

[3]

率信号,可直接被单片机所采集。

本系统采用的是测量555输出的振荡的方法,电路如图4-1所示:

9

基于单片机的温室大棚自动控制系统

图4-1 湿度测量电路图

此电路为典型的555双稳态电路。HS1101/HS1100作为电容变量接在555的TRIG与THRES两引脚上,引脚7用作电阻R20的短路。

等量电容HS1101/HS1100通过R19与R20充电到门限电压(约0.67Vcc),通过R19放电到触发电平(约0.33Vcc),然后R20通过引脚7短路到地。传感器由不同的电阻R20与R19充放电。

电压输出典型参数(@VCC=5V,25℃)如表4-1

表4-1 HS1101湿度传感器电压输出典型参数(@VCC=5V,25℃) RH Vout 0 - 10 1.41 20 1.65 30 1.89 40 2.12 50 2.36 60 2.60 70 2.83 80 3.07 90 3.31 100 3.55 4.2温度测量电路

因为在本系统中采用了DS18B20数字温度传感器,所以后续电路简单,只需将传感器的数据输入/

[1]

输出管脚直接接到单片机I/O口,通过单片机的控制DS18B20传感器并实时读取空气温度。数字温度传感器的测量电路如图4-2所示:

图4-2 温度测量电路图

10

4.4数据显示电路

4.3光照度测量电路

[8]

基于单片机的温室大棚自动控制系统

图4-3 ADC0804与单片机的连接电路图

图4-4 LCD1602与单片机的连接电路图

系统采用了LCD1602液晶显示屏,LCD1602液晶是一款很常用,也很易用的字符液晶。可以显示2行每行16个字符,对比度可调、黄绿色背光。与单片机的链接电路如图4-4:

系统采用价格低廉的光敏电阻测量光照度,因其没有良好的线性度,所以只能大致的测量。根据光敏电阻在不同的光照下有不同的阻值,经过A/D转换后输入到单片机内进行处理。其与ADC0804的连接电路如图4-3:

11

基于单片机的温室大棚自动控制系统

4.5复位电路

为了确保系统中的电路温度可靠工作,复位电路是必不可少的部分 ,其第一功能就是低电平复位,低电平复位是在通电瞬间通过充电来实现的。手动复位是指通过接通一按键开关,使单片机进入复位状态。系统上电运行后,如果需要复位,只需通过手动复位就可以实现。本系统使用的复位电路如图4-5所示:

[9]

图4-5 复位电路图

4.6键盘电路

本设计采用的键盘扫面电路采用简单的低电平扫描方式,即采用开关的一端与单片机I/O口相连,

[10]

另一端接地的方式,用单片机检测I/O口是否是低电平来判断键盘是否被按下。这样的方式可以方便键盘扫描部分的的编程。键盘电路如图4-6:

图4-6 键盘电路图

12

基于单片机的温室大棚自动控制系统

4.7继电器控制电路

单片机是一个弱电器件,一般情况下它们大都工作在5V甚至更低。驱动电流在mA级以下。而要把它用于一些大功率场合,比如控制电动机,显然是不行的.所以,就要有一个环节来衔接,这个环节就是所谓的\功率驱动\。继电器驱动就是一个典型的、简单的功率驱动环节。在这里,继电器驱动含有两个意思:一是对继电器进行驱动,因为继电器本身对于单片机来说就是一个功率器件;还有就是继电器去驱动其他负载,比如继电器可以驱动中间继电器,可以直接驱动接触器,所以,继电器驱动就是单片机与其他大功率负载接口[11]。本设计采用的继电器控制电路如图4-7:

图4-7 继电器控制电路图

图中的三极管起开关的作用,当单片机输出高电平时,三极管导通,继电器吸合。单片机输出低电平时,继电器断开。二极管起保护作用,防止继电器产生的感应电动势烧坏三极管或继电器。

5.软件设计

系统的程序设计包括以下几个方面:(1)键盘扫描晶上的显示。(4)各项参数的继电器控制。

[12]

。(2)各项参数的采集。(3)各项参数在液

5.1主程序流程图

主程序的流程如图5-1

13

基于单片机的温室大棚自动控制系统

开始初始化和位定义清标志清显示扫描键盘各参数采集各参数与设置值比较,是否需要调节?N各参数显示Y启动继电器控制电路,调节参数结束

图5-1 主程序流程图

当单片机上电后,主程序开始运行,程序以开始初始化各参数的设置和端口定义后,清各标志位和LCD1602的显示,然后进行键盘扫描,再利用各传感器进行数据的采集,将采集的数据和设置好的参数进行对比,如果对比结果显示需要调节,启动相应的继电器控制电路对温室中需要调节的参数进行调节并显示在LCD1602上,如果比较结果显示不需要调节,则不启动继电器控制电路,直接显示参数,然后对键盘进行循环扫描。

14

基于单片机的温室大棚自动控制系统

5.2.参数测量子程序流程图

参数测量子程序流程如图5-2

开始声明变量与函数调用显示函数启动A/D完成转换NY读取转换值结束

图5-2 参数测量子程序流程图

子程序开始先声明变量和调用的函数后,调用显示函数,启动模数转换器ADC0804进行模数转换,转化如果未完成,单片机进行等待。当转换完成后,单片机读取转换后的数据,然后循环调用显示函数和进行模数转换。

5.3.键盘扫描子程序流程

键盘扫描子程序流程如图5-3

15

基于单片机的温室大棚自动控制系统

开始扫描键盘判断是否有键按下?Y稍做延迟N是否真的有键按下?YNS1是否按下?Y进入设置模式NS4是否按N下?Y进入切换显示模式设置温度1次2次判断S1按下的次数3次3次判断S4按下的次数1次2次显示设置温度和实时温度设置湿度设置光照度显示设置湿度和实时光照度显示设置湿度和实时湿度当前设置的参数加一YS2是否按下?NS3是否按下?N当前设置参数不变Y当前设置的参数减一结束

图5-3 键盘扫描流程图

16

基于单片机的温室大棚自动控制系统

键盘扫描子程序一开始先扫描按键,判断是否有按键被按下,确定有按键被按下时判断被按下的是哪个按键,如果是按键S1,系统将进入设置模式,这时按键S2和S3被启用,进入那个参数的设置取决于按键S1被按下的次数,S1被按下一次,进行温度值设置,S1被按下两次,进行湿度值设置,S1被按下三次,进行光照度设置,当按下第四次,返回正常显示,按键S2和S3被禁用。按键S2和S3作用是调节参数值,每次按下S2,当前设置的参数值就加一。每次按下S3,当前设置的参数值就减一。

参考文献

[1] 梅晓榕,柏桂珍,张卯瑞.自动控制元件及线路[M].北京:科学出版社,2007

[2] 张义和,王敏男,许宏昌,余长春.例说51单片机(C语言版)[M].北京:人民邮电出版社,2010,6 [3] 湿度传感器HS1101的原理与应用[EB/OL].中国电子科技信息网. [4] 胡汉才.单片机原理与接口技术[M].清华大学出版社,1996.

[5] 黄贤斌,郑筱霞.传感器原理与应用[M].北京:高等教育出版社. 成都:电子科技大学出版社,2004,3(2009.1重印)

[6] 何立民.单片机应用系统设计[M].北京:北京航天航空出版社.1990,50-490 [7] 刘笃仁,韩保君.传感器原理及应用技术[M].机械工业出版社.2003,8 [8] 1985赵亮.液晶显示模块LCD1602应用[J].电子制作,2007(3)

[9] <英> Guiyun Tian. Foundation and Application of Microcontroller[M].北京:高等教育出版社 [10] 王勇等.凌阳单片机原理及其毕业设计精选[M].科学出版社 [11] 童诗白.模拟电路基础[M],北京:高等教育出版社,2001

[12] 马忠梅,籍顺心,张凯等.单片机的C语言应用程序设计[M]. 北京航天航空大学出版社,2003 [13] <美>M考夫曼,AH塞得.电子计算手册[M].国防科技出版社. [14] 王毅.单片机器件应用手册[M].北京:人民邮电出版社,1994

17

基于单片机的温室大棚自动控制系统

Microcontroller-based automatic monitoring and control of greenhouse light and temperature and humidity system

Electronic Information Engineering, Department of Electronic Information Engineering

118542007050 Pan Xiaoqi Teacher: Yu Jianming

【Abstract】The system consists of microcontroller STC89C52, the temperature detection circuit, humidity detection circuit, light detection circuit, the keyboard scanning circuit, clock circuit, sensor circuit and relay control circuit and other components. System uses STC89C52 SCM, the features of which as follows: strong function, low power consumption, low prices, stable and reliable, widely used, versatile and so on. The thesis mainly focus on: the base block diagram, working principle and the design of relay control which use STC89C52 microcontroller as the core to collect, conduct, display the data of the air temperature, soil humidity, illuminance and so on. The system use Real-time and continuous detection, display intuitively and control automatically on soil moisture, ambient temperature, illuminance in the process of plant growth. To overcome the defects from the traditional manual methods of measurement which can not measure continuously, save the amount of work, avoid omissions or unnecessary losses that caused by errors. 【Key words】 SCM, humidity sensors, digital temperature sensors, light dependent resistor, relay control.

18

基于单片机的温室大棚自动控制系统

附录1 电子元器件明细表

类 型 瓷片电容 瓷片电容 瓷片电容 电解电容 电解电容 电位器 插针 插针 插针 三极管 二极管 发光二极管 电阻 电阻 电阻 电阻 电阻 电阻 光敏电阻 液晶模块 集成电路 集成电路 集成电路 集成电路 集成电路 封 装 RAD-0.1 RAD-0.1 RAD-0.1 RAD-0.1 RAD-0.1 RP3 HDR1X2 HDR1X3 HDR1X9 BCY-W3 DIO10.46-5.3x2.8 LED-1 AXIAL-0.4 AXIAL-0.4 AXIAL-0.4 AXIAL-0.4 AXIAL-0.4 AXIAL-0.4 AXIAL-0.4 HDRX16 N020 40P6 DIP-08 Header 2H Header 3H 型 号 104 30 150 2200uF 10uF 10K 2p 3p 16p IN5401 IN4007 LED-1 576K 50K 3K 1K 909K 10K MG45-14 LCD1602 ADC0804 STC89C52 TLC555 HS1101 DS18B20 19

数量 2 2 2 1 1 1 4 1 1 3 8 3 1 1 3 8 1 15 1 1 2 1 1 1 1 备 注

晶振 按键 稳压电路 2.主板PCB图:

1.主板电路图:

SW T03B 附录2:系统总体电路图

RAD-0.2 XTAL LM7805 KEP (4.5X6.5) 基于单片机的温室大棚自动控制系统

20

12 1 1

基于单片机的温室大棚自动控制系统

3.电源原理图:

附录3:实物图

21

基于单片机的温室大棚自动控制系统

系统实物图1

22

基于单片机的温室大棚自动控制系统

系统实物图2

系统实物图3 23

基于单片机的温室大棚自动控制系统

附录4:系统源代码

程序:

/*-------------------------------------------------------------------------------------------------------------------- 项 目(Project) :基于单片机的温室光温湿度自动控制系统 创 建 人 (Author) :

日 期 (Data) :2011-1-1 编 译 器 (Complie) :keil 3 版 本 :

单 片 机 (MCU type):STC89C52RC 注意事项(Attention): 修改时间:

-------------------------------------------------------------------------------------------------------------------*/ #include #include #include #include

#define uchar unsigned char #define uint unsigned int #define T_cont 0.0625;

#define DataPort P0 //LCD接口 #define ReadPort P2 //AD读取 uchar code temp[]={%uchar code tempset[]={%uchar code hun[]={%uchar code hunset[]={%uchar code inte[]={%uchar code inteset[]={%uchar code set[]={\

uchar tempset1,s1num,s4num,hunset1,hun1,hun2,inteset1,inte1; bit T_sign; float temp1=0;

uchar t_bai,t_shi,t_ge,t_feng,t_miao,sshi,sge,

h_bai,h_shi,h_ge,hshi,hge,

24

基于单片机的温室大棚自动控制系统

i_bai,i_shi,i_ge,ishi,ige;

sbit s1=P1^0; sbit s2=P1^1; sbit s3=P1^2; sbit s4=P1^3; sbit relay1=P1^5; sbit relay2=P1^6; sbit relay3=P1^7; sbit cs1=P3^0; sbit cs2=P3^1; sbit DS=P3^2; sbit lcdrw=P3^3; sbit lcden=P3^4; sbit lcdrs=P3^5; sbit wr=P3^6; sbit rd=P3^7;

/////////////////////////////////////////////////////////////////////// void delay(uint z) //延时函数 { }

void dsreset(void) //send reset and initialization command {

uint i; //DS18B20初始化 DS=0; i=103; while(i>0)i--; DS=1; i=4;

25

uint x,y; for(x=z;x>0;x--)

for(y=110;y>0;y--);

基于单片机的温室大棚自动控制系统

while(i>0)i--; }

bit tmpreadbit(void) //read a bit 读一位 { uint i; bit dat;

DS=0;i++; //i++ for delay 小延时一下 DS=1;i++;i++; dat=DS; i=8; while(i>0)i--; return (dat); }

uchar tmpread(void) //read a byte date 读一个字节 {

uchar i,j,dat; dat=0; for(i=1;i<=8;i++) {

j=tmpreadbit();

dat=(j<<7)|(dat>>1); //读出的数据最低位在最前面,这样刚好//一个字节在DAT里 }

return(dat); //将一个字节数据返回 }

void tmpwritebyte(uchar dat) //write a byte to ds18b20 { //写一个字节到DS18B20里 uint i; uchar j; bit testb; for(j=1;j<=8;j++) {

26

基于单片机的温室大棚自动控制系统

testb=dat&0x01; dat=dat>>1;

if(testb) //write 1 写1部分 { DS=0; i++;i++; DS=1;

i=8;while(i>0)i--; } else {

DS=0; //write 0 写0部分 i=8;while(i>0)i--; DS=1; i++;i++; } } }

void readtemperature() //读温度函数{

uint y;

uchar T_L=0; uchar T_H=0; uchar k; dsreset(); delay(1);

tmpwritebyte(0xcc); tmpwritebyte(0x44); dsreset();

delay(1);

27

基于单片机的温室大棚自动控制系统

T_H=T_H&0x07;

temp1=(T_H*256+T_L)*T_cont; temp1=temp1*100; t_bai=(uint)temp1/10000; y=(uint)temp1000; t_shi=y/1000; y=(uint)y00; t_ge=y/100; y=(uint)y0; t_feng=y/10; t_miao=(uint)y; }

tmpwritebyte(0xcc); tmpwritebyte(0xbe); T_L=tmpread(); T_H=tmpread(); k=T_H&0x08; if(k==0x08) else

T_sign=0; T_sign=1;

///////////////////////////////////////////////////////////// void inteadc0804() //光照度adc转换子程序与数据处理 {

rd = 1;

wr = 1; //读ADC ReadPort = 0xff; //P1置位 cs1=0; wr = 0;

wr = 1; //启动ADC

28

基于单片机的温室大棚自动控制系统

rd=0; //开始读转换后数据

_nop_(); _nop_(); //稍延时,等待读完数 inte1 = ReadPort; //读出的光照度数据赋与inte1 rd = 1;

cs1 = 1; //读数完毕

i_bai = inte1/100; //百位数 i_shi = (inte10)/10; //十位数 i_ge = (inte1); //个位数 }

void hunadc0804() {

rd = 1;

wr = 1; //读ADC ReadPort = 0xff; //P1置位 cs2=0; wr = 0;

wr = 1; //启动ADC rd=0; //开始读转换后数据

_nop_(); _nop_(); //稍延时,等待读完数 delay(20);

hun2= ReadPort; //读出的湿度数据赋与hun1 rd = 1;

cs2 = 1; //读数完毕 hun1=hun2/2.55;

h_bai = hun1/100; //百位数

//湿度adc转换子程序与数据处理

h_shi = (hun10)/10; //十位数 h_ge = (hun1); //个位数 }

/////////////////////////////////////////////////////////// void write_com(uchar com) //lcd写命令函数

29

基于单片机的温室大棚自动控制系统

{ }

void write_data(uchar date) //lcd写数据函数 { }

void init() //初始化函数 {

s1=1; tempset1=25; hunset1=50; inteset1=15; lcdrw=0;

30

lcdrs=0; lcdrw=0; lcden=0; P0=com; delay(10); //延时

lcden=1; //下三行表示E高脉冲到来就开始转换 delay(10); lcden=0;

lcdrs=1; lcdrs=1; lcdrw=0; lcden=0; P0=date; delay(10); lcden=1; delay(10); lcden=0;

基于单片机的温室大棚自动控制系统

}

void print(uchar a,uchar *str) //输出字符 { }

void print1(uchar a,uchar t) //输出18b20数据到1602 { }

void print2(uchar a1,uchar t1) //输出设置温度数据到1602 {

uchar sshi,sge; sshi=t1/10; sge=t1; write_com(0x80+a1); write_data(sshi+0x30);

31

lcden=0; write_com(0x38); delay(10); write_com(0x0f); delay(10); write_com(0x06); delay(10); write_com(0x01); delay(10);

write_com(a);

while(*str!='\\0') {write_data(*str++);} *str=0;

write_com(a); write_data(t);

基于单片机的温室大棚自动控制系统

}

//////////////////////////////////////////////////////////// write_data(sge+0x30);

void keyscan() //键盘扫描函数 { rd=0; if(s1==0) { delay(5); if(s1==0) { s1num++; while(!s1);

if(s1num==1) {

write_com(0x01); print(0x80,tempset); print1(0x8e,0x43); print1(0x80+11,0x2e); print1(0x80+12,0+0x30); print1(0x80+13,0+0x30); write_com(0x80+9); write_com(0x0f);

delay(20);

} if(s1num==2) {

write_com(0x01); print(0x80,hunset);

print1(0x8b,0x30);

32

基于单片机的温室大棚自动控制系统

print1(0x8d,0x25); print1(0x8e,0x20); write_com(0x80+11); write_com(0x80+11);

}

if(s1num==3) {

write_com(0x01); print(0x80,inteset); print1(0x8b,0x30); print1(0x80+12,0+0x30); print1(0x80+13,0+0x30);

print1(0x8d,0x4d); print1(0x8e,0x56); write_com(0x80+11);

}

if(s1num==5) { s1num=0; write_com(0x01);

s4num=1;

}

}

}

if(s1num!=0) { if(s1num==1) {

if(s2==0)

33

基于单片机的温室大棚自动控制系统

}

}

}

{

delay(5); if(s2==0) {

while(!s2); if(s1num==1) {

tempset1++; write_com(0x80+10); print2(9,tempset1); if(tempset1==40) tempset1=15;

if(s3==0)

{

delay(5); if(s3==0) {

while(!s3); if(s1num==1) { }

34

tempset1--; write_com(0x80+11); print2(9,tempset1); if(tempset1==15) tempset1=40;

基于单片机的温室大棚自动控制系统

}

} }

if(s1num==2) { if(s2==0) { delay(5); if(s2==0) { while(!s2); if(s1num==2) {

hunset1++;

write_com(0x80+10); print2(11,hunset1); if(hunset1==90) hunset1=10;

} }

}

if(s3==0) { delay(5); if(s3==0) { while(!s3);

if(s1num==2)

35

基于单片机的温室大棚自动控制系统

{ hunset1--;

write_com(0x80+11); print2(11,hunset1); if(hunset1==10) hunset1=90;

}

} }

}

if(s1num==3) { if(s2==0) { delay(5); if(s2==0) { while(!s2); if(s1num==3) {

inteset1++;

write_com(0x80+10); print2(9,inteset1); if(inteset1==25) inteset1=0;

}

}

36

基于单片机的温室大棚自动控制系统

}

if(s3==0) { delay(5); if(s3==0) { while(!s3); if(s1num==3) { inteset1--;

write_com(0x80+11); print2(9,inteset1); if(inteset1==0) inteset1=25;

}

}

}

} }

if(s4==0) { delay(5); if(s4==0)

{

37

基于单片机的温室大棚自动控制系统

s4num++; while(!s4); }

}

if(s4num!=0) {

if(s4num==1) {

print(0x80,tempset);

print(0xc0,temp); print1(0x8e,0x43); print2(9,tempset1); print1(12,0x2e); print1(13,0+0x30); print1(14,0+0x30); if(T_sign==1)

print1(0xc7,0x2d);

else

print1(0xc7,0x2b);

if(t_bai!=0)

print1(0xc8,t_bai+0x30);

else

print1(0xc8,0x20); print1(0xc0+10,0x20); print1(0xc9,t_shi+0x30);

print1(0xca,t_ge+0x30);

38

基于单片机的温室大棚自动控制系统

print1(0xcb,0x2e); print1(0xcc,t_feng+0x30); print1(0xcd,t_miao+0x30); print1(0xce,0x43);

}

if(s4num==2) {

print(0x80,hunset); print(0xc0,hun); print2(11,hunset1); print1(0x80+9,0x20); print1(0x80+10,0x20); print1(0x8d,0x25); print1(0x8e,0x20);

if(h_bai!=0) print1(0xca,h_bai+0x30);

else

print1(0xc9,0x20); print1(0xc7,0x20); print1(0xc8,0x20); print1(0xca,0x20); print1(0xcb,h_shi+0x30); print1(0xcc,h_ge+0x30); print1(0xcd,0x25); print1(0xce,0x20);

}

39

本文来源:https://www.bwwdw.com/article/j0wg.html

Top