基于单片机的智能温室温湿度控制系统的设计毕业设计.doc
基于单片机的智能温室温湿度控制系统的设计毕业设计目录1 引言11.1 课题背景11.2 立题的目的与意义11.3 国外的研究现状与发展趋势21.4 本系统主要研究容32 系统总体设计32.1 系统功能设计32.2 系统的组成42.3 系统工作原理43 系统硬件设计63.1 单片机系统设计63.2 温湿度传感器设计113.3 无线模块设计163.4 液晶显示装置设计213.5 报警系统设计234 系统软件设计254.1 系统初始化模块264.2 数据采集模块264.3 无线模块274.4 显示模块294.5 报警模块305 硬件调试31结论36附录37参考文献71致谢7470 / 72 1 引言1.1 课题背景在现代的大棚种植技术中,温度、湿度是大棚蔬菜能否茁壮成长的重要因素。目前我国大棚生产规模虽然 空前巨大,但是大棚的设备比较旧,温度采集方式落后,农村采用煤油温度计的温度采集方式,不仅温度采集较为老套,并且费时费力,不利于大棚生产规模的扩大,也不利信息化程度的提高1。 农业是人类社会最古老的行业,是各行各业的基础,也是人类顿以生存的最重要的行业,由传统农业向现代化农业转变,由粗放经营向集约经营转变,必须要求农业科技有一个大的发展,进行一次新的农业技术革命2。科技的发展促进了农业的发展,温室大棚在农业中的应用越来越广泛。传统的温室大棚的自动化程度很低,基本是是粗放型的人工操作,即便对于所给定的量,在操作中无法进行有效的控制,很大程度上限制了温室大棚的经济效益。以前种植植被一般都用温室栽培,为了充分的利用好温室栽培这一高效技术,就必需有一套科学的,先进的管理方法,用以对不同种类植被生长的各个时期所需的温度与湿度等进行实时的监控。温湿度控制对于单片机的应用具有一定的实际意义,它代表了一类自动控制的方法,而且其应用十分广泛。1.2 立题的目的与意义AT89S52单片机是常用于控制的芯片,在智能仪器仪表、工业检测控制、机电一体化等方面取得了令人瞩目的成果,用其作为温湿度控制系统的实例也很多。使用AT89S52单片机能够实现温湿度全程的自动控制,而且AT89S52单片机易于学习、掌握,性价比高。使用AT89S52单片机设计温湿度控制系统,可以与时、精确的反映室的温度以与湿度的变化。完成诸如升温到特定温度、降温到特定温度、在温度上下限围保持恒温等多种控制方式,在湿度控制方面也是如此3。将此系统应用到温室当中无疑为植被的生长提供了更加适宜的环境。1.3 国外的研究现状与发展趋势美国是将计算机应用于大棚和管理最早,最多的国家之一。美国开发的大棚计算机控制与管理系统可以根据作物的特点和生长所需要的条件,对大棚的光照,温度,湿度等诸多因素进行自动控制。这种自动控制系统需要种植者输入温室作物生长所需的环境的目标参数,计算机根据传感器的实际测量值与事先设定的目标进行比较,以决定大棚温湿度的控制过程,按照相应的机构进行加热,降温或者是浇水,通风等4。目前,我国绝大部分自主开发的大棚温湿度控制或者进口的国外设备都属于这种系统。虽然这种自动控制系统实现了自动化,适合规模化生产,提高了劳动生产率,通过改变大棚温湿度的设定目标,可以自动的对大棚温湿度进行调节,但是这种调节对作物的生长来说还是相对滞后的,难以介入作物生长的在规律。所以在这种自动控制系统和实践的基础上,温湿度自动控制向着适合不同作物生长的智能化控制发展。国外大棚业正致力于高科技发展,遥测技术,网络技术,控制局域网已逐渐应用于大棚的管理和控制中,近几年各国温度控制技术提出建立大棚行业标准,朝着网络化,大众化,大规模,无人化的方向发展的思路5。目前国外的温湿度检测使用的温湿度检测元件种类繁多、应用围也较广泛加之单片机和大规模集成电路技术的不断提高,出现了高性能、高可靠性的单片机数据采集系统6。基于单机片的温湿度监测控制系统的设计研究较少。随着经济和社会的不断发展,人们对自己的生活环境要求越来越高。特别在温室大棚中,对温湿度要求更为严格。基于单片机的温室温湿度控制统设计,将对环境的温湿度监测系统做详细的设计与实现。1.4 本系统主要研究容本系统主要完成的任务:1. 进行温湿度控制系统的整体研究与设计。2. 利用数字温湿度传感器DHT11测量大棚的温湿度。3. 通过采集温度与湿度值,准确的判断标准值与当前值之间的差异,与时的启动报警装置(包括警报灯的提示功能以与提示音等)进行报警,并采取相应的方案。4. 利用LCD对温湿度进行实时显示。5. 利用NRF24L01无线模块实现数据的远距离传输2 系统总体设计2.1 系统功能设计1. 温湿度监控:实现对温室大棚温湿度参数的实时采集,测量空间的温度和湿度,由单片机对采集的温湿度值进行循环检测、数据处理、显示,实现温湿度的智能检测。2. 控制处理:当温湿度越限时报警,并根据报警信号提示采取一定手段控制。3. 无线传输:用温湿度传感器将测量的温湿度数据通过无线模块进行传输。温湿度传感器达到的技术指标:测量围: 湿度20-90%RH, 温度0-50测量精度: 湿度+5%RH, 温度+22.2 系统的组成以单片机为控制核心,采用温湿度测量技术,通信技术,控制技术等技术,以温湿度传感器作为测量元件,构成智能温湿度测量控制系统。可分为温湿度测量电路,显示电路,报警电路,无线模块,图2.1选用的主要器件有:单片机AT89S52,温湿度传感器DHT11,1602LCD显示模块,LED灯,报警装置蜂鸣器,NRF2401无线模块等。图2.1 系统组成2.3 系统工作原理本系统以单片机AT89S52为核心,数据采集、传输、显示、报警都要通过单片机。数据采集通过单总线的智能数字温湿度传感器DHT11完成;通过单片机把采集的数据显示在1602LCD上;当采集的数据超出给定围时,有蜂鸣器实时报警,并将数据通过NRF2401无线传输给另一个单片机上显示。单片机采用C语言编程。图2.2 流程框图3 系统硬件设计3.1 单片机系统设计经过上面的总体方案和实施措施的讨论后可以开始着手硬件系统的设计,硬件系统是应用系统的基础、软件系统设计的依据,根据总体功能和性价比与其运行速度等因素的考虑,选用AT89S52单片机。 AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。AT89S52使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,AT89S52拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案11。AT89S52具有以下标准功能: 8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片晶振与时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口中断继续工作。掉电保护方式下,RAM容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止12。其引脚排列如图3.1所示:图3.1 AT89S52引脚图(1)电源与时钟引脚(4个) VCC:电源接入引脚; GND:接地引脚; XTAL1:晶体振荡器接入的一个引脚(采用外部振荡器时,此引脚接地); XTAL2:晶体振荡器接入的另一个引脚(采用外部振荡器时,此引脚作为外部振荡信号的输入端)。(2)控制线引脚(4个) RST/VPD:复位信号输入引脚/备用电源输入引脚; ALE/PROG:地址锁存允许信号输出引脚/编程脉冲输入引脚(低电平有效); EA/Vpp:外存储器选择引脚(低电平有效)/片EPROM(或FlashROM)编程电压输入引脚; PSEN:外部存储器选通信号输出引脚(低电平有效)。(3) 并行I/O引脚(32个,分成4个8位口) P0.0P0.7:一般I/O引脚或数据/低位地址总线服用引脚; P1.0P1.7:一般I/O引脚; P2.0P2.7:一般I/O引脚或高位地址总线引脚; P3.0P3.7:一般I/O引脚或第二功能引脚。其部主要由CPU、RAM、ROM、通用I/O与总线构成,部结构如图3.2所示:8051时钟程序存储器数据存储器定时计数器并行I/O口串行通信口中断系统数据总线地址总线控制总线图3.2 AT89S52部结构图CPU:由运算和控制逻辑组成,同时还包括中断系统和部分外部特殊功能寄存器;RAM:用以存放可以读写的数据,如运算的中间结果、最终结果以与欲显示的数据;ROM:用以存放程序、一些原始数据和表格;单片机的寄存器MCS-51器件有单独的程序存储器和数据存储器。外部程序存储器和数据存储器都可以64K寻址。程序存储器:如果EA引脚接地,程序读取只从外部存储器开始。对于 89S52,如果EA 接VCC,程序读写先从部存储器(地址为0000H1FFFH)开始,接着从外部寻址,寻址地址为:2000HFFFFH。数据存储器:AT89S52 有256 字节片数据存储器。高128 字节与特殊功能寄存器重叠。也就是说高128字节与特殊功能寄存器有相同的地址,而物理上是分开的。当一条指令访问高于7FH 的地址时,寻址方式决定CPU 访问高128 字节RAM 还是特殊功能寄存器空间。直接寻址方式访问特殊功能寄存器(SFR)12。机器周期和指令周期(1) 振荡周期: 也称时钟周期, 是指为单片机提供时钟脉冲信号的振荡源的周期。 (2) 状态周期: 每个状态周期为时钟周期的 2 倍, 是振荡周期经二分频后得到的。(3) 机器周期: 一个机器周期包含 6 个状态周期S1S6, 也就是 12 个时钟周期。在一个机器周期, CPU可以完成一个独立的操作。 (4) 指令周期: 它是指CPU完成一条操作所需的全部时间。 每条指令执行时间都是有一个或几个机器周期组成。中断AT89S52 有6个中断源:两个外部中断(INT0 和INT1),三个定时中断(定时器0、1、2)和一个串行中断。每个中断源都可以通过置位或清除特殊寄存器IE 中的相关中断允许控制位分别使得中断源有效或无效。IE还包括一个中断允许总控制位EA,它能一次禁止所有中断。IE.6位是不可用的,对于AT89S52,IE.5位也是不能用的。用户软件不应给这些位写1。它们为AT89系列新产品预留。定时器2可以被寄存器T2CON中的TF2和EXF2的或逻辑触发。程序进入中断服务后,这些标志位都可以由硬件清0。实际上,中断服务程序必须判定是否是TF2 或EXF2激活中断,标志位也必须由软件清0。定时器0和定时器1标志位TF0 和TF1在计数溢出的那个周期的S5P2被置位。它们的值一直到下一个周期被电路捕捉下来。然而,定时器2 的标志位TF2 在计数溢出的那个周期的S2P2被置位,在同一个周期被电路捕捉下来。复位电路本系统采用上电+按键复位,是上电复位和按键电平复位的组合,无论是上电还是按动按键都能使单片机复位。如图3.3所示:R21KR310KC310ufRESET图3.3 复位电路在单片机系统中,系统上电启动的时候复位一次,当按键按下的时候系统再次复位,如果释放后再按下,系统还会复位。所以可以通过按键的断开和闭合在运行的系统中控制其复位。复位电路的原理是单片机RST引脚接收到2US以上的电平信号,只要保证电容的充放电时间大于2US,即可实现复位,所以电路中的电容值是可以改变的。按键按下系统复位,是电容处于一个短路电路中,释放了所有的电能,电阻两端的电压增加引起的13。时钟电路时钟引脚为XTAL1、XTAL2,时钟引脚外接晶体与片的反向放大器构成了一个振荡器,它提供单片机的时钟控制信号,时钟引脚也可外接晶体振荡器。XTAL1(19脚):接外部晶体的一个引脚。在单片机部,它是一个反向放大器的输入端。这个放大器构成了片振荡器。当采用外接晶体振荡器时,此引脚应接地。XTAL2(18脚):接外部晶体的另一端,在单片机部接至部反向放大器的输出端。若采用外部振荡器时,该引脚接收振荡器的信号,即把此信号直接接到部时钟发生器的输入端14。本系统采用晶振时钟电路。外部晶振以与电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格要求,但电容的大小多少会影响振荡器频率的高低,振荡器的稳定性,起振的快速性和稳定性。外接晶振时,C1和C2通常选择30pf,晶振采用12MHz。本设计时钟电路如以下图3.4所示:XTAL218XTAL11912MHZCRYSTALC130pC230p图3.4 时钟电路3.2 温湿度传感器设计DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性和卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接15。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式存在OTP存中,传感器部在检测型号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,使其成为给类应用甚至最为苛刻的应用场合的最正确选择。产品为4针单排引脚封装,连接方便。DHT11的简介·相对湿度和温度测量·全部校准,数字输出·卓越的长期稳定性·无需外加器件·超长的信号传输距离·超低能耗·4引脚安装·完全互换 图3.5 DHT11引脚说明建议接线长度短于20米时,用5K上拉电阻,大于20米时根据实际情况使用适宜的上拉电阻。引脚1:VDD供电3-5.5V引脚2:DATA串行数据,单总线引脚3:NC空脚,悬空引脚4:GND接地,电源负极图3.6 典型应用电源引脚DHT11的供电电压为35.5V。传感器上电后,要等待 1s 以越过不稳定状态在此期间无需发送任何指令。电源引脚(VDD,GND)之间可增加一个100nF 的电容,用以去耦滤波。串行接口(单线双向)1.单总线说明DHT11器件采用简化的单总线通信。单总线即只有一根数据线,系统中的数据交换、控制均由单总线完成。设备(主机或从机)通过一个漏极开路或三态端口连至该数据线,以允许设备在不发送数据时能够释放总线,而让其它设备使用总线;单总线通常要求外接一个约5.1k的上拉电阻,这样,当总线闲置时,其状态为高电平。由于它们是主从结构,只有主机呼叫从机时,从机才能应答,因此主机访问器件都必须严格遵循单总线序列,如果出现序列混乱,器件将不响应主机16。2.单总线传送数据位定义DATA用于微处理器与DHT11之间的通讯和同步,采用单总线数据格式,一次传送40位数据,高位先出。 数据格式:8bit湿度整数数据+8bit湿度小数数据+8bit温度整数数据+8bit温度小数数据+8bit校验位。3.校验位数据定义“8bit湿度整数数据+8bit湿度小数数据+8bit温度整数数据+8bit温度小数数据”8bit校验位等于所得结果的末8位。4.数据时序图用户MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号完毕后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,用户可选择读取部分数据.从模式下,DHT11接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集.采集数据后转换到低速模式。图3.7 数据时序图5.外设读取(1)DHT11上电后,测试环境温湿度数据,并记录数据,同时DHT11的DATA数据线由上拉电阻拉高一直保持高电平;此时DHT11的DATA引脚处于输入状态,时刻检测外部信号。(2)微处理器的I/O设置为输出同时输出低电平,且低电平保持时间不能小于18ms,然后微处理器的I/O设置位输入状态,由于上拉电阻,微处理器的I/O即DHT11的DATA数据线也随之变高,等待DHT11作出回答信号。图3.8 主机发送起始信号(3)DHT11的DATA引脚检测到外部信号有低电平时,等待外部信号低电平完毕,延迟后DHT11的DATA 引脚处于输出状态,输出80us的低电平作为应答信号,紧接着输出80us的高电平通知外设准备承受数据,微处理器的I/O此时处于输入状态,检测到I/O有低电平(DHT11回应信号)后 ,等待80us 的高电平后的数据接收。图3.9 发送信号(4)由DHT11的DATA引脚输出40位数据,微处理器根据I/O电平的变化接收40位数据,位数据“0”的格式为:50us的低电平和26-28us的高电平;位数据“1”的格式为:50us的低电平加70us的高电平。 图3.10 位数据“0”的格式 图3.11 位数据“1”的格式测量分辨率 测量分辨率分别为8bit(温度)、8bit(湿度)。电气特性VDD=5V,T = 25,除非特殊标注表3.1 电气特性表参数条件mintypmax单位供电DC355.5V供电电流测量0.52.5mA平均0.21mA待机100150uA采样周期秒1次3.3 无线模块设计nRF24.L01是一款新型单片射频收发器件,工作于2.4 GHz2.5 GHz ISM频段。置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融合了增强型ShockBurst技术,其中输出功率和通信频道可通过程序进行配置。nRF24L01功耗低,在以-6dBm的功率发射时,工作电流也只有9 mA;接收时,工作电流只有12.3 mA,多种低功率工作模式(掉电模式和空闲模式)使节能设计更方便17。主要特点1GFSK调制,硬件集成OSI链路层2具有自动应答和自动再发射功能3片自动生成报头和CRC校验码4数据传输率为l Mb/s或2Mb/s5SPI速率为0 Mb/s10 Mb/s6125个频道与其他nRF24系列射频器件相兼容7双通道数据接收,置环行天线,开阔地无干扰条件通信距离20-50米8QFN20引脚4 mm×4 mm封装9供电电压为1.9 V3.6 V引脚说明图3.12 nRF24L01nRF24L01引脚排列如图3.12所示。各引脚功能如下:CE:使能发射或接收;CSN,SCK,MOSI,MISO:SPI引脚端,微处理器可通过此引脚配置nRF24L01;IRQ:中断标志位;VDD:电源输入端;VSS:电源地;XC2,XC1:晶体振荡器引脚;VDD_PA:为功率放大器供电,输出为1.8 V;ANT1,ANT2:天线接口。工作模式通过配置寄存器可将nRF24L01配置为发射、接收、空闲与掉电四种工作模式,如表3.2所示:表3.2 工作模式模式PWR_UPPRIM_RXCEFIFO寄存器状态接收模式111-发射模式101数据在TX FIFO 寄存器中发射模式1010停留在发送模式,直至数据发送完待机模式2101TX_FIFO为空待机模式11-0无数据传输掉电0-待机模式1主要用于降低电流损耗,在该模式下晶体振荡器仍然是工作的;待机模式2则是在当FIFO寄存器为空且CE=1时进入此模式;待机模式下,所有配置字仍然保留。在掉电模式下电流损耗最小,同时nRF24L01也不工作,但其所有配置寄存器的值仍然保留。工作原理图3.13 电路原理图发射数据时,首先将nRF24L01配置为发射模式:接着把接收节点地址TX_ADDR和有效数据TX_PLD按照时序由SPI口写入nRF24L01缓存区,TX_PLD必须在CSN为低时连续写入,而TX_ADDR在发射时写入一次即可,然后CE置为高电平并保持至少10s,延迟130s后发射数据;若自动应答开启,那么nRF24L01在发射数据后立即进入接收模式,接收应答信号(自动应答接收地址应该与接收节点地址TX_ADDR一致)。如果收到应答,则认为此次通信成功,TX_DS置高,同时TX_PLD从TX FIFO中清除;若未收到应答,则自动重新发射该数据(自动重发已开启),若重发次数(ARC)达到上限,MAX_RT置高,TX FIFO中数据保留以便再次重发;MAX_RT或TX_DS置高时,使IRQ变低,产生中断,通知MCU。最后发射成功时,若CE为低则nRF24L01进入空闲模式1;若发送堆栈中有数据且CE为高,则进入下一次发射;若发送堆栈中无数据且CE为高,则进入空闲模式219。接收数据时,首先将nRF24L01配置为接收模式,接着延迟130s进入接收状态等待数据的到来。当接收方检测到有效的地址和CRC时,就将数据包存储在RX FIFO中,同时中断标志位RX_DR置高,IRQ变低,产生中断,通知MCU去取数据。若此时自动应答开启,接收方则同时进入发射状态回传应答信号。最后接收成功时,若CE变低,则nRF24L01进入空闲模式1。图3.14 单片机与nRF24L01连接图配置字SPI口为同步串行通信接口,最大传输速率为10 Mb/s,传输时先传送低位字节,再传送高位字节。但针对单个字节而言,要先送高位再送低位。与SPI相关的指令共有8个,使用时这些控制指令由nRF24L01的MOSI输入。相应的状态和数据信息是从MISO输出给MCU20。 nRF24L0l所有的配置字都由配置寄存器定义,这些配置寄存器可通过SPI口访问。nRF24L01 的配置寄存器共有25个,常用的配置寄存器如表3.3所示:表3.3 配置寄存器地址(H)寄存器名称功能00CONFIG设置24L01工作模式01EN_AA 设置接收通道与自动应答02EN_RXADDR使能接收通道地址03SETUP_AW设置地址宽度04SETUP_RETR设置自动重发数据时间和次数07STATUS状态寄存器,用来判定工作状态0A0FRX_ADDR_P0P5设置接收通道地址10TX_ADDR设置接收接点地址1116RX_PW_P0P5设置接收通道的有效数据宽度3.4 液晶显示装置设计液晶简介1602液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块,它有若干个5x7或者5x11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此,他不能显示图形(用自定义CGRAM,显示效果也不好)1602LCD是指显示的容为16x2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶23。1602LCD主要技术参数:显示容量:16×2个字符芯片工作电压:4.5-5.5V工作电流:2.0mA(5.0V)模块最正确工作电压:5.0V字符尺寸:2.95×4.35(W×H)mm图3.15 1602LCD引脚图引脚功能说明:1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如下:第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极。液晶显示原理读写操作时序如图3.16和图3.17所示:图3.16 读操作时序图3.17写操作时序3.5 报警系统设计本系统采用红LED灯作为光报警提示,当系统检测到的数据不符合给定的要求时,现场为红灯报警提示;本系统采用蜂鸣器作为声报警提示,当系统检测到的数据符合给定的要求时,现场没有蜂鸣器报警提示;当系统检测到的数据不符合给定的要求时,现场蜂鸣器报警提示。如图3.18:图3.18 报警系统电路图4 系统软件设计本系统软件系统设计包括:系统初始化模块,数据采集模块,无线模块,1602LCD显示模块,报警模块。系统软件总体流程图如图4.1:图4.1 系统流程图4.1 系统初始化模块系统初始化模块的主要功能是完成系统的初始化以与设定系统的工作状态,初始化部分包括以下方面的容:1.单片机初始化以与各种引脚定义2.1602液晶初始化与工作方式3.系统进入正常工作状态4.2 数据采集模块温湿度检测模块是本系统中的核心模块之一,它负责完成温度和湿度的测量与模拟量转换为数字量的全过程,这也是它为什么重要的原因。数字式温湿度传感器DHT11直接把检测到的模拟量转化为数字量送给单片机,在经过单片机的处理,把温湿度值显示在1602液晶上。温湿度传感器的精确度值直接影响到整个系统的检测与控制,所以本系统采用数字式温湿度传感器DHT11采集温室的温湿度25。温湿度判断控制模块也是系统的核心模块之一,所谓判断控制模块,就是对当前温室的实际温湿度与给定的温湿度围进行比较,先进行判断,然后再进行控制,控制模块是决定系统将要进行什么工作的。如温度和湿度高于上限时或低于下限时需要进行启动警报,并且将温湿度结果以无线进行通信等。温湿度传感器程序流程图如图4.2所示:图4.2 温湿度传感器程序流程图4.3 无线模块无线发射模块部分首先进行初始化操作,初始化包括设置单片机I/O和SPI相关寄存器两部分其可以和nRF24L01通信。通过SPI总线配置射频芯片使其进入正确的工作模式。发射数据时,首先将nRF24L01配置为发射模式26。接着把发送端待发射数据的目标地址TX-ADDR和数据TX-PLD写入nRF24L01缓冲区,延时后发射数据,其流程图如图4.3所示:图4.3 无线发射软件流程图无线接收模块部分接收数据时,首先将nRF24L01配置为接收模式。接着延迟进入接收状态等待数据的到来。当接收方检测到有效地址和CRC时,就将数据包储存在接收堆栈中,同时状态寄存器中的中断标志位RX-DR置高,产生中断使IRQ引脚变为低电平,以便通知MCU去取数据,其流程图如图4.4所示:图4.4 无线接收软件流程图4.4 显示模块本系统采用1602液晶显示温湿度值,当系统刚开始上电时1602液晶不显示任何数据,等待AM2301的监测数据,双行显示在1602液晶上。第一行显示:TRH RH:-%,第二行显示:TRH T:-。C。对LCD1602A进行初始化开 始否是否按下 否扫描按键延时消抖否首行扫描字R3列扫描送P1扫描判定键值键值入栈保护否键值转化为ASII码,存入寄存器继续扫描判释放按键判第七位是否为0LCD1602A写命令lingllin令显 示延 时结 束图4.5 显示流程图4.5 报警模块报警模块具备两项功能,即为报警灯和声音报警。报警灯模块是完成LED有规律的转换,以便从视觉上提醒用户。LED是由单片机控制LED灯组成的,其转换规律为:1.系统温湿度值在给定的围时,LED不亮。2.系统温湿度值超出给定的围时,红色LED亮。在LED灯转换的同时,声音报警也会同时启动,可采用延时的方式来延长声音报警的声音。警报灯由1个LED灯组成,一共需要1根数据线,使用单片机AT89S52控制。要实现的功能是使LED灯有规律亮与熄灭,当系统上电后,系统进行实时的采样,并判断出当前温湿度与给定温湿度之间的差异,如果当前温湿度低于用户给定的下限温湿度值,则说明当前温湿度过低,系统自动启动红色警报灯,直至温湿度值升到适合围时警报灯熄灭。反之,如果当前温湿度高于用户设定的上限温湿度值,则说明当前温湿度过高,系统也会自动启动警报灯,直至温湿度值降到适当围时警报灯熄灭。5 硬件调试 使用AT89S52单片机为控制核心芯片,DHT11温湿度传感器为空气温湿度检测模块,nRF24L01无线模块进行数据传输,进行数据的实时显示。在单片机开发板上连接好电路进行调试:图5.1 正常室温中温湿度检测结果(湿度:22%,温度:31。C)图5.2 使用热水进行高温加热,查看其温湿度变化图5.3 不断的进行使用热水加热,当温度超过其围时报警,LED等同时亮图5.4 当温度上升到超过适当围时检测的温湿度值图5.5 显示为无线模块NRF24L01,温度超过正常围时进行数据的无线发送与接收图5.6 温湿度数据接收板图5.7 无线模块接收发送的数据后经单片机处理后在显示屏上显示的结果结论到此智能温室温湿度控制系统的设计已经完成了,在这段时间里,先后完成了资料的收集、设计方案的拟订、画图等多方面的工作。首先,通过这次应用系统设计,在很大程度上提高了自己的独立思考能力和单片机的专业知识,其次,我也深刻了解写一篇应用系统的步骤和格式,有过这样的一次训练,相信在接下来的日子我们都会了,而且会做得更好。 本系统主要根据目前温室大棚技术的发展趋势和国实际的应用特点和要求,采用了自动化的结构形式,实现对空气温湿度的自动检测和控制。 系统以单片机AT89S52为核心部件,单片机系统完成对温湿度信号的采集、处理、显示等功能。该系统的主要特点是:1.适用性强,用户只需对参数进行设置并启动系统正常运行便可实现对温室温湿度的实时监控。2.实现无线信号传输。 3.可对作物的生产环境进行适时、适当的控制,不仅有利于作物的生长发育,而且避免了了资源的浪费,起到了提高作物产量的作用。附录发送部分程序#include <reg52.h>#include <intrins.h>typedef unsigned char uchar;typedef unsigned char uint;/*NRF24L01端口定义*sbit MISO=P15;sbit MOSI=P11;sbitSCK=P14;sbitCE=P13;sbitCSN=P10;sbitIRQ=P12;/*按键*sbit TRH = P21;/温湿度传感器DHT11数据接入/*发送缓冲区*uchar TxBuf32=0;unsigned char receive_buf32=0;unsigned char receive_data,receive_s,flag;unsigned char receive_beg;/*NRF24L01*#define TX_ADR_WIDTH 5 / 5 uints TX address width#define RX_ADR_WIDTH 5 / 5 uints RX address width#define TX_PLOAD_WIDTH 32 / 20 uints TX payload#define RX_PLOAD_WIDTH 32 / 20 uints TX payloaduint const TX_ADDRESSTX_ADR_WIDTH= 0x34,0x43,0x10,0x10,0x01;/本地地址uint const RX_ADDRESSRX_ADR_WIDTH= 0x34,0x43,0x10,0x10,0x01;/接收地址/*NRF24L01寄存*#define READ_REG 0x00 / 读寄存器指令#define WRITE_REG 0x20 / 写寄存器指令#define RD_RX_PLOAD 0x61 / 读取接收数据指令#define WR_TX_PLOAD 0xA0 / 写待发数据指令#define FLUSH_TX 0x