机控制与管理系统可以根据作物的特点和生长所需要的条件,对大棚内的光照,温度,湿度等诸多因素进行自动控制。这种自动控制系统需要种植者输入温室作物生长所需的环境的目标参数,计算编机根据传感器的实际测量值与事先设定的目标进行比较,以决定大棚温湿度的控制过程,按照相应的机构进行加热,降温或者是浇水,通风等。目前,我国绝大部分自主开发的大棚温湿度控制或者进口的国外设备都属于这种系统。
虽然这种自动控制系统实现了自动化,适合规模化生产,提高了劳动生产率,通过改变大棚温室度的设定目标,可以自动的对大棚内温湿度进行调节,但是这种调节对作物的生长来说还是相对滞后的,难以介入作物生长的内在规律。所以在这种自动控制系统和实践的基础上,温湿度自动控制向着适合不同作物生长的智能化控制发展。
国外大棚业正致力于高科技发展,遥测技术,网络技术,控制局域网已逐渐应用于大棚的管理和控制中,近几年各国温度控制技术提出建立大棚行业标准,朝着网络化,大众化,大规模,无人化的方向发展的思路。【摘要】在农业生产中,温室大棚的应用越来越广泛,也能为人们创造更高的经济效益。在温室大棚中,最关键的是温湿度控制方法。传统的温湿度控制方法完全是人工的,不仅费时费力,而且效率很低。本文旨在论述一钟温室大棚温湿度控制系统的设计及工作原理。该系统主要由单片机、数字温湿度传感器DHT11、无线通信模块APC220、液晶显示LCD1602、键盘等组成。采用温湿度传感器DHT11来测量温湿度,它的精确度高,而且DHT11直接是输出数字信号,可直接与单片机相连。通过无线传感器APC220来进行信号传送,这样能够降低布线的麻烦。显示部分使用的是LCD1602来显示温湿度。本系统还有附带键盘,能够对大棚所需要的温湿度上下限值直接设定和修改。本系统的核心是单片机AT89C51,接收传感器所测的数据并处理,然后执行各种操作,如喷水,吹风等。
本系统智能度高,可靠性高,系统工作稳定,且综合性价比较高,具有较大的市场应用前景。【Abstract】 In agricultural production, shed greenhouse used more widely, but also can create more economic benefits for the people. In the shed greenhouse ,the most critical factor is the method of temperature and humidity control. The traditional temperature and humidity control method is completely artificial, not only time-consuming, but also inefficient. This paper aims to discusses the design and operating principle of shed greenhouse temperature and humidity control system. The system consist of the microcontroller ,digital temperature and humidity sensor DHT11,wireless sensor APC220,LCD1602,keyboard and other components. Temperature and humidity sensor DHT11 is used for measuring temperature and humidity ,its high precision ,and DHT11 can directly output digital signal, which can be directly connected with the microcontroller .This can reduce the trouble of wiring for signal transmission through wireless sensor APC220.The display selection is LCD1602 which is used for displaying the temperature and humidity. The system also comes with a keyboard ,can set and modify the upper and lower limits on the greenhouse temperature and humidity needed. The core of this system is the microcontroller AT89C51,receiving sensor measured the data and processing, and then carry out various operation ,such as water spray ,warming, cooling and ect.
This system intelligent degree is high, high reliability, the system stable work, and comprehensive high cost performance, so it has great application prospect in the market.
【key word】 microcontroller digital temperature and humidity sensor DHT11 wireless sensor APC220 display section LCD1602在现代的大棚种植技术中,温度、湿度是大棚蔬菜能否茁壮成长的重要因素。现在我国大棚生产规模虽然空前巨大,但是大棚的设备比较陈旧,温度采集方式落后,广大农村采用煤油温度计的温度采集方式,不仅温度采集较为老套,并且费时费力,不利于大棚生产规模的扩大,也不利于信息化程度的提高,不符合党中央提出的科技兴农的战略目标。
农业是人类社会最古老的行业,是各行各业的基础,也是人类顿以生存的最重要的行业,由传统农业向现代化农业转变,由粗放经营向集约经营转变,必须要求农业科技有一个大的发展,进行一次新的农业技术革命。科技的发展促进了农业的发展,温室大棚在农业中的应用越来越广泛。传统的温室大棚的自动化程度很低,基本是是粗放型的人工操作,即便对于所给定的量,在操作中无法进行有效的控制,很大程度上限制了温室大棚的经济效益。
现代智能控制系统是进行温室大棚温湿度控制的有效手段和工具,它可以提高操作的准确性,有利于控制过程的科学管理,也降低了对操作者本身素质的要求和体力劳动强度。除此之外,它还能准确、定时、定量、高效的进行温湿度控制,可以节省人力、体力而提高质量和产量。智能温室大棚控制系统在我国农业中的使用为数不多,与发达国家相比,有较大的差距,有很多是基本停留在人工操作,即使有些使用的了自动控制系统,但是也是以经验来自行设定很多参数,使得不能物尽其用而又造成浪费。只有提高自动控制系统的智能,使得在农业生产中更加智能和方便并采用廉价的器材使其价格能被广大农业生产者所接受,才能促进智能温室大棚温湿度控制在农业中的广泛应用和提高其经济效益。
随着微型计算机和传感器技术的迅猛发展,其价格低、可靠性高,给改造农业带来了很多便利。用高新技术改造农业生产,是我国农业和国民经济持续发展的根本大事。本文旨在对温室大棚温湿度监控系统的设计,一种基于mcs-51单片机的控制系统,通过高灵敏度的温湿度传感器检测大棚内的温湿度,并通过控制系统进行温室度调节。
第1页(共48页)美国是将计算机应用于大棚和管理最早,最多的国家之一。美国开发的大棚计算机控制与管理系统可以根据作物的特点和生长所需要的条件,对大棚内的光照,温度,湿度等诸多因素进行自动控制。这种自动控制系统需要种植者输入温室作物生长所需的环境的目标参数,计算编机根据传感器的实际测量值与事先设定的目标进行比较,以决定大棚温湿度的控制过程,按照相应的机构进行加热,降温或者是浇水,通风等。目前,我国绝大部分自主开发的大棚温湿度控制或者进口的国外设备都属于这种系统。
虽然这种自动控制系统实现了自动化,适合规模化生产,提高了劳动生产率,通过改变大棚温室度的设定目标,可以自动的对大棚内温湿度进行调节,但是这种调节对作物的生长来说还是相对滞后的,难以介入作物生长的内在规律。所以在这种自动控制系统和实践的基础上,温湿度自动控制向着适合不同作物生长的智能化控制发展。
国外大棚业正致力于高科技发展,遥测技术,网络技术,控制局域网已逐渐应用于大棚的管理和控制中,近几年各国温度控制技术提出建立大棚行业标准,朝着网络化,大众化,大规模,无人化的方向发展的思路。 本系统的设计的硬件主要包括:主要是单片机AT89C51,检测系统,显示电路,A|D电路,报警电路等。利用传感器测量大棚内的温湿度经过信号处理,将传感器测得的数据送至控制系统(STC89C51),与预设的农作物最适合生长的温湿度值的上下限进行对比,并通过显示电路将测得的温湿度进行实时显示。如果不同作物的适合生长的温度不一样,可以通过键盘电路修改预设值。控制系统根据比较的结果对调节系统发出相应的指令,启动相应的调节设备如喷水机,吹风机,加热器,降温等,调节大棚内的温湿度状态。如果测得的数据超过了预设值的上下限,则报警电路会报警。这样就实现了对大棚温湿度的自动控制。
本文主要研究内容如下:
1.进行温湿度控制系统的整体研究与设计。
2.利用键盘设置温湿度的上下限值。
3.利用数字温湿度传感器DHT11测量大棚内的温湿度。
4.利用LCD对温湿度进行实时显示。
·P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
· P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3除了作为一般的I/O口线外,更重要的用途是它的第二功能,如下表(表1)所示:
端口引脚 | 第二功能 |
P3.0 | RXD(串行口输入) |
P3.1 | TXD(串行口输出) |
P3.2 |
|
P3.3 |
|
P3.4 | T0(定时/计数器0外部输入) |
P3.5 |
|
P3.6 |
|
P3.7 |
|
·EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H—FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。 如EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令。 Flash存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。
·XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
2.2.4 复位电路整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
CY | AC | F0 | RS1 | RS0 | OV | - | P |
RS1 | RS0 | 寄存器组 | RAM中的地址 |
0 0 1 1 | 0 1 0 1 | 0 1 2 3 | 00H-07H 08H-0FH 10H-17H 18H-1FH |
特殊功能寄存器符号 | 片内RAM地址 | 名称 |
*ACC | E0H | 累加器 |
*B | F0H | 乘法寄存器 |
*PSW | D0H | 程序状态字寄存器 |
SP | 81H | 堆栈指针 |
DPL、DPH | 82H、83H | 数据指针(低8位和高8位) |
*IE | A8H | 中断允许寄存器 |
*IP | B8H | 中断优先级寄存器 |
*P0 | 80H | P0口锁存器 |
*P1 | 90H | P1口锁存器 |
*P2 | A0H | P2口锁存器 |
*P3 | B0H | P3口锁存器 |
PCON | 87H | 电源控制及波特率选择寄存器 |
*SCON | 98H | 串行口控制寄存器 |
SBUF | 99H | 串行数据缓冲器 |
*TCON | 88H | 定时器控制寄存器 |
TMOD | 89H | 定时器方式选择寄存器 |
TL0、TH0 | 8AH、8BH | 定时器0低8位、高8位 |
TL1、TH1 | 8CH、8DH | 定时器1低8位、高8位 |
89C51单片机的片内RAM虽然字节数虽然不很多,但却起着很重要的作用。256个字节被分为两个区域:11~7FH是真正的RAM区,可以读写各种数据;80~FFH是专用寄存器(SFR)区。对于51系列单片机安排里21个特殊功能寄存器。每个寄存器均为8位(一个字节),所以实际上这128个字节并未全部利用。表4所示为89C51单片机特殊功能寄存器地址及符号表。表中带*号的为可位寻址的特殊功能寄存器。
2.2.6 单片机的中断系统单片机与外部设备交换信息一般采用两种方式,即查询方式和中断方式。中断方式具有CPU效率高,适合于实时控制,将从现场采集到的数据通过中断方式及时传送给CPU,经过处理后就可立即做出响应,实现现场控制。而采用查询方式就很难做到及时采集、实时控制。从面向用户的角度来看,8051单片机的中断系统就是由如下几个殊功能寄存器组成:
·定时器控制寄存器TCON | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
控制位 | TF1 | TR1 | TF0 | TR0 | IE1 | IT1 | IE0 | IT0 |
| D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
控制位 | SM0 | SM1 | SM2 | REN | TB8 | RB8 | TI | RI |
SM0 | SM1 | 工作方式 |
0 | 0 | 方式0:移位寄存器方式 |
0 | 1 | 方式1:8位UART,波特率可变 |
1 | 0 | 方式2:9位UART,波特率为fosc/64或fosc/32 |
1 | 1 | 方式3:9位UART,波特率可变 |
·SM2 (SCON.5):允许方式 2 或方式 3 多机通讯控制位。在方式 2 或方式 3 时,如SM2=1,REN=1,则从机处于只有接收到 RB8=1(地址帧)才激发中断请求标志RI=1,向主机请求中断处理。被确认为寻址的从机复位SM2=0,才能接收 RB8=0 的数据帧;在方式 1 时,如 SM2=l,则只有在接收到有效停止位时才置位中断请求标志位RI=1;在方式0时,SM2应为 0。
·REN(SCON.4):REN,允许/禁止串行接收控制位。由软件置位REN=1为允许串行接收状态,可启动串行接收器RXD,开始接收信息。软件复位REN=0,则禁止接收。 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
控制位 | EA | - | - | ES | ET1 | EX1 | ET0 | EX0 |
| D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
控制位 | - | - | - | PS | PT1 | PX1 | PT0 | PX0 |
| D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
控制位 | GATE | C/T | M1 | M0 | GATE | C/T | M1 | M0 |
低4位为T0的控制字,高4位为T1的控制字。GATE为门控位,对定时器/计数器的启动起辅助控制作用。GATE=1时,定时器/计数器的计数受外部引脚输入电平的控制,此时只有P3口的P3.2(或P3.3)引脚即INT0(或INT1)为1才启动计数;GATE=0时,定时器/计数器的运行不受外部输入引脚的控制。
C/T为方式选择位。C/T=0为定时器方式,采用单片机内部振荡脉冲的12分频信号人作为时钟计数脉冲,若采用12MHz的振荡器,则定时器的计数频率为1MHz,从定时器的计数值便可得定时时间。 M1 | M0 | 工作方式 |
0 | 0 | 方式0:为13位定时器/计数器 |
0 | 1 | 方式1:为16位定时器/计数器 |
1 | 0 | 方式2:为自动重装常数的8位定时器/计数器 |
1 | 1 | 方式3:仅适用于T0,分成两个8位定时器/计数器 |
单片机是一种时序电路,必须提供脉冲信号才能正常工作,在单片机内部已集成了振荡器,使用晶体振荡器,接18、19脚。如图3所示,外部时钟振荡电路由晶体振荡器和电容C1、C2构成并联谐振电路,连接在XTAL1、XTAL2脚两端。对外部C1、C2的取值虽然没有严格的要求,但电容的大小会影响到振荡器频率的高低、振荡器的稳定性、起振的快速性。C1、C2通常取值C1=C2=30—30PF;8051的晶振最高振荡频率为12M,AT89C51的外部晶振最高频率可到24M。典型的晶振取11.0592MHz(因为可以准确地得到9600波特率和19200波特率,用于有串口通讯的场合)/12MHz(产生精确的us级时歇,方便定时操作)。
(2)电源电路由电容串联电阻构成,由图并结合“电容电压不能突变”的性质,可以知道,当系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定。典型的51单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的取值就可以保证可靠的复位。一般教科书推荐C 取10u,R取10K。当然也有其他取法的,原则就是要让RC组合可以在RST脚上产生不少于2个机周期 的高电平。至于如何具体定量计算,可以参考电路分析相关书籍。
(4) EA访问程序存储器控制信号,当EA为低电平时,对ROM的读操作限制在外部程序存储器;当EA为高电平时,则对ROM的读操作是从内部程序存储器开始,并可延至外部程序存储器。高电平就是选用内部ROM,低电平就是不选用内部ROM,8031内部根本没有ROM,需接外接ROM,所以要低电平。
2.3 传感器设计 测量温湿度所用的传感器为数字温湿度传感器DHT11.DHT11是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。产品为 4 针单排引脚封装。连接方便,特殊封装形式可根据用户需求而提供。
(3)DHT11的DATA引脚检测到外部信号有低电平时,等待外部信号低电平结束,延迟后DHT11的DATA 引脚处于输出状态,输出80us的低电平作为应答信号,紧接着输出80us的高电平通知外设准备接受数据,微处理器的I/O此时处于输入状态,检测到I/O有低电平(DHT11回应信号)后 ,等待80us 的高电平后的数据接收。
APC220-43模块内设256B的缓冲区,在缓冲区为空的情况下,用户可以不用考虑空中波特率与串口波特率的大小关系1次传输256B的数据,当空中波特率大于设置的串口波特率时,可1次传输无限长度的数据。APC220模块有UART和USB两种接口类型可供选择,支持7种串口波特率设置。最重要的是它采用透明的数据传输模式,写发送模块什么,接收模块就可以读到什么。收发模块采用默认的工作参数就可以正常的进行数据的收发。
APC220-43模块共有9个接脚,具体定义如下表: APC220引脚定义 | ||
引脚 | 定义 | 说明 |
1 | GND | 地0V |
2 | VCC | 3.3V-5.5V |
3 | EN | 电源是能端,>=1.6v或者悬空使能,<=0.5v休眠 |
4 | RXD | URAT输入口,TTL电平 |
5 | TXD | UART输出口,TTL电平 |
6 | AUX | UART口的收发指示输出,低接收,高输出 |
7 | SET | 参数设置,低有效 |
8 | NC | 空脚 |
9 | NC | 空脚 |
通过SET脚进行在线修改。在线软件设置是通过模块的UART/TTL口完成的(4,5PIN)和SET脚完成的,时序图见图7.当EN脚置高50ms后,模块即可正常工作(T1)。设置时首先将SET脚置低,此时无论UART口是何状态,模块自动将UART口转变为9600bps,无校验模式,约1ms后模块进入设置状态(T2).用户可以通过向RXD口发送设置命令,模块校验后,在200ms内TXD脚将开始返回参数信息(T3),用户在确定设置信息无误后置高SET脚,模块在10ms内切换至用户设置的参数模式运行(T4)。需注意的是当模块进入设置状态(SET脚为低),用户只能发送一次设置命令 ,如发送设置命令出错,或已经完成设置,若需再次设置必须将SET脚置高,后重新进入设置状态。
第1页(共48页)
参数表示方法 | ||
参数 | 字节数 | 说明 |
频率 | 6 | 单位KHZ,如434MHZ表示为434000 |
空中速率 | 6 | 2400,4800,9600,19200bps用1,2,3,4表示 |
发射功率 | 1 | 0至9,设置0为-1dBm,9为13dBm(20mW) |
串口速率 | 1 | 1200,2400,4800,9600,19200,38400,57600bps用0,1,2,3,4,5,6表示 |
串口校验 | 1 | 串口校验0为无效校验,1为偶校验,2为奇校验 |
APC220-43技术指示 | |
工作方式 | 418MHZ to 455MHZ(1MHZ步进) |
调制方式 | GFSK |
频率间隔 | 200KHZ |
发射功率 | 20mw(10级可调) |
接收灵敏度 | -118dBm@1200bps |
空中传输速率 | 2400-9600bps |
接口速率 | 1200-57600bps |
接口校验方式 | 8E1/8N1/801 |
接口缓冲空间 | 256bytes |
工作湿度 | 10%-90% |
工作温度 | -30 -85 |
电源 | 3.3- 5.5V(50mv纹波) |
发射电流 | <=35mV@20mW |
接收电源 | <=28mA |
休眠电源 | <=5uA |
传输距离 | 1200米传输距离(1200bps开阔的可视距离) |
尺寸 | 37.5mm×18.3mm×7.0mm |
蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,单片机IO引脚输出的电流较小,单片机输出的TTL电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路。S51增强型单片机实验板通过一个三极管来放大驱动蜂鸣器,原理图见下面图12:
第1页(共48页)
如图所示,蜂鸣器的正极接到VCC(+5V)电源上面,蜂鸣器的负极接到三极管的发射极E,三极管的基级B经过限流电阻R1后由单片机的I/O口控制,当该I/O输出高电平时,三极管T1截止,没有电流流过线圈,蜂鸣器不发声;当I/O口输出低电平时,三极管导通,这样蜂鸣器的电流形成回路,发出声音。因此,我们可以通过程序控制I/O口的电平来使蜂鸣器发出声音和关闭。程序中改变单片机I/O口输出波形的频率,就可以调整控制蜂鸣器音调,产生各种不同音色、音调的声音。另外,改变单片机I/O口输出电平的高低电平占空比,则可以控制蜂鸣器的声音大小。
DHT11先发送12—14us的低电平信号,然后紧跟高电平,如果在116—118us左右,将自动识别为1,如果在26—28us左右将识别为0。这样循环40次,共40位二进制数,每八位为一组,其中包括八位湿度整数位、八位湿度小数位、八位温度整数位,八位温度小数位、八位较检位。由于设计的需要,现只读取八位湿度整数值,将读取的湿度值传给单片机。
程序如下:欢迎光临 (http://www.51hei.com/bbs/) | Powered by Discuz! X3.1 |