大棚智能控制系统论文_第1页
大棚智能控制系统论文_第2页
大棚智能控制系统论文_第3页
大棚智能控制系统论文_第4页
大棚智能控制系统论文_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大棚智能控制系统【摘要】我国南方天气炎热而漫长,为了满足人们日常生活中对蔬菜的需要而大力推广大棚蔬菜的种植。随着人们生活水平的日益增长,对蔬菜的要求也较高,蔬菜在适宜的温度下才会茁壮成长。大棚智能控制系统以AT89C51单片机为控制核心,利用数字温度模块DS18B20对蔬菜大棚内的温度进行实时采集与控制,实现温室温度的自动控制。本系统由单片机小系统模块、温度采集模块、加热模块、降温模块、湿度报警模块、按键以及显示模块七个部分组成。可以通过按键设定温室的最适温度值,采集的温度和设定的温度通过LED数码管显示。当所设定的温度值比采集的温度大时,通过加热器加热,以达到设定值;反之,开启降温风扇,以快速达到降温效果。通过该系统,对蔬菜大棚内的温度进行有效、可靠地检测与控制,从而保证大棚内作物在最佳的温度条件下生长,提高质量和产量。【关键词】单片机;传感器;LED显示;键盘GreenhouseIntelligentControlSystemAbstractSouthChinahotweatherandlong,inordertomeettheneedsofdailylifeandtopromotethecultivationofvegetablesingreenhousesvegetables.Aspeople'slivingstandardsrising,higherrequirementsforvegetables,vegetableswillgrowatasuitabletemperature.GreenhouseintelligentcontrolsystemtoAT89C51controlcore,usingdigitaltemperaturemoduleDS18B20temperatureinsidethegreenhousevegetablereal-timeacquisitionandcontrol,automatictemperaturecontrolgreenhouse.Thesystemconsistsofasmallsingle-chipsystemmodule,temperatureacquisitionmodule,theheatingmodule,coolingmodule,thebuttonsandthedisplaymoduleiscomposedofsixparts.Canbesetthroughthekeygreenhouseoptimumtemperaturevalue,temperatureandsettemperaturecollectedbyLEDdigitaldisplay.Whenthesettemperaturevaluegreaterthantheacquisitionoftemperaturewhenheatedbytheheatertoreachthesetvalue;contrary,thecoolingfanisturnedontorapidlyachievethecoolingeffect.Withthissystem,thetemperatureinsidethegreenhousevegetableeffective,reliabledetectionandcontrol,inordertoensurethecropcanopytemperatureunderoptimumconditionsforgrowth,improvequalityandyield.KeywordsMicrocontrollersensorLEDdisplayKeyboard

目录第一章绪论………………………1.1调查背景及意义……………第二章设计方案………………2.1总体设计方案…………………2.2方案比较………………………2.2.1用PLC作为控制系统……………………2.2.2用单片机作为控制系统…………………第三章硬件电路设计………………3.1AT89C51简介………………3.1.1AT89C51介绍……………3.1.2AT89C51技术特点………3.1.3AT89C51引脚图…………3.1.4AT89C51引脚功能………3.2DSl8B20简介…………………3.2.1DSl8B20芯片概述………3.2.2DSl8B20功能介绍………3.2.3DSl8B20引脚…………3.3单片机辅助电路设计…………3.3.1复位电路设计……………3.3.2时钟震荡电路……………3.3.3温度采集模块……………3.3.4加热模块………………3.3.5降温模块………………3.3.6显示模块……………3.3.7湿度报警模块……………3.3.8键盘模块…………第四章软件设计……………………4.1主程序流程图…………………4.2DS18B20模块程序……………4.3传感器原理流程图……………第五章调试…………5.1硬件调试………………………5.2软件调试………………………第六章小结…………参献…………………致谢…………………附录…………………原理图………………程序…………………

