蔬菜大棚智能温度控制系统设计.docx

上传人:b****6 文档编号:4015454 上传时间:2022-11-27 格式:DOCX 页数:37 大小:1.98MB
下载 相关 举报
蔬菜大棚智能温度控制系统设计.docx_第1页
第1页 / 共37页
蔬菜大棚智能温度控制系统设计.docx_第2页
第2页 / 共37页
蔬菜大棚智能温度控制系统设计.docx_第3页
第3页 / 共37页
蔬菜大棚智能温度控制系统设计.docx_第4页
第4页 / 共37页
蔬菜大棚智能温度控制系统设计.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

蔬菜大棚智能温度控制系统设计.docx

《蔬菜大棚智能温度控制系统设计.docx》由会员分享,可在线阅读,更多相关《蔬菜大棚智能温度控制系统设计.docx(37页珍藏版)》请在冰豆网上搜索。

蔬菜大棚智能温度控制系统设计.docx

蔬菜大棚智能温度控制系统设计

摘要

传统的农业生产模式已经不能很好地适应现代化的快速发展,现代化农业是中国农业发展的必经之路。

随着我国经济的快速增长,农业的研究和应用技术越来越受到重视,尤其是温室大棚已经成为高效农业的一个重要组成部分。

现代化农业生产中的重要一环就是对农业生产环境的一些重要参数进行检测和控制。

本文中研究的蔬菜大棚智能温度控制系统主要由AT89C51单片机、并行口扩展芯片8255、74LS244驱动器、A\D转换器0809、温度传感器DS1820、继电器、LED显示器和报警电路等构成,实现对蔬菜大棚温度的检测与控制,解决了温室大棚人工控制的温度误差,且费时费力、效率低的问题。

该系统运行可靠,成本低。

系统通过温室内的温度参量的采集,并根据获得参数实现对温度的自动调节,达到了温室大棚自动控制的目的。

从而有效地提高了蔬菜的产量并满足人们在不同季节对蔬菜的需求,带来很好的经济效益和社会效益。

关键词:

AT89C51单片机、温度传感器、A\D转换器、LED数码管

 

Abstract

Thetraditionalagriculturalproductionmodelhavecannotverywelltoadapttotherapiddevelopmentofmodern,modernagricultureagriculturaldevelopmentinChinaistheonlyway.WithChina'srapideconomicgrowth,agriculturalresearchandapplicationtechnologyismoreandmoreattention,especiallygreenhousecanopyhasbecometheefficientagricultureisanimportantpart.Modernagriculturalproductionisanimportantpartofagriculturalproductionenvironmenttosomeimportantparameterstestingandcontrol.InthispapertheresearchvegetablescanopyintelligenttemperaturecontrolsystemmainlybytheAT89C51single-chipmicrocomputer,parallelportexpansionchip8255,74LS244drive,A\Dconverters0809,thetemperaturesensorDS1820,relays,LEDdisplayandalarmcircuitstructure,toachievethetemperatureoftheawningvegetablesdetectionandcontrol,solvethetrellisartificialcontroltemperatureofgreenhouseerror,andtime-consuming,andtheproblemoflowefficiency.Thesystemrunreliably,thecostislow.Thesystemthroughthegreenhousetemperaturewithintheparametersofthecollection,andaccordingtogettothetemperatureparametersrealizeautomaticadjustment,toshedthepurposeofgreenhouseautomaticcontrol.Toimprovetheproductionofvegetablesandsatisfypeopleindifferentseasonforvegetabledemand,bringgoodeconomicbenefitsandsocialbenefit.

KeywordsSingle-chipmicrocomputertemperaturetransmitterA/DconverterLED

 

1绪论

我国北方冬季寒冷而漫长,大力推广蔬菜大棚种植蔬菜能够更好地满足人民生活水平日益提高的需要。

冬季蔬菜大棚管理最重要的一个因素就是环境温度的控制。

传统的温度测量采用水银温度计和人为方法,工作效率十分低下。

伴随科学技术的发展,人们慢慢采用灵活性高、运算能力强、可靠性能好的开发手段及具有数据统计分析等功能的温度测控系统所代替,获得了一定的经济效益。

随着我国人民经济的快速增长,现代农业得到很好的发展,受控农业的研究和应用技术越来越受到重视,特别是温室工程已成为工厂化高效农业的一个重要组成部分。

大棚温度的控制对蔬菜生产起到非常重要的作用。

只有在适宜的生长环境下蔬菜才能充分发挥其高产潜力,才能更好地满足现代人们物质生活的需求。

随着单片机技术和传感器应用的快速发展,自动检测控制领域发生了惊人的改变,大棚温室环境智能监测与控制方面的探索有了巨大的进展,并且将会以其的良好的性价比,慢慢取代落后的温度检测和控制方法.但是,目前应用在蔬菜大棚温室的温度检测控制系统大多采取模拟温度传感器、模拟开关、模数转换器及单片机等组成的传输系统。

这种温度度采集系统需要在温室大棚内设置许多测量温度的电线,才能把蔬菜大棚内的实际温度通过温度传感器的信号传送到采集线路上,这种温度采集系统的安装和拆卸比较麻烦,价格也很高。

同时在线路上传送的信号,容易受到外界的干扰并且会出现信号改变,测量误差也非常大。

为了避免这些不足之处,本文是一种基于单片机和其他器件连用的温度测量和控制技术,这是根据现实生活中人们遇到的问题进行了改进,提出了一种新的设计方案,基于单片机的智能温度控制系统。

本文介绍的温湿度测控系统就是基于单片机技术及其器件组建的。

该系统能够对大棚内的温度进行采集,利用温度传感器将温室大棚内温度的变化,变换成数字量,其值由单片机处理,最后由单片机去控制液晶显示器,显示温室大棚内的实际温湿度,同时通过与预设量比较,对大棚内的温度进行自动调节,如果超过我们预先设定的温度限制,温度报警模块将进行报警。

这种温度测量和控制方法实现了温度的瞬时测量、显示以及温度控制。

该系统测量温度较为准确,具有良好的抗干扰能力,不需要有在线的网络支持,安装方便可行,价格经济实惠,并且便于维修。

这种蔬菜大棚的温度测控系统不仅应用于大棚蔬菜的温度控制,也可应用于大棚其他农作物温度的控制,是一种实用性很好经济实惠的选择方案,可用来大力推广,以便促进不同季节农作物的生长,从而提高农作物在不同季节的产量,以很好地满足人民在不同季节对蔬菜等其他农作物的需求。

2蔬菜大棚的方案选择

2.1系统整体框图

图1系统总体框图

2.2系统工作原理

该温度测控系统的工作原理就是利用AT89C51单片机编程和其他铺助设备进行大棚温度的控制,使智能温度传感器DS18B20正常工作,去检测蔬菜大棚里的瞬时温度,通过A/D0809转换,并由LED显示器显示出此时蔬菜大棚的温度值。

首先通过4*4键盘设定温度范围,如果通过温度传感器采集此时的温度值高于设定的上限温度值,系统将通过报警设备发出报警,并同时经过单片机开启制冷设备,把大棚内的温度降下来,当大棚里的温度下降到一定的限度时,也就是低于设定的温度上限时,单片机则会马上关闭制冷设备,使温度控制系统停止工作。

当温度传感器采集的温度值低于下限温度值时,报警系统又发出报警,同时单片机起动加热设备,使蔬菜大棚里的温度上升,当大棚里的温度上升到一定的程度时,即高于下限温度值时,单片机立即关闭加热设备,使温度控制系统停止工作,从而使蔬菜大棚里的温度值维持在设定的温度范围内。

3蔬菜大棚系统的硬件设计

3.1电路原理图

图2电路原理图

3.2工作原理

本温度计采用一种具有智能温度检测的DS18B20作为检测元件。

