蔬菜大棚温度测控系统的设计方案.docx
《蔬菜大棚温度测控系统的设计方案.docx》由会员分享,可在线阅读,更多相关《蔬菜大棚温度测控系统的设计方案.docx(47页珍藏版)》请在冰豆网上搜索。
![蔬菜大棚温度测控系统的设计方案.docx](https://file1.bdocx.com/fileroot1/2023-1/30/302fb412-ddfd-49c4-af5b-af5ac14a4e6d/302fb412-ddfd-49c4-af5b-af5ac14a4e6d1.gif)
蔬菜大棚温度测控系统的设计方案
蔬菜大棚温度测控系统的设计方案
第1章 综 述
1.1 现状分析
随着人类的进步和发展,在人类的生存的环境中,温度、湿度、扮演着越来越重要的角色。
无论你生活在何处、从事什么工作,温度都无时无刻不在影响着我们身边以及周围的一切。
自古以来我国都是一个农业大国,加之庞大的人口数量,造成了我国的农耕土地资源“僧多粥少”的局面。
因此,要改变这种局面,只靠增加耕地面积是不可能实现的,因此我们要另辟蹊径,想办法来提高单位亩产量。
温室大棚技术就是其中一个好的办法。
温室大棚就是建立一个模拟适合生物生长的气候条件,创造一个人工气象环境,来消除温度对生物生长的约束。
而且,温室大棚能够改善环境对植物生长的约束,能使不同的农作物在不适合生长的季节产出,使农作物不再受气候的影响,部分或完全摆脱了农作物对自然条件的依赖。
由于温室大棚能带来可观的经济效益,所以温室大棚技术越来越普及,而且已成为农民增收的主要手段。
但是有些自然因素带来的影响是目前人们所不能控制的,所以其真正的难题在于夏季的降温问题和冬季的棚温度过低的问题给植物带来的减产问题,这样的气候条件对室植物的生长很不利。
夏季由于强烈的太阳辐射和温室效应,使室的温度高达40摄氏度以上,植物生长发育停止,到制作物枯萎而死。
冬季由于日光强度不够和日照时间短,使温室晚上的温度低于植物的正常生长所需,会阻碍农作物的生长。
因此,目前的当务之急就是解决温度问题。
1.2 课题的提出
近年来,随着大棚技术的普及应用,温室已经成为了设施农业的重要组成部分,是我国农业的发展重点之一,国外温室种植业的实践经验表明,提高温室的自动控制和管理水平可充分发挥温室农业的高效性。
同时,随着单片机和传感技术的迅速发展,自动检测领域发生了日新月异的变化,温室环境自动控制方面的研究有了突飞猛进的发展,并且必将以其优越的性价比,逐步取代传统的温度控制措施,但是,目前应用于温室大棚的温度检测系统大多采用模拟传感器、多路模拟开关、A/D转换器及单片机等组成的传输系统。
这种温度采集系统需要在大棚布置大量的测温电缆,才能把现场的传感器信号送到采集卡上,安装和拆卸繁杂,成本也高。
同时线路上传送的是模拟信号,易受干扰和损耗,测量误差也比较大。
为了克服这些缺点,本文参考了一种基于单片机并采用数字化单总线技术的温度测控系统应用于温室大棚的设计方案,根据使用者提出的一些问题进行了改进,提出了一种新的设计方案,本次设计主要对当今农业温室的研究热点之一――智能温室控制系统进行研究,设计了一套能实时控制大棚温度的测控系统。
通过对该系统的自动调节作用,使温室中环境参数处于事先确定的最佳值,为农作物提供良好的生长环境。
1.3 系统特点
(1)温度检测围大、精度高:
上下限检测值可达到-55。
C~+125.C(-67。
F~+257。
F),精度可达正负0.5摄氏度。
(2)采用STC90C51单片机,成本低。
(3)超低功耗,更健康、更安全。
(4)布线简单,安装和拆卸方便,容易操作。
1.4开发平台及工具介绍
KeilμVision系列是一个非常优秀的编译器,得到广大单片机设计者的广泛使用。
其主要特点如下:
具有Windows风格的可视化操作界面,界面友好,使用极为方便。
支持汇编语言、C51语言及混合编程等多种方式的单片机设计。
集成了非常全面的单片机支持,能够完成51系列单片机及和51系列兼容的绝大部分类型单片机的程序设计和仿真。
集成了丰富的库函数,以及完善的编译工具。
提供了并口、串口、A/D、D/A、定时器/计数器及中断等资源的硬件仿真能力,能够帮助用户模拟实际硬件的执行效果。
可以与多款外部仿真器联合使用,提供了强大的在线仿真调试能力。
嵌RTX-51Tiny和RTX-51FULL核,提供了简单而强大的实时多任务操作系统支持。
在一个开发界面中支持多个项目的程序设计。
支持多级代码优化,最大限度地帮助用户精简代码体积。
由于KeilμVision具有最广泛的用户群,因此相应的代码资源非常丰富,读者可以轻松地找到各类编程资源以加速学习和开发过程。
最新的ARM开发工具RealVIEWMDK依然采用KeilμVision3的开发环境和界面,给用户的升级带来极大的方便。
第2章 系统硬件设计
2.1系统总体组成及构成框图
此次设计由温度检测模块、控制单元、显示单元和外围执行的升降温装置组成。
1.温度检测模块:
负责检测大棚的实时温度。
2.控制单元:
主要负责对所有数据的读取和分析,并执行各项的管理功能。
3.显示单元:
主要负责显示温度值和设置的最适温度围。
4.外围执行机构:
执行控制单元所传输过来的命令。
其系统框图如下图2.1所示:
降温模块
升温模块
图2.1系统框图
2.2系统整体硬件电路图
系统的硬件电路图如图2.2所示。
主要由主机单元、显示单元、检测单元和控制单元组成:
图2.2系统整体电路图
2.3系统工作原理
该设计主要由DS18B20数字温度传感器负责监测温室大棚的温度,并将温度反馈给STC89C51单片机(MPU),有LCD1602液晶显示屏显示出当前的温度,由单片机根据当前的温度做出相应的操作,当监测到的温度值大于设定的最大值时,系统将自动通过继电器开启降温装置进行降温,直到温度处于设定的最适温度围;当温度低于设定的最小值时,系统将自动通过继电器开启升温装置提高大棚的温度,直到温度升高到设定的最适温度围。
其中,最是温度的围可以通过按钮进行设置。
2.4温度传感器
温度传感器是通过物体随温度变化而改变某种特性来间接测量的。
不少材料、元件的特性都随温度的变化而变化,所以能做温度传感器的材料相当多。
温度传感器随温度而引起物理参数变化的有:
膨胀、电阻、电容、电动势、磁性能、频率、光学特性及热噪声等等,根据具体的应用,可以选择以下几种方案:
方案一:
采用二极管做温度传感器
晶体二极管或三极管的PN结的结电压是随温度的变化而变化的。
例如硅管的PN结的结电压在温度每升高一摄氏度时,下降-2mv,利用这种特性,一般可以直接采用二极管或采用硅三极管结成二极管来做PN结温度传感器。
这种传感器有较好的线性,尺寸小,其热时间常数为0.2-2秒,灵敏度高。
测温围为-50-+150摄氏度。
同型号的二极管或三极管特性相不完全相同,因此他们的互换性较差。
方案二:
用LM35做温度传感器
LM35是一种得到广泛使用的温度传感器。
由于它采用部补偿,所以输出可以从零摄氏度开始。
在上述电压围,芯片从电源吸收的电流几乎是不变(约50uA),所以芯片自身几乎没有散热的问题。
这么小的电流也使得该芯片在某些应用中特别适合,比如在电池供电的场合中,输出可以由第三个引脚取出,根本无需校准。
在使用单一电源时,LM35的一个缺点就是无法指示低至零摄氏度的温度。
据称利用LM35可测出20mV的电压,这一值相当于2摄氏度(一些情况甚至可测出0-2mV的电压),但要指示零摄氏度或更低的温度时,最好还是提供一个负电源和一只下拉电阻。
方案三:
用DS18B20做温度传感器
DS18B20是DALLS公司的最新单线数字温度传感器,它体积小、经济,是世界上第一片支持“一线总线”接口的温度传感器。
一线总线独特而且经济的特点,是用户可轻松的组建传感器网络,为测量系统的构建引入全新的概念。
现场温度可以直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。
适合于恶劣环境的现场温度测量,如环境控制、设备或过程控制、测温类消费电子产品等。
通过对比和对本次设计要求的考虑,决定第三种方案以DS18B20作为温度传感器。
2.5温度检测模块
2.5.1DS18B20工作原理及运用
DS18B20是美国DALLAS公司继DS1820之后最新推出的一种改进型智能温度传感器。
与传统的热敏电阻相比,它能够直接读出被测温度并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。
可以分别在93.75ms和750ms完成9位和12位的数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源。
低温度系数晶振的振荡频率受温度的影响很小〔1〕,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。
计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55 ℃所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在 -55 ℃ 所对应的一个基数值。
减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。
图2中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20的测温原理。
另外,由于DS18B20单线通信功能是分时完成的,他有严格的时隙概念,因此读写时序很重要。
系统对DS18B20的各种操作必须按协议进行。
操作协议为:
初始化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。
DS18B20工作过程一般遵循以下协议:
初始化——ROM操作命令——存储器操作命令——处理数据
①初始化
单总线上的所有处理均从初始化序列开始。
初始化序列包括总线主机发出一复位脉冲,接着由从属器件送出存在脉冲。
存在脉冲让总线控制器知DS1820在总线上且已准备好操作。
②ROM操作命令
一旦总线主机检测到从属器件的存在,它便可以发出器件ROM操作命令之一。
所有ROM操作命令均为8位长。
这些命令列表如下:
Read ROM(读ROM)[33h]
此命令允许总线主机读DS18B20的8位产品系列编码,唯一的48位序列号,以及8位的CRC。
此命令只能在总线上仅有一个DS18B20的情况下可以使用。
如果总线上存在多于一个的从属器件,那么当所有从片企图同时发送时将发生数据冲突的现象(漏极开路会产生线与的结果)。
Match ROM( 符合ROM)[55h]
此命令后继以64位的ROM数据序列,允许总线主机对多点总线上特定的DS18B20寻址。
只有与64位ROM序列严格相符的DS18B20才能对后继的存贮器操作命令作出响应。
所有与64位ROM序列不符的从片将等待复位脉冲。
此命令在总线上有单个或多个器件的情况下均可使用。
Skip ROM( 跳过ROM )[CCh]
在单点总线系统中,此命令通过允许总线主机不提供64位ROM编码而访问存储器操作来节省时间。
如果在总线上存在多于一个的从属器件而且在Skip ROM命令之后发出读命令,那么由于多个从片同时发送数据,会在总线上发生数据冲突(漏极开路下拉会产生线与的效果)。
Search ROM( 搜索ROM)[F0h]
当系统开始工作时,总线主机可能不知道单线总线上的器件个数或者不知道其64位ROM编码。
搜索ROM命令允许总线控制器用排除法识别总线上的所有从机的64位编码。
Alarm Search(告警搜索)[ECh]
此命令的流程与搜索ROM命令相同。
但是,仅在最近一次温度测量出现告警的情况下,DS18B20才对此命令作出响应。
告警的条件定义为温度高于TH 或低于TL。
只要DS18B20一上电,告警条件就保持在设置状态,直到另一次温度测量显示出非告警值或者改变TH或TL的设置,使得测量值再一次位于允许的围之。
贮存在EEPROM的触发器值用于告警。
在单点总线系统中,此命令通过允许总线主机不提供64位ROM编码而访问存储器操作来节省时间。
如果在总线上存在多于一个的从属器件而且在Skip ROM命令之后发出读命令,那么由于多个从片同时发送数据,会在总线上发生数据冲突(漏极开路下拉会产生线与的效果)。
Search ROM( 搜索ROM)[F0h]
当系统开始工作时,总线主机可能不知道单线总线上的器件个数或者不知道其64位ROM编码。
搜索ROM命令允许总线控制器用排除法识别总线上的所有从机的64位编码。
Alarm Search(告警搜索)[ECh]
此命令的流程与搜索ROM命令相同。
但是,仅在最近一次温度测量出现告警的情况下,DS18B20才对此命令作出响应。
告警的条件定义为温度高于TH 或低于TL。
只要DS18B20一上电,告警条件就保持在设置状态,直到另一次温度测量显示出非告警值或者改变TH或TL的设置,使得测量值再一次位于允许的围之。
贮存在EEPROM的触发器值用于告警。
③存储器操作命令
Write Scratchpad(写暂存存储器)[4Eh]
这个命令向DS18B20的暂存器中写入数据,开始位置在地址2。
接下来写入的两个字节将被存到暂存器中的地址位置2和3。
可以在任何时刻发出复位命令来中止写入。
Read Scratchpad(读暂存存储器)[BEh]
这个命令读取暂存器的容。
读取将从字节0开始,一直进行下去,直到第9(字节8,CRC)字节读完。
如果不想读完所有字节,控制器可以在任何时间发出复位命令来中止读取。
Copy Scratchpad(复制暂存存储器)[48h]
这条命令把暂存器的容拷贝到DS18B20的E2存储器里,即把温度报警触发字节存入非易失性存储器里。
如果总线控制器在这条命令之后跟着发出读时间隙,而DS18B20又正在忙于把暂存器拷贝到E2存储器,DS18B20就会输出一个“0”,如果拷贝结束的话,DS18B20 则输出“1”。
如果使用寄生电源,总线控制器必须在这条命令发出后立即起动强上拉并最少保持10ms。
Convert T(温度变换)[44h]
这条命令启动一次温度转换而无需其他数据。
温度转换命令被执行,而后DS18B20保持等待状态。
如果总线控制器在这条命令之后跟着发出读时间隙,而DS18B20又忙于做时间转换的话,DS18B20将在总线上输出“0”,若温度转换完成,则输出“1”。
如果使用寄生电源,总线控制器必须在发出这条命令后立即起动强上拉,并保持500ms。
Recall E2(重新调整E2)[B8h]
这条命令把贮存在E2中温度触发器的值重新调至暂存存储器。
这种重新调出的操作在对DS18B20上电时也自动发生,因此只要器件一上电,暂存存储器就有了有效的数据。
在这条命令发出之后,对于所发出的第一个读数据时间片,器件会输出温度转换忙的标识:
“0”=忙,“1”=准备就绪。
Read Power Supply(读电源)[B4h]
对于在此命令发送至DS18B20之后所发出的第一读数据的时间片,器件都会给出其电源方式的信号:
“0”=寄生电源供电,“1”=外部电源供电。
④处理数据
DS18B20的高速暂存存储器由9个字节组成,其分配如图3所示。
当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的
第0和第1个字节。
单片机可通过单线接口读到该数据,读取时低位在前,高位在后。
2.5.2DS18B20的主要特征
(1)独特的单线接口,只需一个接口引脚即可通信。
(2)多点能力使份分布式温度检测应用得以简化。
(3)不需要外部元件。
(4)可用数据线供电。
(5)不需备份电源。
(6)测量围从-55摄氏度至+125摄氏度,增量值为0.5摄氏度。
(7) 最高12位分辨率,精度可达土0.5摄氏度。
(8) 12位分辨率时的最大工作周期为750毫秒。
(9)以9为数字值方式读出温度。
(10)在一秒把温度转变为数字。
(11)用户可定义的,非易失性的温度告警设置。
(12)告警搜索命令识别和寻址温度在编定的极限之外的器件(温度告警情)。
(13)64位光刻ROM,置产品序列号,方便多机挂接。
(14)应用围包括恒温控制,工业系统,消费类产品,温度计或任何热敏系统。
(15)多样封装形式,适应不同硬件系统。
2.5.3DS18B20的部结构
DS18B20部结构图如图2.4所示:
图2.4DS18B20部结构图
2.5.4电路图
DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。
另一种是寄生电源供电方式,如图3-1-2所示单片机端口接单线总线,为保证在有效的DS18B20时钟周期提供足够的电流,可用一个MOSFET管来完成对总线的上拉。
当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。
采用寄生电源供电方式时VDD端接地。
由于单线制只有一根线,因此发送接口必
须是三态的。
如图2.5所示:
图2.5DS18B20电路图
2.6主控单元电路功能及引脚图
STC90C516RD+系列单片机是宏晶科技推出的新一代超**/高速/低功耗的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可任意选择,部集成MAX810专用复位电路,时钟频率在12MHz以下时,复位脚可直接接地,STC90C516RD+单片机的主要性能指标:
1.增强型6时钟/机器周期,12时钟/机器周期8051CPU。
2.工作电压:
5.5V-3.8V(5V单片机)/3.8V-2.4V(3V单片机)。
3.工作频率围:
0-40MHz,相当于普通8051的0~80MHz。
4.用户应用程序空间4K/6K/7K/8K/10K/12K/13K/16K/32K/40K/48K/56K/61K/字节。
5.片上集成1280字节/512/256字节RAM。
6.通用I/O口(35/39个),复位后为:
P1/P2/P3/P4是准双向口/弱上拉(普通8051传统I/O口),P0口是开漏输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。
7.ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器/仿真器
可通过串口(P3.0/P3.1)直接下载用户程序,8K程序3-5秒即可完成一片。
8.EEPROM功能。
9.看门狗。
10.部集成MAX810专用复位电路,外部晶体12M以下时,可省外部复位电路,复位脚可直接接地。
11.共3个16位定时器/计数器,其中定时器0还可以当成2个8位定时器使用。
12.外部中断4路,下降沿中断或低电平触发中断,PowerDown模式可由外部中断低电平触发中断方式唤醒。
13.通用异步串行口(UART),还可用定时器软件实现多个UART。
14.工作温度围:
0-75℃/-40-+85℃。
15.封装:
LQFP-44,PDIP-40,PLCC-44。
STC90C516RD+引脚图如图2.6所示:
图2.6STC90C516RD引脚图
2.7STC90C516引脚说明
Stc90c516RD+的常见引脚说明如表1.1所示:
表1.1STC90C516引脚说明
管脚
管脚编号
说明
LQFP44
PDIP40
PLCC44
P0.0~P0.7
37-32
39~32
43~36
P0:
P0口既可作为输入/输出口,也可作为地址/数据复用总线使用。
当P0口作为输入/输出口时,P0是一个8位准双向口,上电复位后处于开漏模式。
P0口部无上拉电阻,所以作I/O口必须外接10K-4.7K的上拉电阻。
当P0作为地址/数据复用总线使用时,是低8位地址线[A0~A7],数据线的[D0~D7],此时无需外接上拉电阻。
P1.0/T2
40
1
2
P1.0
标准I/O口PORT1[0]
T2
定时器/计数器2的外部输入
P1.1/T2EX
41
2
3
P1.1
标准I/O口PORT1[1]
T2EX
定时器/计数器2捕捉/重装方式的触发控制
P1.2
42
3
4
标准I/O口PORT1[2]
P1.3
43
4
5
标准I/O口PORT1[3]
P1.4
44
5
6
标准I/O口PORT1[4]
P1.5
1
6
7
标准I/O口PORT1[5]
P1.6
2
7
8
标准I/O口PORT1[6]
P1.7
3
8
9
标准I/O口PORT1[7]
P2.0~P2.7
18-25
21-28
24-31
Port2:
P2口部有上拉电阻,既可作为输入/输出口,也可作为高8位地址总线使用(A8~A15)。
当P2口作为输入/输出口时,P2是一个8位准双向口。
P3.0/RxD
5
10
11
P3.0
标准I/O口PORT3[0]
RxD
串口1数据接收端
P3.1/TxD
7
11
13
P3.1
标准I/O口PORT3[1]
TxD
串口1数据发送端
P3.2--/INT0
8
12
14
P3.2
标准I/O口PORT3[2]
INT0
外部中断0,下降沿中断或低电平中断
P3.3/--INT1
9
13
15
P3.3
标准I/O口PORT3[3]
INT1
外部中断1,下降沿中断或低电平中断
P3.4/T0
10
14
16
P3.4
标准I/O口PORT3[4]
T0
定时器/计数器0的外部输入
P3.5/T1
11
15
17
P3.5
标准I/O口PORT3[5]
T1
定时器/计数器1的外部输入
P3.6/-WR
12
16
18
P3.6
标准I/O口PORT3[6]
WR
外部数据存储器写脉冲
P3.7/-RD
13
17
19
P3.7
标准I/O口PORT3[7]
RD
外部存储器都脉冲
其他常见引脚说明如下:
P4.6/-EA:
此管脚已经是I/O口(P4.6),不用时可浮空
P4.5/ALE:
此管脚缺省是ALE(地址锁存信号),也可在ISP烧录时设置为P4.5
P4.4/PSEN:
此管脚已经是I/O口(P4.4),不用时可浮空
2.8控制按键
四位独立按键,能快速被MCU识别,大大提高MCU响应时间。
按键定义:
K5:
最低温度加1;
K6:
最低温度减1;
K7:
最高温度加1;
K8:
最高温度减1;
按键实物及电路图如图2.11、图2.12所示:
图2.11按键实物图图2.12按键电路图
2.9LCD1602液晶屏
LCD1602分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别。
其实物图如图3-4-1所示。
LCD1602主要技术参数:
显示容量:
16×2个字符 。
芯片工作电压:
4.4-5.5V 。