第一章绪论:1.1调查背景及意义随着社会发展,人们生活水平在不断地提高,对蔬菜的需求也越来越大。中国农业的发展走向现代化农业这条道路,随着国民经济的迅速增长,农业的研究和应用技术越来越受到重视,特别是温室大棚已经成为高效农业的一个重要组成部分。现代化农业生产中的重要一环就是对农业生产环境的一些重要参数进行检测和控制。例如:空气的温度。在农业种植问题中,温室环境与生物的生长、发育、能量交换密切相关,进行环境测控是实现温室生产管理自动化、科学化的基本保证,通过对监测数据的分析,结合作物生长发育规律,控制环境条件,使作物达到优质、高产、高效的栽培目的。以蔬菜大棚为代表的现代农业设施在现代化农业生产中发挥着巨大的作用。大棚内的温度、湿度与等参数,直接关系到蔬菜和水果的生长。国外的温室设施己经发展到比较完备的程度,并形成了一定的标准,但是价格非常昂贵,缺乏与我国气候特点相适应的测控软件。而当今大多数对大棚温度、湿度的检测与控制都采用人工管理,这样不可避免的有测控精度低、劳动强度大及由于测控不及时等弊端,容易造成不可弥补的损失,结果不但大大增加了成本,浪费了人力资源,而且很难达到预期的效果。因此,为了实现高效农业生产的科学化并提高农业研究的准确性,推动我国农业的发展,必须大力发展农业设施与相应的农业工程,科学合理地调节大棚内温度,使大棚内形成有利于蔬菜、水果生长的环境,是大棚蔬菜和水果早熟、优质高效益的重要环节。目前,随着蔬菜大棚的迅速增多,人们对其性能要求也越来越高,特别是为了提高生产效率,对大棚的自动化程度要求也越来越高。由于单片机及各种电子器件性价比的迅速提高,使得这种要求变为可能。当前农业温室大棚大多是中、小规模,要在大棚内引人自动化控制系统,改变全部人工管理的方式,就要考虑系统的成本,因此,针对这种状况,结合郊区农户的需要设计了一套低成本的温度自动控制系统。

第二章设计方案:2.1总体设计方案这次设计的课题是大棚智能控制系统,将用温度传感器通过译码器传给单片机,再用显示电路显示温度,通过辅助电路的功能进行温度控制。方案的框图如下:ATAT89C51温度采集模块加热模块降温模块按键LED显示湿度报警模块2.2方案比较2.2.1用PLC作为控制系统用PLC作为控制系统结构简单,程序也不复杂,而且有些PLC是基于单片机二次开发的,功能上更加全面。PLC作为控制系统能最大限度地满足被控对象的控制要求,系统更安全可靠。但是PLC的体积大,价格高。2.2.2用单片机作为控制系统用单片机作为控制系统成本低,应用面广,资料更容易查询,系统结构简单,使用方便,实现模块化,低电压,低功耗,便于生产便携式产品,处理功能强,速度快。但是用单片机制作的主控板由于受电路板质量、布局结构、器件质量等因素的影响会导致抗干扰能力差,故障率比较高。但根据实际情况考虑,本设计决定用单片机作为控制系统第三章硬件电路设计:3.1AT89C51简介3.1.1、AT89C51介绍AT89C51是一种带4K字节

Flash存储器的低电压、高性能CMOS

8位的微处理器,通常称为单片机。AT89C2051是一种带2K字节闪存可编程和可擦除的只读存储器单片机。单片机的可擦除只读存储器能够重复擦除到1000次。由于是将多功能8位的CPU和闪烁存储器组合在一个芯片中,所以Atmel公司出产的AT89C51是一种高效微控制器,AT89C51单片机的完成,给很多嵌入式控制系统提供了一种灵活性高且价廉物美的设计方案。3.1.2、AT89C51技术特点基于MCS-51为核心处理器的结构。32个I/O引脚。2个定时、计数器。5个中断源。128B内部数据存储器。3.1.3、AT89C51引脚图图1AT89C513.1.4、AT89C51引脚功能AT89C51是典型的40管脚双列直插式集成电路芯片,其中每个引脚的功能如下所示:

(1)

信号引脚的功能介绍

输入/输出口线

P0.0~P0.7

P0口的8位双向端口线;

P1.0~P1.7

P1口的8位双向端口线;

P2.0~P2.7

P2口的8位双向端口线;

P3.0~P3.7

P3口的8位双向端口线。②

ALE

地址锁存控制信号

在系统扩展时,P0口是8位数据线和第8位地址线复用引脚,ALE用于把P0口输出的低8位地址锁存起来,以实现低8位地址和数据的隔离。由于ALE引脚以晶振1/6固定频率输出正脉冲,因此可以作为外部时钟或外部定时脉冲使用。

/PSEN

外部程序存储器读选通信号

当读取外部ROM时,/PSEN有效(为0)来实现对外部ROM单元的读取。

/EA访问程序存储控制信号

当/EA信号为0时,对ROM的读操作限制在外部程序存储器;而当/EA信号为1的时候,则对于ROM的读操作是从内部程序存储器开始,并可以延续至外部程序存储器。

RST

复位信号

当输入的复位信号延续2个机器周期以上高电平时即为有效,用以完成单片机的复位初始化操作。

XTAL1和XTAL2

外接晶体引线端

当使用芯片内部时钟时,XYAL1和XTAL2引线端用于外接石英晶体和微调电容。当使用外部时钟时,用于连接外部时钟脉冲信号。

VSS

接地

VCC

电源

综上所述就是AT89C51单片机芯片的40条引脚的定义和简单的解释。

(2)

P3口的第二功能

第一功能第二功能信号名称P3.0RXD串行数据接收P3.1TXD串行数据发送P3.2/INT0外部中断0的申请P3.3/INT1外部中断1的申请P3.4T0定时器/计数器0计数输入P3.5T1定时器/计数器1计数输入P3.6/WR外部RAM的写通道P3.7/RD外部RAM的读通道表1P3口第二功能

3.2DSl8B20简介3.2.1DS18B20芯片概述

DSl8B20是美国DALLAS公司生产的单总线数字温度传感器,它具有微型化、低功耗、高性能、抗干扰能力强、易于与微处理器接口等优点,适合于各种温度测控系统。

该器件将半导体温敏器件、A/D转换器、存储器等做在一个很小的集成电路芯片上,传感器直接输出的就是温度信号数字值。信号传输采用两芯(或三芯)电缆构成的单总线结构。一条单总线上可以挂接若干个数字温度传感器,每个传感器有一个唯一的地址编码。微控制器通过对器件的寻址,就可以读取某一个传感器的温度值,从而简化了信号采集系统的电路结构。图2DS18B20实图3.2.2DSl8B20功能特点

采用单总线技术,与单片机通信只要一根I/O线,在一根线上挂接多个DSl8B20。

每只DSl8B20具有一个独有的、不可修改的64位序列号,根据序列号访问对应的器件。

低压供电,电源范围从3~5V,可以本地供电,也可以直接从数据线上窃取电源(寄生式供电)。

测温范围为-55℃~+125℃,在-10℃~85℃范围内误差为±0.5可编程数据为9~12位,转换12位温度时间为750ms(最大)。

用户可自设定报警上下限温度。

报警搜索命令可识别和寻址哪个器件的温度超出预定值。

DSl8B20的分辨率可由用户通过E2PROM设置为9~12位。

DSl8B20可将检测到温度值直接转化成数字量,并通过串行通信的方式与主控制器进行数据通信。3.2.3DSl8B20的引脚

DSl8B20采用3脚(或8脚)封装。其中,VCC和GND是电源和接地引脚,DQ是数据线引脚。DSl8B20以串行通信的方式与微控制器进行数据通信,读出或写入数据仅需要一根I/O接口线。DQ为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输入端(在寄生电源接线方式时接地)。图3DS18B20管脚排列

3.3单片机辅助电路设计3.3.1复位电路的设计单片机的复位就和重新启动计算机是一样的概念。任何单片机在工作之前都要有个复位的过程,复位对于单片机来说就是程序还没有开始执行,是在做准备工作。复位电路通常有:上电复位电路和按键复位电路。上电复位电路是利用电容充电来实现复位,在接电的瞬间,RST端的电位与VCC一样,随着充电电流减少,RST电位慢慢下降。只要保证RST为高电平的时间大于两个机器周期,就能正常的复位。按键复位电路是在复位电路中设计按键开关触发复位电平,控制单片机复位。此时电源VCC经两个电阻分压,在RST端产生一个复位高电平。图4按键复位电路3.3.2时钟震荡电路振荡电路对于单片机来说是非常重要的,没有晶振就没有时钟周期,没有时钟周期,就无法执行程序代码,单片机就无法工作。单片机工作时是一条一条地从ROM中取指令,然后一步一步地执行。电路图如下图5时钟震荡电路3.3.3温度采集模块温度是作物生长发育最重要的因素之一。直接影响植物光合作用、呼吸作用、细胞壁渗透性、水分和矿物质养分的吸收、蒸腾、酶活性和蛋白质凝聚等。我选用DSl8B20作为温度传感器,因为这个温度传感器功能单一(仅测量温度)、测量误差小、响应速度和传输速度快、传输距离远、体积小、功耗低等,适合远距离测温、控温,不需要进行非线性校准。外围电路简单,是目前在国内外应用最为普遍的一种集成温度传感器。3.3.4加热模块大棚里的温度不会一成不变,当天气寒冷时,温度也会随之降低,过低的温度也不利于植物的生长。因此需要外加的升温装置,用热风机加热空气保持室内温度。热风机的工作原理就是当环境温度低于设定值时,热风机工作。燃烧器将柴油高度雾化后,产生高温气体,通过高效率的换热器,把由风机引入的空气充分加热,产生的高温热空气通过出风口送入室内各处,同时换热后的低温烟气通过烟囱排出室外。

3.3.5降温模块夏天的温度都很高,如果不采取降温措施就会影响植物的生长,因此降温设施就很好的解决了这一担忧。我采用了两种降温的方法,一种是自然通风,一种是机械通风。自然通风就是将大棚预留的天窗打开,自然通风在冬天效果最好,因为此时内外空气的温差最大。由于空气温差,可使屋顶排气孔成为绝佳的出气口,侧面排气孔则成为绝佳的进气口。当天气很热时,内外的空气温差就很小,甚至不存在。事实上,当最需要通风的时候往往是自然通风最小的时候。若通风是外界风所引起,则较温暖的地区,使用自然通风会有较佳的效果。机械通风就是通过降温风扇来降温,将室内的热气强行排出。这个方案需要维持适当的气密性,才能使空气由进气口进,由排气风机出;但是也因为气密而容易有热累积的现象,是以在设计上需注意通风量的大小,至少其降温效果要优于自然通风,即要比在同一地点采用侧窗配合天窗的温室的降温效果要好。3.3.6显示电路LCD显示电路用LCD1602字符型液晶显示模块与单片机连接进行数值显示。1602LCD采用标准14脚或16脚接口,RS为寄存器选择器,RS为高电平时选择数据寄存器,为低电平时选择指令寄存器。R/W为读写信号线,为高电平时进行读操作,为低电平时进行写操作,当RS和R/W同为低电平时可以写入指令或者显示地址;当RS为低电平时,R/W为高电平时可以读忙信号;当RS为高电平,R/W为低电平时可以写入数据。E为使能端,当E端由高电平跳变为低电平时,液晶模块执行命令。D0~D7为8位双向数据线。3.3.7湿度报警模块空气中的湿度也是影响植物生长的因素,在设计中通过湿度传感器检测湿度,当湿度过高或过低时通过报警电路报警。蜂鸣器有以下两种:1、压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。有的压电式蜂鸣器外壳上还装有发光二极管。多谐振荡器由晶体管或集成电路构成。当接通电源后,多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。

2、电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。图7蜂鸣器电路设计图3.3.8键盘模块键盘与单片机连在一起,一开始在键盘上输入一个设定值,然后在与检测到的数值进行比较。键盘采用的是74922芯片,74922芯片是专用编码键盘接口芯片

,当按下某一按键时

,该芯片能自动给出相应的编码信息

,并可自动消除抖动

,从而可使设计者免除一部分软件编程。

第四章软件设计4.1系统的主程序设计

4.2DS18B20模块程序

4.3传感器原理流程图开始开始温湿度采集温湿度转换数据采集是否符合报警输出是否

第五章调试5.1硬件调试硬件电路板分模块焊接,每一个模块焊接好了以后,先检查是否错焊、漏焊、虚焊,元器件有没有接错、接反。然后写入简单的程序仿真,看效果。这样依次焊接、检测每一个模块,最后整个电路板完成。将编好的完整程序用仿真器连接电路板进行整体仿真,调试检测完整的电路板,看是否能全部实现功能。

在本次电路板设计中,出现最重要的问题是板子焊完后,数码管显示的数字不对,是看不懂的,经导师指导后得知,原来是写程序时没有注意数码管是共阴极还是共阳极,导致数码管显示的乱码。在焊接电路板时,由于不太细心常常有地方虚焊或连焊,导致电路一开始不好使。但是经过排查,最后都改正过来了。

在焊接的过程中,自己也常常马虎,将引脚焊错位置的情况时有发生,经过这次实践,我觉得自己的动手能力提高了许多。5.2软件调试在对Keil

C软件的使用时不太熟悉,一是因为不经常使用,二是因为再次使用时时间有点久,所以导致在软件上也浪费了很长时间。因为用的是DHT11数字传感器,在编程过程中需要对所测得温度进行处理,而且需要给定一个温度范围,建立一个温度与电机转速的数学模型,经过反复的计算、实验才实现。

采用proteus软件对程序和硬件电路进行仿真,可是在仿真过程中,独立按键总是不灵敏,这需要对延迟时间进行调整,而程序中设置的延迟时间总是不能够很符合实际操作,所以在这方面浪费了大量的时间进行反复的操作和实验。在程序编写的过程中,也暴露了自己很多的不足,一开始无从下手,在咨询过老师和同学后有点思绪了。

程序#include

<reg51.h>

#include

<intrins.h>

#define

LCD_DB

P2

sbit

DQ

=

P1^0;

sbit

BUZZER

=

P1^1;

sbit

PWM

=

P1^2;

sbit

LCD_RS

=

P1^4;sbit

LCD_RW

=

P1^5;

sbit

LCD_E

=

P1^6;sbit

HEAT

=

P1^7;

void

initial(void);

void

read_DHT11(void);

void

LCD_write_command(unsigned

char

com);

void

LCD_display_char(unsigned

char

x,

unsigned

char

y,

unsigned

char

dat);unsigned

char

read_DHT11_char(void);

void

control_temperature_humidity(void);

void

delay_xms(unsigned

int

time_xms);

void

delay_x10us(unsigned

int

time_x10us);

unsigned

char

stop_system

=

0;

unsigned

char

lineOne[]

=

"TS(0-50):

C";

unsigned

char

lineTwo[]

=

"HS(20-90):

%RH";

unsigned

int

T0_number

=

0,

T1_number,

PWM_width_H;

unsigned

char

temperature_ten,

temperature_one,

humidity_ten,

humidity_one;

unsigned

char

temperature_H,

temperature_L,

humidity_H,

humidity_L,

checkData;

void

initial(void)

{

unsigned

char

i,

j;

TMOD

=

0x11;

//定时器0工作方式1,16位计数器;定时器1工作方式1,16位计数器

TH1

=

0xFC;

//定时器1溢出周期1ms,延时

TH1

=

0x66;

TH0

=

0xFC;

//定时器0中断周期1ms,PWM

TL0

=

0x66;

EA

=

1;

ET1

=

1;

ET0

=

1;

EX0

=

1;

IT1

=

1;

TR0

=

1;

LCD_write_command(0x38);

//设置8位格式,2行,5x7

LCD_write_command(0x0c);

//设置整体显示,关闭光标,且不闪烁

LCD_write_command(0x06);

//设置输入方式,增量不移位

LCD_write_command(0x01);

//清屏

for

(i

=

0;

i

<

16;

i++)

{

LCD_display_char(i,

1,

lineOne[i]);

}

for

(j

=

0;

j

<

16;

j++)

{

LCD_display_char(j,

2,

lineTwo[j]);

}

LCD_display_char(14,

1,

0xDF);

//显示

}

void

read_DHT11(void)

{

DQ

=

0;

delay_xms(18);

DQ

=

1;

delay_x10us(2);

if

(DQ

==

0)

{

while

(DQ

==

0);

while

(DQ

==

1);

humidity_H

=

read_DHT11_char();

humidity_L

=

read_DHT11_char();

temperature_H

=

read_DHT11_char();

temperature_L

=

read_DHT11_char();

}

}

unsigned

char

read_DHT11_char(void)

{

unsigned

char

i,

temp_one,

temp_two;

for

(i

=

0;

i

<

8;

i++)

{

while

(DQ

==

0);

delay_x10us(3);

if

(DQ

==

0)

{

temp_one

=

0;

}

else

{

temp_one

=

1;

}

temp_two

<<=

1;

temp_two

|=

temp_one;

while(DQ

==

1);

}

return

temp_two;

}

void

LCD_write_command(unsigned

char

com)

{

LCD_DB

=

com;

LCD_RS

=

0;

LCD_RW

=

0;

LCD_E

=

1;

delay_xms(1);

LCD_E

=

0;

delay_xms(5);

}

void

LCD_display_char(unsigned

char

x,

unsigned

char

y,

unsigned

char

dat)

{

if

(y

==

1)

{

LCD_write_command(0x80

+

x);

}

else

{

LCD_write_command(0xc0

+

x);

}

LCD_DB

=

dat;

LCD_RS

=

1;

LCD_RW

=

0;

LCD_E

=

1;

delay_xms(1);

LCD_E

=

0;

delay_xms(5);

}

void

LCD_display_DHT11(void)

{temperature_ten

=

temperature_H

/

10

+

0x30;

temperature_one

=

temperature_H

%

10

+

0x30;

humidity_ten

=

humidity_H

/

10

+

0x30;

humidity_one

=

humidity_H

%

10

+

0x30;

LCD_display_char(12,

1,

temperature_ten);

LCD_display_char(13,

1,

te

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论