该元件测温范围为-55~125度,最高分辨率为0.0625度,完全满足本设计中分辨率为0.1度的要求。

考虑到下载程序的方便和一些条件的限制我选了AT89C52这款单片机作为控制器。

显示电路方面,我选择四位共阳LED数码管作为显示电路。

而鉴于单片机驱动力有限,所以P0,P2口均加一上拉排阻以提升其驱动力。

P0,P2口均有一锁存器74HC573以使数据控制方便。

报警方面,当温度超过警界最高温度时,响报警音乐,红色发光二极管闪烁;当温度低于最低温度报警时,响报警音乐,黄色发光二级管闪烁。

因为所选单片机可擦写次数达万次以上,为使电路的简化,其温度报警值已预设在程序中,可以通过修改程序中的预设值改变报警温度。

3.3各部分单元电路的设计及器件选择

3.3.1温度传感器电路介绍

图3AT89C51与DS18B20连接图

DS18B20具有一线总线独特而且经济的特点,使用户可轻松地组建传感器,为网络测量系统的构建引入全新概念。

DS18B20首先在蔬菜大棚里采集温度,然后把温度直接传递的AT89C51单片机中,直接通过LED温度显示器显示出来,并通过单片机内部的分析,判断蔬菜大棚里的现实温度是否与设定的温度一致,如果在设定的温度范围内,则正常显示;如果不在给定温度范围内,则报警系统报警。

3.3.2温度传感器的选择

用于测温的传感器种类繁多,但大多是模拟传感器,在以往构建大棚的温度采集系统时,由于传感器输送的是模拟信号,系统中要求接入模数转换器,因而增加了系统的麻烦程度并且价格也变得昂贵些。

基于DS18B20的智能温度控制器,它的硬件设计比较简单,不需要校准,就能够提供工业级的测量范围和较高的准确度。

DS18B20数字温度传感器为单总线器件,将温度传感器与模数转换器集成在一块比较小的芯片上,它的结构比较简单、功能消耗也低、体积也很小,不需要外接其他元器件、用户个人可以自己设定预警的上下限温度等特点,其主要功能特性如下:

1)测量温度范围在-55℃~125℃范围内,精度比较高,为0.5℃;

2)单总线接口,采用一根I/O数据线即可完成温度转换的读写时间片的操作;

3)可编程设定9~12位的A/D转换精度,对应的温度分辨率分别是0.5℃、0.25℃、0.12℃

4)可以通过数据线供电;

5)每次将温度转换成数字量需200ms;

6)用9bit数字量来表示温度;

7)可以定义一个不变化的温度设置为报警温度;

8)有PR35T和SSOP两种封装型式。

基于以上各种优点所以本系统选择DS1820传感器。

3.3.3DS1820简介及性能特点

图4DS1820测温原理图

图中低温度系数晶振的振荡频率受温度影响比较小,用来产生的固定频率脉冲信号传送给计数器1。

高温度系数晶振随温度的变化其振荡率也会发生较为明显的变化,它产生的脉冲信号作为计数器2的脉冲输入。

计数器1和温度寄存器被预置在-55℃所对应的一个基数值。

计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。

图2中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。

在正常测温情况下,DS1820的测温分辩率为0.5℃以9位数据格式表示,其中它的最低有效位(LSB)由比较器进行0.25℃比较,当计数器1中的余值转化成温度后小于0.25℃时,清除温度寄存器的最低位(LSB),当计数器1中的余值转化成温度后高于0.25℃,置位温度寄存器的最低位(LSB)。

DS1820使用中注意事项:

DS1820虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题:

(1)较小的硬件开销需要相对复杂的软件进行补偿,由于DS18B20与单片机之间采用串行数据传送,因此,在对DS18B20进行读写编程时,必须严格要求读写时序,否则它将无法读取测量温度结果。

(2)在DS1820的有关资料中均没有提到单总线上所挂DS1820数量问题,容易让人误认为它可以挂任意多个DS1820,但在实际应用中并非如此。

当单总线上所挂DS1820超过8个时,就需要解决微处理器的总线驱动问题,这一点需要我们在进行多点测温系统的设计时要多加注意。

(3)在连接DS18B20的总线电缆时是有长度限制的。

试验中,当采用普通信号电缆传输距离大于50m时,读取的温度测量数据将会出现错误。

当把总线电缆变为双绞线带屏蔽电缆时,它的正常通讯距离会达到150m,当采用每米绞合次数更多的双绞线带来屏蔽电缆时,它的正常通讯距离将会进一步加长。

这种情况主要是由总线分布电容使信号波形产生畸变造成的。

因此,在用DS1820进行远距离温度测量系统设计时要充分考虑总线分布电容和阻抗匹配的问题。

(4)在DS1820测温程序设计中,向DS1820发出温度转换命令后,程序总要等待DS18B20的返回信号,一旦某个DS1820接触不良或断线时,在单片机读该温度传感器DS18B20时,它会出现返回信号为零,因此程序会进入死循环。

这一点在进行DS18B20硬件之间连接和系统软件设计时必须给予一定的重视。

温度测量电缆线建议使用屏蔽4芯双绞线,其中一对线接地线与信号线,另一组接VCC和地线,屏蔽层在源端单点接地。

 

3.3.4显示电路

图5显示电路图

单片机的接口数量少,驱动能力不强,必须扩展一定的硬件电路,才能满足显示屏的需要。

系统硬件部分电路大致上可以分成稳压电源、单片机系统及外围电路、列驱动器电路、行驱动器电路和LED显示屏电路五部分。

3.3.5系统报警电路

图6报警电路图

由温度传感器将检测到的温度信息传递到单片机中,经单片机处理分析,如果蔬菜大棚内温度在设定范围内,则正常显示。

如果超过设定的温度范围,则报警系统开始报警。

3.3.6时钟电路

AT89C51芯片内部有一个高增益反相放大器,用于构成振荡器。

反向放大器的输入端为XTAL1,输出端为XTAL2。

在XTAL1和XTAL2两端跨接由石英晶体及两个电容构成的自激振荡器,由图3-1所示。

电容器C1和C2通常都取30pF左右,选用不同的电容量对振荡频率有微作用。

但石英晶器本身的标定频率才是单片机振荡频率的决定因素。

其振荡频率范围是1~12MHz.

图7晶振电路

本系统选用内部时钟方式,石英振荡频率选用12MHz。

3.3.7AT89C51的复位电路

AT89C51单片机通常采用上电动复位和开关手动复位两种方式。

本设计采用上电复位电路,所谓上电复位,就是单片机只要一上电,便自动地进入复位状态。

在通电瞬间,电容C通过电阻R充电,RST端出现正脉冲,用以复位。

图8复位电路

3.3.8键盘扫描

本系统设有16个键,分别是启动,0-9十个数字键,增加键,减少键,设定键,确认键,另一个未设定功能。

由P1口做键盘接口,采用4*4矩阵式。

通过键盘进行参数设定,并启动系统工作。

在本键盘中,采用P1口,8个中,4个口接行线,另4个口接列线,键盘连接方式如图:

 

图9键盘扫描电路图

在键盘上按下键时,相关的键码将通过A、B、C、D等口线传递给AT89C51单片机。

4系统软件设计

4.1系统主程序流程图

 

N

 

Y

是是

 

 

图10系统主程序流程图

4.1.1系统主程序

#include“reg52.h”

#include“intrins.h”//_nop_();延时函数用

#include“math.h”

#definedisdataP0//段码输出口

#definediscanP2//扫描口

#defineucharunsignedchar

#defineunitunsignedint

sbitduqu=P3^6;//温度输入口

sbitdian=P0^7;//LED小数点控制

sibtbeep=P1^6//蜂鸣器

sbitkey0=P3^0

sbitkey1=P3^1

sbitkey02=P3^2

sbitkey03=P3^3

sbitled0=P1^0;//红灯

sbitled1=P1^1;//绿灯

sbitled2=P1^2;//黄灯

unith;

unittemp;

ucharr;

charhigh=38,low=10;

ucharsign;

ucharst=1;

ucharti;

ucharpp;

ucharee;

ucharnn;

//*******************温度小数部分用查表发******************************//

ucharcodeditab[16]={0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09};

ucharcodedis_7[15]={0xx3f,0x06,0x56,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x67,0x00,0x40,0x76,0x38,0x39};

//共阴LED段码表“0”“1”“2”“3”“4”“5”“6”“7”“8”“9”“不亮”“—”“H”“L”“C”

//

ucharcodescan_con[4]={0x70,0xb0,0xd0,0xe0};//列扫描控制字

uchardatatemp_data[2]={0x00,0x00};//读出温度暂放

uchardatadisplay[5]={0x00,0x00,0x00,0x00,0x00};

//显示单元数据,共4个数据和一个与运算暂用

/***********************//us延时函数****************************/

voiddelay(uintt)

{for(;t>0;t--)

}

/*********************显示扫描函数******************************/

Voidscan()

{chark;

for(k=0;k<4;k++)//4位LED扫描控制

{discan=scan_con[k];//位选

disdata=dis_7[display[k]];//数据显示

if(k==1){dian=1;}//小数点显示

delay(200);

}

}

/**********************DS18B20复位函数********************/

ow_reset(void)

{charpresence=1;

while(presence)

{

while(precsence)

{duqu=1;_nop_();_nop_();//从高拉到底

duqu=0;

delay(50);//550us

duqu=1;

delay(6);//660us

presence=duqu;//presence=0复位成功,继续下一步

}

delay(45);//延时500us

presence=~duqu;

}

duqu=1;//拉高点平

/*****************************DS18B20写命令函数*******************/

//向1_WIRE总线上写一个字节

voidwrite_byte(ucharval)

{uchari;

for(i=8;i>0;i--)

{duqu=1;_nop_();_nop_();//从高拉到底

duqu=0;_nop_();_nop_();_nop_();_nop_();//5us

duqu=val&0x01;//6us

val=val/2;//右移1位

duqu=1;

delay

(1);

}

/*********************DS18B20读1字节函数****************/

//从总线上取1个字节//

ucharread_byte(void)

{uchari;

ucharvalue=0;

for(i=8;i>0;i--)

{duqu=1;_nop_();_nop_();

value>>=1;

duqu=0;_nop_();_nop_();-nop_();_nop_();//4us

duqu=1;_nop_();_nop_();_nop_();_nop_();//4us

if(duqu)value=0x80;

delay(6);//66us

}

duqu=1;

return(value);

}

/*************************读出温度函数**************************/

unitread_temp()

{

ow_reset();//总线复位

delay(200);

write_byte(0xcc);//发命令

write_byte(0x44);//发转换命令

ow_reset();

delay

(1);

write_byte(oxcc);//发命令

write_byte(0xbe);

temp_data[0]=read_byte();//读温度值的低字节

temp_data[1]=read_byte();//读温度值的高字节

temp=temp_data[1];

temp<<=8;

temp=temp/temp_data[0];//两字节合成一个整形变量

returntemp;//返回温度值

}

/*************************温度数据处理函数************************/

//二进制高字节的低半字节的高板字节组成一个字节,这个字节的二进制转换为十进制

//后,就是温度值的百、十、个位值,而剩下的低字节的半字节转化成十进制后,就是//温度值的小数部分。

/******************************************************************/

work_temp(uinttem)

{

ucharn=0;

nn=0;

if(tem>6348)//温度值正负判断

{tem=65536-tem;n=1;nn=1;}//负温度求补码,标志位置1

display[4]=tem&0x0f;//取小数部分的值

display[0]=ditab[display[4]];//存入小数部分显示值

display[4]=tem>>4;//取中间八位,即整数部分的值

display[3]=display[4]/100

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 实习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1