《无线温湿度监测系统设计设计.doc》由会员分享,可在线阅读,更多相关《无线温湿度监测系统设计设计.doc(36页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流无线温湿度监测系统设计设计.精品文档.题 目 无 线 温 湿 度 监 控 系 统 学生姓名 韩 琛 学号 1113024016 所在学院 物 理 与 电 信 工 程 学 院 专业班级 通 信 1101 班 指导教师 魏 瑞 完成地点 博 远 楼 2014 年 5 月 30 日毕业论文设计任务书院(系) 物理与电信工程学院 专业班级 通信工程 通信1101 学生姓名 韩 琛 一、毕业论文设计题目 无线温湿度监测系统设计任务书 二、毕业论文设计工作自 2014 年 12 月 09 日 起至 2015 年 06 月 20 日止三、毕业论文设计进行地
2、点: 物电学院北区实验室 四、毕业论文设计的内容要求: 近年来,温湿度监测技术发展相当迅速,且随着自动化技术的发展,在诸如粮库、药品库房、档案馆、农业温室大棚、化学物品仓库以及放有高级设备的实验室等某些行业和场所实现环境参数的检测显得愈发重要。常用的检测方法可分为人工检测方法与自动检测方法。前者显然不科学、不及时,可能对检测者有一定的危险性。因此,本课题主要采用单片机与无线收发模块完成,可实现温湿度数据的监测、显示、报警等。 本次毕业设计要求: 1.采用温度传感器电路测量出室内的温湿度; 2.具有显示室内外温度且带有过载提示的功能; 3.具有无线传输、处理及远程控制功能; 4.完成系统的软硬件
3、设计。 五、毕业论文设计应收集资料及参考文献: 阅读和学习关于单片机应用、数据采集和远程监控方面的专业资料,参阅的外文文献不少于3篇。 六、毕业论文设计的进度安排: 1月10日3月20日:查阅资料,完成外文翻译原文和开题报告。 3月21日4月20日:完成系统的硬件及软件的基本设计并提交中期检查报告。 4月21日5月20日:进一步完善系统的硬件及软件的设计,准备作品验收。 5月21日6月15日:撰写、修改毕业设计论文,准备并完成答辩。 指 导 教 师 魏 瑞 系(教 研 室) 系(教研室)主任签名 批准日期 接受论文 (设计)任务开始执行日期 学生签名 无线温湿度监测系统设计韩琛(陕西理工学院物
4、理与电信工程学院通信工程专业1101班级,陕西 汉中 723000)指导老师:魏瑞 摘 要本文论述了一种将无线收发和手动控制温湿度限值相结合的一种温湿度监测系统。以STC89C51单片机为该系统的主要控制单元,用C语言编程;采用温湿传感器DHT11和无线收发NRF24L01完成对试验现场温湿度采集、控制和数据的收发;液晶显示屏1602对数据进行显示,完成对当前温湿度的设置值显示、实际值显示;蜂鸣器和二极管完成系统的声光报警。该系统结构简单,操作便利,有很强的实用价值。 关键词STC89C51;温湿度传感器;NRF24L01;显示;报警。Design of wireless temperatur
5、e and humidity monitoring systemHan Chen(Grade02,Class1101,Major Communication Engineering,Physical and Telecommunication Engineering Dept.,Shaanxi University of Technology,Hanzhong 72300x,Shaanxi)utor: Wei Rui AbstractIn this paper, a temperature and humidity monitoring system based on the combinat
6、ion of the temperature and humidity limits for the wireless transceiver and manual control is described. STC89C51 microcontroller as the main control unit of the system, using the C programming language. The temperature and humidity sensor DHT11 and wireless transceiver nRF24L01 completion of field
7、test of temperature and humidity data acquisition, control and data transceiver; liquid crystal display 1602 the data display, completion of the current temperature and humidity setting value display, actual value display; buzzer and led to complete the system of sound and light alarm. The system ha
8、s a simple structure, convenient operation and strong practical value. Key wordsSTC89C51; Temperature senior; NRF24L01; Display; Warning目录引言11.方案设计与选择21.1设计要求21.2方案设计21.3方案选择32.硬件设计52.1系统硬件概述52.2系统硬件设计52.2.1 单片机主控制模块的设计52.2.2 温湿度采集电路模块的设计62.2.3 无线收发电路模块的设计72.2.4报警电路设计82.2.5 显示电路模块的设计92.3 系统电路及说明103.
9、软件设计113.1系统程序概述113.2主程序的设计113.2.1控制显示子系统程序113.2.2测量发射子系统程序113.2.3无线收发程序123.2.4 LCD显示程序133.2.5 温湿度采集程序144.仿真与调试154.1硬件仿真154.2软件仿真154.3系统调试164.4主要指标测试185.结束语19致谢20参考文献21附录A22外文文献22 外文翻译译文27附录B31采集发射子系统31控制显示子系统32元器件清单33仿真程序34实物图42引言选题目的及意义 21世纪的今天,科学技术的发展日新月异,科学技术的进步同时也带动了测量技术的发展,现代控制设备不同于以前,它们在性能和结构发
10、生了翻天覆地的变化。我们已经进入了高速发展的信息时代,测量技术是当今社会的主流,广泛地深入到应用工程的各个领域。温湿度在工业制造,农业生产中是非常重要和基本的参数,在生产制造过程中常需对温湿度进行检测和监控,采用无线设备进行温湿度检测并用数字显示出来,比便进行信息存储和实时控制,对于提高生产效率和产品质量、节约能源等都有重要的作用。随着工业科技、农业科技的发展,温湿度测量的需求越来越多,温室度测量也显得越来越重要。但是在一些特定环境温湿度监测环境范围大,监测距离远,布线很不方便。而这时采用无线测量监控的方式对温湿度数据进行采集,显得尤为方便。本次毕业设计,设计的是基于单片机的远程无线温湿度监控
11、系统。利用了无线电通信的方便、灵活等特性,而且经济实惠。它不需要像网络控制那样,耗费巨大的通信资源,也不受网络速度的制约和影响。在温湿度监控的方法上,传统的监控方式(包括经典监控和现代监控),在处理具有非线形或不精确特性的监控对象时,显得比较困难和复杂,传统的温湿度监控系统大为滞后系统,较大的纯滞后会引起系统的不稳定。综上所述,本文论证设计的无线温湿度监控系统是基于传统监控方式结合当代的无线电技术的创新,可被广泛应用于工业、农业、环保、服务业、安全监控等需要远程监控温湿度的工程中,例如:城市路灯故障检测和供电线路防盗监视、城市居民小区供热检测、大型仓库温度检测、工业生产测控、农业生产温度测控、
12、环保工程、故障监控工程等。发展趋势 当前社会,各行各业越来越重视产品的生产、物品的管理和仓库的存储等环节,很多企业仓库存储的都是非常重要的物品,如:烟叶、纺丝、药材、食品等。为了仓储的商品的质量完好,必须制造出适合于商品储存的环境,比如当储库内温湿度适合商品储存时,就要防止库外环境对库内的不利影响。因此,近年来无线温湿度监控系统成为各类监测、检测应用的一个大的的发展趋势,越来越多的要求要使用无线技术来解决远程控制的问题的企业要用到无线温湿度监控系统。这些环境由于现场的局限性和特殊性不得不采用无线监控和控制的方式来监测现场的各类指标并做出对应操作。比如:野外气象监测、移动车队车况监测、易燃易爆仓
13、库、高压线缆运行状况监测等等。无线温湿度监控系统由于其特殊的无需线缆进行信号传输方式,而且抗干扰能力强、功耗低等优点。越来越受到社会各业的关注,所以无线温湿度监控系统的市场前景非常大。课题主要研究内容 基于单片机设计出测量当前温湿度,并实现无线收发温湿度数据功能。对比选取最适合的元器件,完成无线收发模块的选型和硬件电路和供电系统的设计,选取合适的温湿度传感器测出室内当前的温湿度,并完成按键设置温湿度报警限值,当温湿度超过设置的限值声光报警。1.方案设计与选择 1.1设计要求 (1)采用温度传感器电路测量出室内的温湿度; (2)具有显示室内外温度且带有过载提示的功能; (3)具有无线传输、处理及
14、远程控制功能; (4)完成系统的软硬件设计。1.2方案设计方案一:系统的核心控制器采用FPGA(现场可编程们阵列),温湿度传感器使用热敏电阻,无线收发模块用一对NRF24L01,采用555定时器构成报警模块器,显示模块采用数码管显示,流程图如图1.1所示。用一个相应阻值电阻与热敏电阻相串联分压,热敏电阻阻值在不同的温度下表现出不同的电阻值,采集这两个电阻变化的分压值,并进行A/D转换。将转换后的数字信号传给FPGA,由FPGA实现各种复杂的逻辑功能,通过NRF24L01发送出去,然后由另外一个NRF24L01接到信号,然后传递给FPGA,经过FPGA的逻辑运算,将收到的数据显示到数码管上,并对
15、数据进行判断,若需要报警则接通555报警电路,进行报警。FPGA控制器A/D转换热敏电阻无线收发模块FPGA控制器555报警系统数码管显示 图 1.1 系统方案一流程图方案二:系统的控制器采用单片机作为主要的控制芯片,传感器采用一体化变换器模块DHT11,无线收发模块采用一对JF24D,显示模块继续采用数码管,报警模块采用9102三极管驱动蜂鸣器,设计流程如图1.2所示。 DHT11传感器采用一体化变换器模块,通过总线通信协议,将数据读入CPU进行处理,然后按照总线时序将数据读出,传递给单片机,单片机收到数据,经过内部逻辑运算处理,将数据传递给无线发送模块JF24D,由无线接受模块JF24D接
16、收到数据,传递给单片机进行运算,转化为电信号在数码管上显示,经过单片机的逻辑运算,若接收到的数据大于或者小于所设置的上下限,则给一个低电平信号,导通继电器,使蜂鸣器报警。数码管显示温湿度采集蜂鸣器报警51单片机51单片机JF24DJF24D图1.2 系统方案二流程图此方案结构变得简单,减少了系统的体积,提高了系统的稳定性,但JF24D价格比较贵,而且消耗大,使用电路较为复杂,占用资源比较多,不建议使用。用数码管显示,虽然简单但是局限性比较多,也不打算使用。 方案三:系统的控制器依旧采用51单片机系列作为主要的控制芯片,传感器采用一体化变换器模块DHT11,无线收发模块采用一对NRF24L01,
17、显示模块改用1602液晶显示屏,报警模块采用9102三极管驱动蜂鸣器,设计流程如图1.3所示。DHT11传感器采用一体化变换器模块,通过总线通信协议,将数据读入CPU进行处理,然后按照总线时序将数据读出,传递给单片机,单片机将电信号转化为数字信号,传递给无线发送模式NRF24L01,由另外一个无线接受模式NRF24L01收到数据,将信号传递给单片机,单片机经过运算,将数字信号转化为电信号,在1602液晶显示屏上显示出来,若显示的数据超过经过按键设置的温湿度上下限,则单片机给继电器一个低电平,导通链接9102三极管蜂鸣器和二极管的继电器,进行声光报警。 1602显示温湿度采集蜂鸣器报警51单片机
18、51单片机NRF2401NRF2401图1.3 系统方案三流程图1.3方案选择 方案一中,FPGA(现场可编程们阵列)响应速度快,体积小,稳定性高,可实现各种复杂的逻辑功能。但由于FPGA成本高,电路板的布线比较复杂,加重了电路设计和实现焊接的工作。而且采用温、湿敏元件进行数据采集的话,需要用到模数转换器和放大器,所得到的数值,不能直接使用。还要考虑抗干扰问题,需要专业的仪器对采集的数据建立数据表,还要进误差处理,及数据校准。电路结构复杂,程序算法复杂。此方案所要实现如此多的内容,硬件电路设计会比较复杂,而且功耗大,不适合本设计,所以不采用。 考虑到本系统对程序运行速度的要求不高以及成本问题,
19、在方案二中,采用单片机进行逻辑运算和控制,单片机的响应速度没有FPGA快,但是成本小,稳定性也不错。因为用温、湿敏元件进行数据采集,电路结构和程序算法都比较复杂,所以在方案二中,采用一体化的温湿度传感器DHT11,温湿度传感器DHT11采用一体化变换器模块,电路简单,处理器不需要管理数据变换问题,直接通过按照总线时序将数据读出,对数据稍做处理就可以了。无线收发模块改采用一对JF24D,但是经过一番测试,发现用JF24D在传输精度上确实比NRF24L01要好,但是本系统对数据的传输精度要求没有那么高,考虑到成本问题,不建议使用JF24D,而且方案二继续采用数码管进行数据显示的话,只能显示数字,有
20、很大的局限性,考虑到本系统要显示温湿度两个数据,所以不采用方案二。经过对比方案一和方案二,最终本次设计选择的方案为方案三,主控制芯片考虑到本系统在程序运行速度方面的要求不高以及成本问题,最后选择采用STC89C51的单片机芯片作为主控制芯片;温湿度采集器考虑到本系统在运行方面要求的稳定性,以及短暂的开发周期,要实现温湿度采集功能并且价格适中,所以最后采用DHT11传感器作为温湿度采集器;无线收发模块考虑到系统在功耗方面的要求,对比后,NRF24L01以其功耗低,而且成本较低,易于购买,所以最后采用NRF24L01进行无线数据的接受采集;显示模块考虑到本系统中要显示温度和上限温度等信息,LCD1
21、602液晶屏以可显示的内容较多,方便组合,可视面积大,画面效果好,抗干扰能力强等优点,所以最后采用LCD1602显示数据;报警模块因为本设计的报警时间是随机的,取决于现场的温湿度,综合考虑后,采用9102三极管驱动蜂鸣器和发光二极管结合进行声光报警。 此方案成本低,电路简单易懂,功耗小,并且基本能够实现任务书所需要求。2.硬件设计 2.1系统硬件概述 系统硬件电路主要分为:单片机STC89C51控制系统,无线收发电路,显示电路,键盘电路,温湿度采集电路,声光报警电路,设计总框图如图2.1所示。显示控制控制系统测量发射控制系统显示电路无线收发电路温湿度采集电路键盘电路声光报警电路图2.1 总设计
22、框图硬件电路是由单片机芯片STC89C51单片机为控制核心,由电源直接供电,主要负责链接各个模块,控制报警和收发数据,并对收到数据进行判断;温湿度的采集以DHT11为主体来构成,由电源直接供电,与单片机直接链接,将温湿度转化成串行数字信号传递给单片机处理,且在同一总线上可接多个传感器芯片;无线收发模块用NRF24L01,因为NRF24L01工作于2.4GHz2.5GHz ISM频段,工作电压为3.3v,所以不能由电压源直接供电,所以用LM1117为核心,组建一个调压电路,将电源的5v电压调整到NRF24L01的工作电压;显示部份由1602 LCD来完成,因为单片机的输出端电压较小.所以在单片机
23、与1602 LCD来之间接一个上拉电阻,保证信号的传输;报警电路以三极管驱动蜂鸣器为核心,结合继电器及发光二极管组成,与单片机链接实现声光报警和主要单元电路的设计。 2.2系统硬件设计2.2.1 单片机主控制模块的设计单片机是整个系统的控制中枢,它负责周围器件的协调控制工作,从而实现特定的功能。硬件实现上采用模块化设计,每一模块实现一个或者多个特功能。本系统中,采用两个单片机,分别控制测量发射子系统和控制显示子系统。在控制显示子系统中,单片机P1.0,P1.1与1602液晶显示屏的4,6管脚链接,P0.0-P0.7与1602液晶显示屏的7-14管脚链接,负责给1602传递数据,P1.2链接报警
24、电路,P1.3和P1.5链接两个二极管,通过点亮二极管显示当前的收发数据状态。EA/VA接5V电压源。P1.4,P1.6,P1.7分别链接一个按键,通过三个按键对温湿度的上下限进行设置。四个IN输出引脚链接四个继电器驱动,若有需要,给一个低电平,导通继电器,完成声光报警。X1,X2接晶振电路。Reset接复位电路,链接一个按键,对单片机进行复位操作。P2.0-P2.5链接NRF24L01,用于接受数据或者发送数据,具体电路原理如图2.2所示。图2.2 控制显示子系统原理图 在测量发射子系统中,单片机P1.0与DHT11的2管脚链接,用于接受温度传感器通过总线传输的数据,P0.0-P0.5与NR
25、F24L01链接,用于接受数据或者发送数据,P1.4和P1.6链接两个二极管,通过点亮二极管显示当前的收发数据状态。EA/VA接5V电压X1,X2接晶振电路。Reset接复位电路,链接一个按键,对单片机进行复位操作,具体电路原理如图2.3所示。图2.3 测量发射子系统原理图2.2.2 温湿度采集电路模块的设计DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,它应用专用的数字模块采集技术和温湿度传感技术。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。校准系数以程序的形式存
26、在OTP内存中,传感器内部在检测型号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。产品为4针单排引脚封装,连接方便3。 DHT11的供电电压为35.5V,引脚说明如表2.1所示。电压源为5V电压,与DHT11的1管脚链接。2管脚与单片机链接,用于传递数据,3管脚悬空,4管脚接地。电源引脚(VDD,GND)之间可增加一个100nF 的电容,用以去耦滤波,电路图如图2.4所示。表2.1 DHT11引脚说明表pin名称注释1VDD供电3-5.5V DC2DATA串行数据,单总线3NC空脚,请悬空4GND接地,电源负极图2.3 温湿度传感器DHT11电路图控制显示子系统发送一
27、次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,用户可选择读取部分数据.从模式下,DHT11接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集.采集数据后转换到低速模式。2.2.3 无线收发电路模块的设计 NRF24L01是一款新型单片射频收发器件,工作于2.4GHz2.5GHz ISM频段。内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融合了增强Shock Burs技术,其中输出功率和通信频道可通过程序进行配置。因为NRF24L01工作电
28、业为3.3,但是电源电压为5V,所以用调压器LM1117组成稳压电路,将5V电压稳定为3.3V。 发射数据时,首先将NRF24L01配置为发射模式:接着把接收节点地址TX_ADDR和有效数据TX_PLD按照时序由SPI口写入NRF24L01缓存区,TX_PLD必须在CSN为低时连续写入,而TX_ADDR在发射时写入一次即可,然后CE置为高电平并保持至少10s,延迟130s后发射数据;若自动应答开启,那么NRF24L01在发射数据后立即进入接收模式,接收应答信号(自动应答接收地址应该与接收节点地址TX_ADDR一致)。如果收到应答,则认为此次通信成功,TX_DS置高,同时TX_PLD从TX FI
29、FO中清除;若未收到应答,则自动重新发射该数据(自动重发已开启),若重发次数(ARC)达到上限,MAX_RT置高,TX FIFO中数据保留以便在次重发;MAX_RT或TX_DS置高时,使IRQ变低,产生中断,通知MCU。最后发射成功时,若CE为低则NRF24L01进入空闲模式1;若发送堆栈中有数据且CE为高,则进入下一次发射;若发送堆栈中无数据且CE为高,则进入空闲模式25。 接收数据时,首先将NRF24L01配置为接收模式,接着延迟130s进入接收状态等待数据的到来。当接收方检测到有效的地址和CRC时,就将数据包存储在RX FIFO中,同时中断标志位RX_DR置高,IRQ变低,产生中断,通知
30、MCU去取数据。若此时自动应答开启,接收方则同时进入发射状态回传应答信号。最后接收成功时,若CE变低,则NRF24L01进入空闲模式15。 SPI口为同步串行通信接口,最大传输速率为10Mb/s,传输时先传送低位字节,再传送高位字节。但针对单个字节而言,要先送高位再送低位。与SPI相关的指令共有8个,使用时这些控制指令由nRF24L01的MOSI输入。相应的状态和数据信息是从MISO输出给MCU5。 图2.4 NRF24L01使用电路2.2.4报警电路设计蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子
31、产品中作发声器件。 蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型4。压电式蜂鸣器: 压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。有的压电式蜂鸣器外壳上还装有发光二极管。多谐振荡器由晶体管或集成电路构成。当接通电源后(1.515V直流工作电压),多谐振荡器起振,输出1.52.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声4。电磁式蜂鸣器:电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁的相互缠绕4。 报警采用控制器输出脉冲信号经一级放大电路驱动蜂鸣器报警的
32、实现,电路原理图如图2.11所示。图2.11 报警电路原理图 蜂鸣器额定电流IB30mA,而对于AT89S52单片机,P1口的灌电流为 16mA,拉电流为60A,由此可见,仅靠单片机的P1口电流是不能驱动蜂鸣器的,必须使用集晶体管放大电路,为了使单片机消耗的功率更小,所以使用 PNP型晶体管9012。2.2.5 显示电路模块的设计显示模块选用1602字符型液晶模块1602字符型液晶模块是点阵型液晶,驱动方便,经编码后显示内容多样化。显示质量高、数字式接口、体积小、重量轻、功耗低的优点。芯片工作电压为4.55.5V,工作电流为2.0mA(5.0V)。 1602字符型LCD通常有14条引脚线或16
33、条引脚线的LCD,其中1管脚一般接地,2管脚链接电压源,3管脚链接两个电阻,调整LCD对比度,一般选用一个10K和3K的电阻,7-14管脚链接单片机,15-16位调整LCD背光,各个脚的功能如表2.2所示。引脚 符号 功能说明1VSS一般接地2VDD接电源(+5V)3V0LCD对比度调整端,接正电源时对比度最弱,接地时对比度最高4RSRS为寄存器选择,高电平时选数据寄存器、低电平时选指令寄存器。5R/WR/W为读写信号线,高电平时进行读操作,低电平时进行写操作。6EE(或EN)端为使能(enable)端,下降沿使能。7DB0底4位三态、 双向数据总线 0位(最低位)8DB1底4位三态、 双向数
34、据总线 1位9DB2底4位三态、 双向数据总线 2位10DB3底4位三态、 双向数据总线 3位11DB4高4位三态、 双向数据总线 4位12DB5高4位三态、 双向数据总线 5位13DB6高4位三态、 双向数据总线 6位14DB7高4位三态、 双向数据总线 7位(最高位)(也是busy flag)系统采用P0口与液晶数据端口相连接,P2.0-P2.2与液晶的RS、W、E控制引脚相连,电路图如表2.5所示。表2.5 1602管脚功能图2.5 1602液晶显示电路原理图 2.3 系统电路及说明 将以上各个模块组装链接起来,无线温湿度监控系统就做好了,以下是详细的工作原理:温湿度传感器DHT11对当
35、前的温湿度进行采集,测量发射子系统的控制芯片SAT89C51对采集温度数据进行处理,将有用数据送给无线发射模块NRF24L01,控制显示子系统的无线接受模块NRF24L01接受数据送给控制芯片SAT89C51,由SAT89C51对数据进行分析处理,然后对当前实际温湿度进行显示;如果有需要,可以通过独立键盘对温湿度的报警上下限进行设置,当获取的温湿度超过设置的上下限时,控制继电器导通,蜂鸣器响,同时点亮发光二极管;当检测到的温湿度在报警的上下限范围内,则系统正常运行,每0.5秒显示一次当前的温湿度值。3.软件设计 3.1系统程序概述 该系统分为控制显示子系统,测量发射子系统;控制显示子系统主要包
36、括主程序、无线接受程序、LCD显示程序、声光报警程序、按键控制程序;测量发射子系统主要分为主程序、温湿度测量程序、无线发送程序。 3.2主程序的设计控制显示子系统程序流程图、测量发射子系统程序流程图和声光报警程序流程图如图3.1、图3.2、图3.3所示。3.2.1控制显示子系统程序首先,对NRF24L01进行初始化,将其调整为接受模式,并打开接受数据的指示灯,读取状态寄存器,开辟接受数据存放空间,然后对LCD1602进行初始化,准备工作完毕。从NRF24L01得到数据后,经过处理显示到LCD1602上,同时还有3个按键分别为设置(确定)键,+键和键,能够分别设置温度和湿度的上限和下限判断当前温
37、湿度是否超过设置的上下限,超过则通过给继电器一个低电平,使继电器导通,蜂鸣器响,并点亮二极管,流程图如图3.1所示。开始是否报警NRF24L01初始化是否本地报警LCD1602初始化显示温湿度接收温湿度数据键盘扫描温湿度数据处理图3.1控制显示子系统程序流程 3.2.2测量发射子系统程序 首先,初始化NRF24L01,调整到发送模式,并打开接受指示灯,读取状态寄存器,开辟接受数据存放空间,读取由温湿度传感器DHT11采集当前的温湿度,经过处理,关闭接受指示灯,打开发送指示灯,发送到控制显示子系统。关闭发送指示灯,并调整到接受状态,流程图如图3.2所示。图3.2 测量发射子系统程序流程图 3.2
38、.3无线收发程序 发射数据时,首先将nRF24L01配置为发射模式:接着把接收节点地址TX_ADDR和有效数据TX_PLD按照时序由SPI口写入nRF24L01缓存区,TX_PLD必须在CSN为低时连续写入,而TX_ADDR在发射时写入一次即可,然后CE置为高电平并保持至少10s,延迟130s后发射数据;若自动应答开启,那么nRF24L01在发射数据后立即进入接收模式,接收应答信号(自动应答接收地址应该与接收节点地址TX_ADDR一致)。如果收到应答,则认为此次通信成功,TX_DS置高,同时TX_PLD从TX FIFO中清除;若未收到应答,则自动重新发射该数据(自动重发已开启),若重发次数(A
39、RC)达到上限,MAX_RT置高,TX FIFO中数据保留以便在次重发;MAX_RT或TX_DS置高时,使IRQ变低,产生中断,通知MCU。最后发射成功时,若CE为低则nRF24L01进入空闲模式1;若发送堆栈中有数据且CE为高,则进入下一次发射;若发送堆栈中无数据且CE为高,则进入空闲模式2。接收数据时,首先将nRF24L01配置为接收模式,接着延迟130s进入接收状态等待数据的到来。当接收方检测到有效的地址和CRC时,就将数据包存储在RX FIFO中,同时中断标志位RX_DR置高,IRQ变低,产生中断,通知MCU去取数据。若此时自动应答开启,接收方则同时进入发射状态回传应答信号。接收成功时
40、,若CE变低,则nRF24L01进入空闲模式1,流程图如图3.3所示9。 图3.3 无线发送程序流程图 图3.4 无线接受程序流程图 3.2.4 LCD显示程序 显示数据时,屏幕初始化,待机开始寻找温湿度传感器,判断是否收到数据,如果收到数据则进入显示页面,读取收到的数据,并进行显示,如果没有收到数据,则留在待机页面,流程图如图3.4所示。开始屏幕初始化待机画面N寻找温湿度传感器显示数据 结束 图 3.4 LCD显示程序3.2.5 温湿度采集程序 开始采集当前温湿度时,先设置延时,然后初始化DHT11,判断从机是否有低电平响应信号 如不响应则跳出,响应则向下运行,若从机发出 80us 的低电平响应信号,则继续向下运行,读取温湿度数据,显示温湿度的显示地址,经过转化,传送出当前的温湿度,若从机发出 80us 的高电平,如发出则进入数据接收状态,流程图如图3.5所示。开始设置延时数据接受状态初始化DHT11响应信号读取温湿度图3.5 DHT11流程图4.仿真与调试 4.1硬件仿真软件仿真采用Proteus7仿真,Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB