资源描述
沈阳航空航天大学电子信息工程学院毕业设计(论文)第1章 绪论1.1 选题的依据和意义现代农业生态园发展迅速,不仅种植品种更多、规模更大,而且种植区域也更加集中,这给农业人员的管理和优化种植增加了难度和成本。为了解决这些问题,我国的蔬菜大棚种植正在向信息化和智能化的方向发展。只有应用先进的较低成本的信息采集手段,实时、精确地获取大棚环境信息,制定科学的管理决策,最后通过智能设备或人工控制等措施,才能提高种植作物的经济效益,本设计就是设计一个生态园的环境监测系统。在当今社会,我们的经济、农业和工业都趋向于信息话、科技化,尤其是农业生产和农业养殖更是借助了很多现代先进的科技力量。在蔬菜、水果的大棚种植中,大棚中的温度、湿度和光照强度都会对农作物的生长的产生影响,如果我们对大棚中的这三个参数进行监控和有效的调节,那么农作物的数量和质量都会得到上升,一旦我们的农作物的质量和数量有大幅度的提高,那么就标志着我们的农业生产水平上了一个大台阶,所以对生态园环境监测系统的研究是十分有必要的。选题的意义在于这个系统具有以下三个优点:1、可以实时采集周围的温度、湿度和光照强度,分别进行显示,可以人为的直观的观测到,了解生态园的现况。2、该监测系统具有自动设置上下限功能,并配有声光报警功能,一旦所监测的值不在自行设置的上限和下限的范围之内,报警部分就会让人们知道这一情况,工作人员可以作出相应的措施。3、该系统可以将数据传送到上位机上,一旦配置上无线发射模块,再在接收端配置上无线接收模块,这样可以实现远距离传输,接收端的上位机上可以显示出生态园的温度、湿度和光照强度。就以上三点可以充分地表达出这一选题是十分有意思的,一旦我们将这一系统研究到位,应用合理,那么会对我们的农业生产有很大的帮助。1.2 选题研究的基本内容 本课题根据生态园发展需要,设计一种蔬菜大棚种植环境检测系统,利用传感器对棚内作物生长情况进行监测,采集其在生长周期内温度、湿度和光强的数据,以便及时调整棚内环境达到作物生长的适宜条件,实现蔬菜大棚的优化种植。具体需要做的任务首先要按照实际应用背景完成主控电路的设计,然后要设计利用传感器采集生态园大气环境中的温度、湿度和光照强度的电路,将数据传送到单片机,设计的显示电路要将采集的数据显示,显示精度1,被监测温度范围10-35、被监测湿度范围50-90%RH,不在预置的上下限范围之内要进行声光报警。最后要设计通信电路,将采集完成的数据传送到上位机,并进行显示。 首先要对温度、湿度和光照强度进行采集,然后送入单片机,再经数码管进行显示,最后送入无线发射模块,将数据无线传输到远端的上位机上进行显示。主要需要研究以下两种器件: 传感器:温度传感器是指能感受温度并转换成可用输出信号的传感器。按照传感器材料及电子元件特性分为热电阻和热电偶两类;湿度传感器类似,电容式、电阻式和湿涨式湿敏元器件分别是根据其高分子材料吸湿后的介电常数、电阻率和体积随之发生变化而进行湿度测量的;光强传感器一般都选用光敏电阻,是一种因光照强度的改变而导致其电阻值改变的器件。这三种传感器分别在三路信息的采集电路上起到了重要的作用。 下位机、上位机:上位机是指可以直接发出操控命令的计算机,一般是PC,屏幕上显示各种信号变化(液压,水位,温度等)。下位机是直接控制设备获取设备状况的计算机,一般是单片机之类的。上位机发出的命令首先给下位机,下位机再根据此命令解释成相应时序信号直接控制相应设备。下位机不时读取设备状态数据,一般为模拟量,转换成数字信号反馈给上位机。本系统是下位机将采集的温度、湿度和光照强度这三个量传输到上位机上进行显示。1.3 课题分析本课题主要是利用单片机对生态环境中的温度、湿度和光照强度进行采集和显示,并且无线传输到远端的监控地点再进行显示。基本思路是通过对这三个采集量感应的传感器同时采集这三种数据,将数据传送到单片机,单片机通过程序控制实现用数码管循环显示这三种数据的值,再将数据通过24L01无线发射模块发射,远端的24L01无线接收模块接收到数据,将数据传送到单片机,单片机通过程序控制实现远端数码管对这三个数据的显示。第2章 方案分析2.1 系统工作原理测量空气湿度的方式很多,其原理是根据某种物质从其周围的空气中吸收水分后引起的物理或化学性质的变化,间接地获得该物质的吸水量及周围空气的湿度。电容式、电阻式和湿涨式湿敏元器件分别是根据其高分子材料吸湿后的介电常数、电阻率和体积随之发生变化而进行湿度测量的。测量温度和光照强度的方式也很多,和湿度类似。测温元件主要有热电偶和热敏电阻,通过与电源构成测温电路,随着温度的变化导致输出的电压量变化,再经过ADC0809模数转换器,将电压这个模拟量的变化变成数字量的变化,这样再将变化的数字量传输到单片机中,通过程序控制,进行显示,这样就能读出此时的温度值了。感光元件主要就是光敏电阻和光敏二极管,随着光照强度的改变,光敏电阻的阻值会发生变化,通过光敏二极管的光电流则会发生变化,和温度类似,也将其通过外围电路转化为电压的改变,再经过模数转换器将数据数据送入单片机,从而控制数码管显示。AT89C51控制系统,常用的单片机的类型主要有AT89C51,AT89C52以及AT89C2051等等,本系统选用的单片机类型为AT89C51,相对其他同类产品而言,此芯片具有超强的抗干扰、高速、低功耗、指令代码完全兼容传统8951单片机、12时钟/机器周期和6时钟/机器周期可以任意选择等特点,综合本系统的诸多情况及设计要求,故选用单片机AT89C51。无线发射和接受部分,接受采集信号的单片机作为下位机,将采集后的数据通过无线发射模块进行发射。在远端的接收部分,通过无线接收模块将数据传送给上位机,同样上位机也是一个单片机,上位机再将接收的数据传送到数码管进行显示。2.2 方案设计本方案中的湿度采集和温度采集部分共同利用一种器件完成,DHT11是一种数字量输出的温度、湿度传感器,其内部采集工作原理是利用电阻式的湿敏元件和NTC感温元件分别对湿度和温度进行采集。电阻式湿敏元件主要使用高分子固体电解质材料作为感湿膜,由于膜中存在可动离子而产生导电性,随着湿度的增大,其电离作用增强,便可动离子的浓度增大,电极间的阻值减小,当湿度减小时,电离作用也相应减弱,可动离子的浓度也减小,电极间的电阻值增大,这样,湿敏元件对水分子的吸附和释放情况,可通过电极间电阻值的变化检测出来,从而得到相应的湿度值。NTC感温元件是一种热敏电阻,温度越高热敏电阻阻值越小,温度越低热敏电阻阻值越大,从而通过对电阻值得变化检测出响应的温度值。DHT11可以同时采集温度和湿度,其内部自带模数转换器和一个高性能的8位单片机,可以直接输出数字量给单片机,达到对温度和湿度的采集。一般的温湿度采集还可以采用热敏电阻和HS1101电容式的湿度传感器进行,温度改变,热敏电阻的阻值则改变,这样通过外围电路就可以转换为电压的变化,再接一个模数转换器,这样就可以完成温度的采集了。HS1101的电容值会根据湿度的变化而变化,这样外围用555芯片搭建一个多谐振荡电路,这样可以将湿度的变化转换为多谐振荡器输出信号频率的变化,这样单片机计频就可以采集出当时的湿度了。但是,与这种方法相比,DHT11温湿度传感器方便简洁,且能高效的同时采集出这两种量,所以在温湿度采集部分选用DHT11温湿度传感器。光照强度采集部分和温湿度类似,也采用数字量输出的传感器,BH1750FVI是一种高性能的数字量输出的光照强度传感器,其内部是一个光敏元件和一个模数转换器,其光敏元件为一个光敏二极管,当有光照时,光敏二极管会产生光电流,光照强度不同,这个电流就不同,而后再经过一个集成运放将电流转化为电压,再经过一个模数转换器,从而对光照强度感知后就可以直接输出数字量的光照强度值,单片机读取采集量的数值后进行显示。无线发射和接收部分,接受采集信号的单片机作为下位机,将采集后的数据通过无线发射模块进行发射。在远端的接收部分,通过无线接收模块将数据传送给上位机,同样上位机也是一个单片机,上位机再将接收的数据传送到数码管进行显示。此方案采用nrf24L01无线收发模块,该模块工作频率2.4GHz2.525GHz,可以将采集的数据进行无线发射和接受,从而达到无线发射和接受的要求。此外,本系统在发射部分还设计了键盘输入和声光报警部分,键控部分采用开关和按键的结合,声光报警部分的设计是在发射端的单片机上连接一个发光二极管和一个蜂鸣器。手动设置湿度、湿度和光强的上限和下限,首先选择需要设置的量,然后再选择设置上限或下限,最后分别设置每一位的值。当温度、湿度和光照强度的值不在所设定的上下限之内,则启动声光报警部分,这时二极管发光,蜂鸣器响,从而达到监控报警的作用,这样更能方便工作人员对生态园的检测和管理。这方案中直接使用DHT11和BH1750FVI这两个数字量输出的传感器,可以高效的对三个量进行采集并将采集的数据直接传送至单片机,完成对温度、湿度和光照强度这三个量的采集。集部分简单高效,硬件调试不易出错,可以按照预期完成数据采集和无线发射。图2.1是整个系统的发射部分的原理框图,图2.2是系统的接收部分的原理框图。时钟电路温湿度传感器DHT11键盘输入单 片 机显示电路光强传感器BH1750FVI无线发射模块声光报警复位电路图2.1 系统的发射部分原理框图显示电路无线接收模块上位机 图2.2 系统的接收部分原理框图第3章 硬件电路设计本章围绕整体设计方案进行设计分析,着重介绍硬件电路的设计原理,各部分的组成以及元器件的性能。本设计的硬件电路主要包括AT89C51单片机的时钟电路和复位电路的设计、温湿度采集电路的设计、光照强度采集电路的设计、显示电路的设计、无线发射电路的设计、无线接收电路的设计、发射端键控电路的设计以及声光报警电路的设计。3.1 单片机控制电路3.1.1 AT89C51单片机简介AT89C51是一种带4K字节闪烁可编程可擦除只读存储的低电压,高性能CMOS 8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。1 主要性能本系统选用并设定的单片机采用12时钟/机器周期,工作电压5V。在AT89C51单片机的40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,两个16位定时器/计数器,中断口线与P3口线复用,可编程串行通道,低功耗的闲置和掉电模式,片内振荡器和时钟电路。2管脚说明 VCC:供电电压;VSS:接地。 P0口:P0口为一个8位漏极开路双向I/O口,每脚可吸收8个TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低8位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4个TTL门电流。P0口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第8位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高8位。在给出地址“1”时,它利用内部上拉优势,当对外部8位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高8位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下所示: P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(计时器0外部输入)P3.5 T1(计时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次PSEN有效。但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。 EA/VPP:当EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。AT89C51芯片管脚图如图3.1所示。图3.1 AT89C51管脚图3.1.2 时钟电路单片机各功能部件的运行都是以时钟控制信号为基准,有条不紊地一拍一拍地工作。因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。时钟电路的两根线分别接到单片机的X1端和X2端,电路中的晶振即石英晶体震荡器。由于石英晶体震荡器具有非常好的频率稳定性和抗外界干扰的能力,所以,石英晶体震荡器是用来产生基准频率的。通过基准频率来控制电路中的频率的准确性。同时,它还可以产生振荡电流,向单片机发出时钟信号。XTAL1接外部晶体的一个引脚,XTAL2接外晶体的另一端,在单片机内部,接至上述振荡器的反相放大器的输出端。石英晶振起振后要能在XTAL2线上输出一个3V左右的正弦波,以便使MCS-51片内的OSC电路按石英晶振相同频率自激振荡。常用的时钟电路设计有两种方式,一种是内部时钟方式,另一种是外部时钟方式,本设计中采用的是内部时钟方式。OSC的输出时钟频率fosc为0.5MHz-16MHz,典型值为12MHz或者11.0592MHz。电容C1和C2可以帮助起振,典型值为30pF,调节它们可以达到微调fosc的目的。时钟电路如图3.2所示。图3.2 时钟电路3.1.3 复位电路复位电路的主要功能是使单片机进行初始化,在初始化的过程中需要在复位引脚上加大于2个机器周期的高电平。复位后的单片机地址初始化为0000H,然后继续从0000H单元开始执行程序。在复位电路中提供复位信号,等到系统电源稳定后,再撤销复位信号。但是为了在复位按键稳定的前提下,电源稳定后还要经一定的延时才撤销复位信号,以防在按键过程中引起的抖动而影响复位。单片机的复位电路如图3.3所示。图3.3 复位电路在单片机系统中,系统上电启动的时候复位一次,当按键按下的时候系统再次复位,如果释放后再按下,系统还会复位。在刚开机时,这时按键没有按下,电容充电,在这充电过程中电容两端的电压从0V迅速上升到5V,这时10K电阻的两端电压从5V下降到0V,所以在刚开机时,10K电阻两端电压还没有下降到2.5V以前,RES管脚为高电平,完成开机复位,电容充满电后,10K电阻两端电压始终接近为0V,单片机RES管脚就始终为低电平。按下按键时,此时相当于1K电阻和充好电的电容组成了一个回路,电容将瞬间放电,随着电容两端的电压减小,10K电阻两端的电压逐渐增大,当达到2.5V时,单片机RES管脚就为高电平,完成对单片机的复位。而后电容开始充电,10K电阻两端电压下降,RES管脚变回低电平,如需再次复位,则再次按下按键即可。3.2 温湿度采集电路3.2.1 温湿度传感器简介本设计的温度采集和湿度采集选用DHT11温湿度传感器完成采集。DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选择,产品为4 针单排引脚封装。图3.4为DHT11器件图。图3.4 DHT11DATA 用于微处理器与DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数部分和整数部分,具体格式在下面说明,当前小数部分用于以后扩展,现读出为零。操作流程如下:一次完整的数据传输为40bit,高位先出。数据格式:8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据+8bit校验和数据传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度小数数据+8bit温度整数数据+8bit温度小数数据”所得结果的末8位。用户MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,用户可选择读取部分数据。从模式下,DHT11接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集,采集数据后转换到低速模式。总线为低电平,说明DHT11发送响应信号,DHT11发送响应信号后,再把总线拉高80us,准备发送数据,每一bit数据都以50us低电平时隙开始,高电平的长短定了数据位是0还是1。如果读取响应信号为高电平,则DHT11没有响应,则检查线路是否连接正常。当最后一bit数据传送完毕后,DHT11拉低总线50us,随后总线由上拉电阻拉高进入空闲状态。图3.5为数字0信号表示方法。图3.6为数字1信号表示方法。图3.5 数字0信号表示方法图3.6 数字1信号表示方法3.2.2 电路设计DHT11温湿度传感器一共有四个管脚,DHT11的供电电压为35.5V,传感器上电后,要等待1s 以越过不稳定状态在此期间无需发送任何指令。电源引脚(VDD,GND)之间可增加一个100nF 的电容,用以去耦滤波。连接线长度短于20米时用5K上拉电阻,大于20米时根据实际情况使用合适的上拉电阻。由于本设计中DHT11温湿度传感器的连接线短于20米,所以选用4.7K的上拉电阻。传感器的VCC端接5V电源,DATA端连接单片机的P1.2管脚,这样DHT11采集到的数据就可以通过P1.2管脚传送到单片机里,单片机读出数据,再进行后续的显示和发射。在传感器的DATA端和单片机的P1.2口的连线上接4.7K上拉电阻连接到电源,传感器的NC端悬空,GND端接地,这样,温湿度采集电路就设计完成了。DHT11温湿度传感器的引脚说明如表3.1所示。温湿度采集电路如图3.7所示。表3.1 DHT11温湿度传感器的引脚说明Pin名称注释1VDD供电3-5.5VDC2DATA串行数据单总线3NC空脚,请悬空4GND接地,电源负极图3.7 温湿度采集电路其内部采集工作原理是利用电阻式的湿敏元件和NTC感温元件分别对湿度和温度进行采集。电阻式湿敏元件主要使用高分子固体电解质材料作为感湿膜,由于膜中存在可动离子而产生导电性,随着湿度的增大,其电离作用增强,便可动离子的浓度增大,电极间的阻值减小,当湿度减小时,电离作用也相应减弱,可动离子的浓度也减小,电极间的电阻值增大,这样,湿敏元件对水分子的吸附和释放情况,可通过电极间电阻值的变化检测出来,从而得到相应的湿度值。NTC感温元件是一种热敏电阻,温度越高热敏电阻阻值越小,温度越低热敏电阻阻值越大,从而通过对电阻值得变化检测出响应的温度值。当单片机通过DATA管脚给出开始采集信号,DHT11等待主机开始信号结束后发出响应信号,并送出40bit的数据,每1bit数据都以50us低电平时隙开始,高电平的长短决定是0还是1,当响应完成后DHT11进入空闲状态,等待主机下一次的开始信号。3.3 光照强度采集电路3.3.1 光照强度传感器简介光照强度采集电路采用数字量输出的光照强度传感器BH1750FVI完成。不区分光源数字型环境光强度传感器BH1750FVI是日本RHOM株式会社近些年推出的一种两线式串行总线接口的集成电路,可以根据收集的光线强度数据来进行环境监测,其具有165 535 lx的高分辨率,可支持较大范围的光照强度变化。其内部是利用一个光敏二极管作为一个感光元件,光照强度不同,通过光敏二极管的光电流不同,再经过后面的集成运放,将变化的电流转变为变化的电压,经过模数转换器后就可以将采集的光照强度的数字量的值输出给单片机。BH1750FVI光照强度传感器外形如图3.8所示。图3.8 BH1750FVI光照强度传感器BH1750FVI光照强度传感器是I2C总线接口,光源的依赖性不大的传感器,光谱的范围是人眼相近,无需任何外部零件。BH1750FVI可以改变传感器的灵敏度,通过函数可以消除光学窗口的影响(有无光学窗口的差异):通过改变测量时间来调整。例如:当光学窗口的传输速率变为50%时(如果设置光学窗口,测量结果可以变为0.5倍)。将传感器灵敏度从默认状态改变为2倍时,光学窗口的影响便可以忽略。 通过改变MG寄存器(时间测量寄存器)的值可以改变传感器的灵敏度。如果希望传感器的灵敏度是原来的2倍,则MG寄存器的值需设置为2倍。当MT寄存器值设置为2倍时,则测量时间需设置为原来的2倍。BH1750FVI主要应用于手机,LCD,TV,PC,便携式游戏机,数码相机,数码摄像机,车载导航,PDA,LCD显示。3.3.2 电路设计BH1750FVI光照强度传感器有五个管脚,其SCL管脚和SDA管脚分别和单片机的P1.0和P1.1相连,SCL端和单片机相连的线为时钟线,SDA端和单片机相连的线为数据线,所采集的光照强度数据就是通过SDA管脚传入单片机中的。在时钟线和数据线上还要分别接5.1K上拉电阻与电源相连,VCC接电源,ADDR管脚和GND管脚同时接地,这样,光照强度采集电路就完成了。BH1750FVI光照强度传感器的引脚说明如表3.2所示。光照强度采集电路如图3.9所示。表3.2 BH1750FVI光照强度传感器引脚说明Pin引脚名称描述1VCC供给电压3-5V2SCLIIC总线时钟线3SDAIIC总线数据线4ADDRIIC地址引脚5GND电源地图3.9 光照强度采集电路 其内部是一个光敏元件和一个模数转换器,其光敏元件为一个光敏二极管,当有光照时,光敏二极管会产生光电流,光照强度不同,这个电流就不同,而后再经过一个集成运放将电流转化为电压,再经过一个模数转换器,从而对光照强度感知后就可以直接输出数字量的光照强度值。上电工作时,BH1750FVI首先初始化,单片机给起始信号,BH1750FVI将采集到的光照强度数据存入寄存器中,而后将其内部寄存器的地址通过总线给主机,主机读取地址中的数据,就是光照强度数据,再将读到的数据进行显示。3.4 显示电路3.4.1 显示器件简介要将采集的数据显示有很多种方法,有多种显示器件可以帮助实现显示电路的设计,本设计显示电路选用七段4位数码管。四位数码管是一种半导体发光器件,其基本单元是发光二极管。能显示4个数码管叫四位数码管。数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。数码管有共阴极和共阳极之分,区别他们的方法是若公共端接地,其他端接电源,若各段测试能亮,说明是共阴的,反之共阳的;若公共端接电源,其他端分别接的,测得各端亮,则说明是共阳的,反之为共阴的。本设计中的数码管为共阳数码管。数码管的引脚图如图3.10所示。图3.10 数码管的引脚图3.4.2 电路设计此电路是由一个单片机和一个七段数码管构成,单片机控制这个数码管,通过程序控制数码管的每一位,使其显示测量的湿度值。大多数的单片机应用系统,都要配置输入设备和输出设备,显示部分属于输出设备,显示作为人机交换的重要媒介,所以,一个好的显示电路对于本系统是非常重要。本系统的显示部分采用的是七段数码管,系统设计的湿度控制范围是20%RH60%RH,误差为1%RH,温度和光照强度的误差1度和1勒克斯,显示电路的作用是循环显示湿度值、温度值和光照强度值,由温湿度采集电路和光照强度采集电路采集的湿度值、温度值和光照强度值传送至单片机,单片机通过程序控制,使采集量在数码管上显示,数码管与单片机的P0口和P2口相连,P0口接上拉电阻。显示电路的类型主要有LCD显示,LED点阵显示以及数码管显示等等,本系统显示部分的作用是显示湿度的上下限值以及采集到的湿度值。考虑到LCD显示电路的工作原理相对比较复杂,并且容易出错,而LED点阵显示对于实现本系统显示部分的设计显然不太适合,因此本系统的显示部分采用的是七段数码管显示,显示电路如图3.11所示。图3.11 显示电路显示电路工作时,由于显示器的每一位是七段的,要想显示0-9每一个数值,首先要在程序中建立一个数组,将这十个数按照在七段数码管显示的规则写好,并放入数组中。然后要显示一个十进制的数,要把这个数的个位、十位、百位和千位都要提取出来,再给到控制数码管的这四位的变量中,最后数码管快速扫描每一位的值,由于是在一个循环里重复扫描,所以我们看到的就是一个稳定的四位数。单片机的每个工作管脚的电流之和不得超过120mA,所以,单片机的管脚不直接与数码管的位选相连,而是与三极管的基极相连,通过三极管驱动数码管。3.5 无线发射、接收电路3.5.1 无线收发模块简介 在当今社会,科技日益进步,无线传输已经成为很多信息传播的主要途径,本设计中要对采集电路采集的湿度值、温度值和光照强度值进行无线发射,在远端要无线接收到这三种数据,并显示。无线收发模块有很多种,本设计的无线发射、接收电路中选用nRF24L01无线收发模块。nRF24L01是一款新型单片射频收发器件,工作于2.4 GHz2.5 GHz ISM频段。内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融合了增强型ShockBurst技术,其中输出功率和通信频道可通过程序进行配置。nRF24L01功耗低,在以-6dBm的功率发射时,工作电流也只有9mA;接收时,工作电流只有12.3mA,多种低功率工作模式(掉电模式和空闲模式)使节能设计更方便。nRF24L01无线收发模块如图3.12所示。图3.12 nRF24L01无线收发模块3.5.2 电路设计 nRF24L01无线收发模块一共有10个管脚,有6个管脚与单片机相连,3.3V供电,所以不能将该无线收发模块直接与单片机相连,要先接在一个专用的转接板上,这个转接板会将5V电源转成3.3V电源,以供给无线收发模块。无线收发模块不区分是无线发射还是无线接收,完全由程序控制。其引脚说明如图3.13所示。图3.13 nRF24L01无线收发模块引脚图无线发射电路中的nRF24L01无线发射模块的六个管脚分别与发射端单片机的P1口和P2口的一些管脚相连,无线接收电路中的nRF24L01无线接收模块的六个管脚分别与接收端单片机的P1口的一些管脚相连。无线发射电路如图3.14所示,无线接收电路如图3.15所示。图3.14 无线发射电路图3.15 无线接收电路发射数据时,nRF24L01无线发射模块采用GFSK调制方式,即高斯频移键控调制方式。首先将nRF24L01配置为发射模式,接着把接收节点地址TX_ADDR和有效数TX_PLD按照时序由SPI口写入nRF24L01缓存区,TX_PLD必须在CSN为低时连续写入,而TX_ADDR在发射时写入一次即可,然后CE置为高电平并保持至少10s,延迟130s后发射数据;若自动应答开启,那么nRF24L01在发射数据后立即进入接收模式,接收应答信号。如果收到应答,则认为此次通信成功,TX_DS置高,同时TX_PLD从TX FIFO中清除;若未收到应答,则自动重新发射该数据,最后发射成功时,若CE为低则nRF24L01进入空闲模式1;若发送堆栈中有数据且CE为高,则进入下一次发射;若发送堆栈中无数据且CE为高,则进入空闲模式2,完成对数据的发射。接收数据时,首先将nRF24L01配置为接收模式,接着延迟130s进入接收状态等待数据的到来。当接收方检测到有效的地址和CRC时,就将数据包存储在RX FIFO中,同时中断标志位RX_DR置高,IRQ变低,产生中断,通知MCU去取数据。若此时自动应答开启,接收方则同时进入发射状态回传应答信号。最后接收成功时,若CE变低,则nRF24L01进入空闲模式1,完成对数据的接收。这样,无线收发电路完成对数据的发射和接收。3.6 键控电路此系统的作用是测试和监控空气的湿度、温度和光照强度,因此,需要手动设置这三量的上限和下限。此键控电路是给单片机连接一个外部中断,当外部中断0口低电平时,即S2闭合,主程序停止,执行中断程序,这时由三个开关分别控制三个采集量的选择,S3闭合则开始预置湿度的上下限,S4闭合则开始预置温度的上下限,S5闭合则开始预置光照强度的上下限。当选择好即将预置的采集量后,这时当S6接高电平时,开始设置预置量的上限,接低电平时,则开始设置预置量的下限。S7是控制显示器的十位,按下则十位加一,一下一下的加,加到10则自动变为0,S8是控制显示器的个位,按下则个位加一,同样也是一下一下的加,加到10也会自动变为0,这样就完成了手动预置的操作。设置完毕后,将S2断开,中断程序停止,系统继续执行主程序,即数码管继续循环显示此时所测大气的湿度、温度和光照强度,键控电路如图3.16所示。图3.16 键控电路3.7 声光报警电路此电路部分是为了方便工作人员监控湿度而设计的,该部分电路是由一个单片机、一个发光二极管、一个三极管和一个蜂鸣器组成,和单片机连接的支路上串联1K电阻。当此时空气的湿度、温度和光照强度的任意一个值低于所设置的下限值或高于所设置的上限值时,启动声光报警电路,二极管会发光,蜂鸣器会响。当空气湿度、温度和光照强度在正常范围之内时,不会此启动声光报警电路,声光报警电路如图3.17所示。图3.17 声光报警电路当三个采集量有不在所设定的上下限范围之内时,单片机和蜂鸣器、发光二极管连接的管脚分别置1,这样三极管基级就有小电流,会使发射结正偏,三极管的集电极接电源,所以会使集电结反偏,三极管导通,驱动蜂鸣器工作。而放光二极管正向导通,会发光。这样声光报警电路就会工作了。第4章软件系统的设计系统软件设计也就是程序设计,就是在完成了硬件系统的基础上,再编写相应的程序,下载到芯片里,通过执行程序指令控制硬件,从而实现各部分功能。在本设计中,软件编程方面采用C语言对单片机进行编程,并使用KeiLC51系统进行软件调试。Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。掌握这一软件的使用方法对于使用51系列单片机的使用者来说是十分必要的。早期的单片机程序多采用汇编语言编写。用汇编语言编程,直接、简捷,可有效地访问和控制各种硬件设备,如存储器、I/O 口等,目标代码简短、占用内存少、执行速度快、语句效率高。然而,由于汇编语言是面向机器的语言,不同厂家或同厂家不同系列的单片机,其汇编语言指令系统往往互不相同,即通常所说的“不兼容”。这就出现了精通51单片机汇编语言的人不能直接编写PIC 或其他单片机的汇编语言源程序,反之亦然的现象,以及产品升级换代和不同单片机间程序移植难的问题。而且,由于汇编语言是采用助记符的低级语言,可读性较差,当源程序功能多、程序长时,即使加了注释,阅读自己编写的程序也会感到困难,更不用说修改程序和增加功能了。目前,单片机的应用越来越广,各半导体生产厂家不断推出各种高、中、低档单片机系列,以适应市场的需求。而客户对单片机系统的设计人员的基本要求,就是要选择能够满足产品性能和成本要求的单片机,并以最快的速度开发出完全满足市场需求的智能化产品。用汇编语言编程显然无法达到要求。用C 语言开发单片机系统软件的最大好处,是代码效率高、软件调试直观、维护升级方便、代码的重复利用率高、便于跨平台的代码移植等。因此,C 语言在单片机系统设计中得到越来越广泛的运用。C 语言是一种高级语言,具有低级语言的特点,原来用各种汇编语言编写的单片机程序,均可用C语言程序代换。于是本设计采用C语言进行编程。4.1 主程序的设计开始本设计主要是完成对温度、湿度和光照强度的采集并用数码管显示,并将数据通过无线发射模块发射出去,发射端还要判断采集的数值是否在预置的上下限范围之内,不在范围内则还要进行声光报警。接收端则只显示接收的数据。发射端主程序流程图如图4.1所示,接收端主程序流程图如图4.2所示。系统初始化调用温湿度采集子程序调用光照强度采集子程序调用数码管显示子程序调用无线发射子程序是否在上下限范围之内声光报警 N Y图4.1 发射端主程序流程图开始调用无线接收子程序系统初始化调用数码管显示子程序图4.2 接收端主程序流程图4.2 温湿度采集子程序的设计此部分是使用DHT11温湿度传感器进行温度和湿度的采集,传感器内部的电阻式湿敏元件和NTC元件分别对湿度和温度采集,再经数模转换后将数值传送给单片机。DHT11首先初始化,在采集完数据后,DATA端与单片机的P1.2口相连,开始单片机给P1.2口置0,表示主机发出开始信号,然后主机把总线拉高等待DHT11发出响应信号,DHT11收到开始信号后将P1.2口置0表示发出响应信号,而后开始一位一位的传输数据,这时主机读取响应信号。温湿度采集子程序流程图如图4.3所示。开始DHT11初始化数据采集主机发出开始信号DHT11发送响应信号传送数据主机读取响应信号返回图4.3 温湿度采集子程序流程图4.3 光照强度采集子程序的设计此部分是使用BH1750FVI光照强度传感器对光照强度进行采集,传感器内部的光敏二极管会发出光电流,光照强度不同,光敏二极管所发出的光电流值则不同,在经过集成运放和模数转换器就可以将光照强度以数字量的形式传送给单片机,完成对光照强度的采集。光照强度采集部分流程图如图4.4所示。开始BH1750FVI初始化主机发送从机地址写器件相应寄存器地址写数据到相应寄存器地址读取数据主机发送停止信号返回图4.4 光照强度采集子程序流程图4.4 无线发射接收子程序的设计此部分是利用nRF24L01无线发射模块对采集完成的温度数据、湿度数据和光照强度数据进行无线发射。nRF24L01无线收发模块不区分发射和接收,完全由单片机的程序控制,将从传感器采集完成的温度、湿度和光照强度值存入到TxBuf数组中,无线发射模块会将这个数组中的数据发射出去。接收端的无线接收模块会将数据接收并存入到RxBuf数组中,再读取这个数组中的数据,这三个数据就是发射端采集的温度、湿度和光照强度的数值。无线发射子程序流程图如图4.5所示。开始nRF2401初始化启动发射模式将数据存入TxBuf中无线发射返回图4.5 无线发射子程序流程图无线接收子程序流程图如图4.6所示。开始nRF2401初始化启动接收模式无线接收读取RxBuf中的数据返回图4.6 无线接收子程序流程图4.5 数码管显示子程序的设计由采集电路采集到的温度数据、湿度数据和光照强度数据传输到了单片机内,单片机就要通过程序控制将数据显示出来,这时就要设计数码管显示电路,将传感器采集完成的湿度值,温度值和光照强度值用数码管显示。数码管的位选分别接到单片机的P2.0至P2.3口上,由于是共阳极的数码管,所以位选的四个管脚置1数码管就灭,置0则亮,所以数码管工作时,首先将数码管清屏,就是全灭,再一位一位的扫描显示各位的数。段选部分,abcdefg七段与P0口相连,哪一段置0则亮,置1则灭,工作时先将要显示的数的段选码从数组中找到送至P0口,再开启位选,比如若要显示1,则其二进制的段选码应为11111001,十六进制数为0 xf9。数码管显示流程图如图4.7所示。开始清屏千位显示百位显示十位显示个位显示返回图4.7 数码管显示子程序流程图4.6 键控部分中断程序的设计此部分是单片机的一个中断服务程序所控制的,当单片机的INT0口接低电平时,主程序停止,这时由三个开关分别控制三个采集量的选择,控制哪个量的开关闭合则代表即将预置哪个量,S3控制湿度,S4控制温度,S5控制光照强度。S3闭合则开始预置湿度的上下限,S4闭合则开始预置温度的上下限,S5闭合则开始预置光照强度的上下限,S6接高电平时可以设置上限,S6接低电平时可以设置下限。S7和S8分别是控制这三个采集量的上限或者下限的十位调节和个位调节的,按一下则对应位加一,加到十则跳到零,这样就完成了键控部分的设计。键控部分流程图如图4.8所示。开始预置量选择是否设置上限设置下限设置上限 Y N 十位调节个位调节返回图4.8 键控部分中断程序流程图第5章系统调试5.1 硬件调试在进行硬件调试时,心一定要细,一定要耐心,因为硬件有一个地方错误都可能导致整个电路出于不正常工作状态。此系统硬件的搭建有的部分是利用杜邦线将各个模块和单片机最小系统开发板相连,有的部分是将自己焊接的电路板与单片机相连接。鉴于使用的硬件比较多,电路比较复杂,所以在硬件调试的过程中一定要运用了分步调试与整体调试想结合的方法。第一步调试硬件电路板首先目测各元件各管脚是否都已经按照电路图正确连接,接着利用电表逐一排查,查看每个芯片的电源及地有无接反,是否焊好以及有无漏焊虚焊,然后查看每根导线与板的连接情况。仔细检查各芯片的管脚连线是否正确,在这一切工作都完成后检查高低电平是否短路。在这一切保证无误后通电测量各芯片高低电压及有关管脚电压。第二步以同样的方法步骤检查近端硬件电路板。最后将两部分电路连接在一块,主要看LED数码管能否显示。图5.1为硬件搭建的整体图,此部分主要包括采集电路、显示电路和无线收发电路。图5.1 硬件搭建的整体图在硬件调试时一共发现了三个错误,有一根连接数码管和单片机开发板VCC端的杜邦线松了,在焊接键控部分时有一个焊点虚焊了,无线发射模块的管脚与开发板之间连接错了。前两个错误很快就找到了,并且换了一个杜邦线,将虚焊的焊点重新焊接完毕,最后一个错误找了好久才发现,可能是因为发射模块管脚多的原因吧,找到错误后重新将管脚连接正确。发射部分的键控电路焊接如图5.2所示。图5.2 发射部分焊接的键控电路5.2 软件调试本设计中软件部分是采用C语言进行编写的,纯软件调试只是对软件程序进行完善和编译,使之没有语法上的错误,能够正确运行。由于本系统软件编写了多个功能模块,所以在软件调试中首先对各个功能模块进行了调试,然后对整个程序进行连调在编译通过的情况下运行。本设计中有两个单片机,发射部分一个,接收部分一个,所以发射端要有发射部分的程序,接收端要有接收部分的程序。在调试过程中遇到了一些语法错误,在查阅资料的同使请教了老师和同学,顺利将其改正。由于无线发射和接收部分的通信无法在protues软件里进行仿真,所以以湿度一个采集量为例,在发射端采用555芯片搭制多谐振荡电路单片机计频的方法对湿度进行采集,其protues仿真电路如图5.3所示。此时的相对湿度为40%RH。图5.3 以湿度为例在发射端的protues仿真图键控设置采集量上下限的protues仿真图如图5.4所示,同样也是以湿度为例在发射端,设置湿度的上限为85%RH。图5.4 将湿度上限设为85%RH的仿真图5.3 软硬件联调调试完硬件电路以及软件编译成功之后,就开始了软硬件的联合调试。即使前期已经分别完成了软件和硬件的独立调试,但在联机调试中也还是遇到了一些的问题,比如硬件连接单片机的管脚与程序中该硬件连接单片机的管脚不一致,下载程序失败导致硬件无法工作,将硬件和程序仔细核对,下载程序时步骤正确,这样就可以避免这些错误。硬件显示如图5.5所示,此时光照强度的显示值为59,由于拍摄效果不好,所以图中数码管显示数值模糊。图5.5 硬件显示图如用手将光强传感器的感官部分挡住,则光照强度变为0,如图5.6所示。图5.6 遮住光照强度传感器后显示光强为0的硬件图第6章社会效益及经济效益在现实生活中,无论是工业、农业还是日常生活都离不开对大气温度、湿度和光照强度的测量。尤其是农业生产中,温度、湿度和光强对农作物的生长产生了很大的影响,所以此系统可以极大的满足日常生活中人们的使用,而且此系统具有无线发射和无线接收的功能,在科技越来越进步的当今社会,人们的通信都无线化了,本系统在采集温度、湿度和光强的同时还可以通过无线发射和接收模块将数值传送到远端,这也极大的完善了本系统的功能,可以满足人们在远端想得知这三个采集量的数值的要求。所以本系统一旦融入社会,一定会带来十分好的社会效益。本次设计为了达到良好的实用性,又尽可能的考虑了价格因素,在挑选器件上做到了物美价廉,因此有比较高的性价比。该设计符合社会需求,拥有广大的消费市场,而且推动了电子通信产业的发展,具有广阔的市场前景。结 论本次课程设计实现了对生态园的大气环境的检测,其中包括湿度数据、温度数据和光照强度数据的采集,数码管对湿度值的显示,手动设置采集量的上下限以便在所测的三个采集量不在上下限范围之内时启动声光报警。工作人员如没有听到蜂鸣器发出声响,没有看到报警灯亮,则只需按时记录此生态园的空气湿度,并做相应统计。如果听到蜂鸣器发出声响,看到报警灯亮,那么代表此时空气湿度、温度或光照强度中至少有一个值过低或过高,需工作人员马上报告并作出应对措施。此系统还将采集完成的三种数据通过无线发射模块发射出去,这样在远处的检测人员也可以看到温度、湿度和光照强度的数值,从而完成了在远程的检测。综上,此环境检测系统会给社会带来很大方便,可以大大的提高生态园的安全指数。这是一次十分有意义的训练,是一次真正锻炼我们专业知识的训练。通过毕业设计,我真正的体会到了电子知识给我们的日常生活和工业生产带来了很多方便之处,可以说我们的社会处处离不开电子。四个月的毕业设计结束了,在刚开始领到毕设题目时,生态园环境的检测系统,第一感觉就是应该很简单,因为题目里面的词语都听过,再仔细想想,感觉不知如何入手,看到任务书以后,我才渐渐的明白了需要我们做什么。这个大课题的电路设计最初让我很
展开阅读全文