基于单片机的多点无线温度监控系统(附件)【字数:7870】

摘 要温度在工业生产过程中的一个必不可少的参数,在许多领域的产业化,都需要用到相关的检测设备对温度及其变化进行检测或监控。传统的温度监测技术存在测量范围小、测量数据传输不便和测试数据不能智能化处置等缺陷,而传统的直接接线测量电路十分复杂,容易遭到干扰,精度不高,不能满足一些十分恶劣的工业环境和一些室外环境。因而,选择性能优秀的数字温度传感器和多点无线传输模块尤为重要。一 绪 论 5二 设计要求与模块方案设计 6(一)设计要求 6(二)模块方案设计 6(三)系统方案设计 6三 系统的硬件设计 8(一) 主控单片机的设计 8(二) 温度采集电路模块的设计 9(三) 多点无线收发电路模块的设计 11(四) 显示模块的设计 12(五) 报警模块的设计 13四 系统软件设计 15(一)总体的软件设计 151 多点无线发送部分 15 2多点无线接收部分 15(二)模块的软件设计 161 液晶显示模块软件设计 162 温度检测模块 163多点无线模块软件设计 174报警模块软件设计 19五 调试20六 总结 23参考文献 24谢辞 25 一 绪 论在现代生活中,经过多点无线通讯来获取温度曾经越来越普遍。随着工农业消费的开展,对温度测量提出了更高的请求。温度的准确测量是系统设计的关键,十分重要。温度需求经过其他相关属性间接测量,不能像宽度或长度那样直接测量。如今,温度测量能够经过温度传感器来完成。温度测量的过程就是经过传感器将温度值转换成电信号或其它信号。经过相关处置后,能够将温度转换成温度显现。测温设备普通由温度传感器和信号处置电路组成。有的时分监控范围很大,布线不便当,不利于后期维护,所以我们采用多点无线模块来采集温度。本系统设计的是一种远程温度控制系统。本系统要求能够实现温度采集、多点无线远程控制、温度液晶显示、自动报警等功能。在本次设计中用到的多点无线传输技术、单片机控制系统技术、传感器测量等技术,这些技术已经被广泛的应用于国民生活、工农业生产、科学调研等诸多领域,特别是在工业生产中有着广阔的应用前景,由此可见,本次设计的系统对于社会的整体发展及科学调研来说,都有着非常重要的作用。 二 设计要求与模块方案设计(一) 设计要求①温度测量范围室温到99摄氏度;②远程控制系统;③可以人工设置上下限温度;④实际值超过设定范 *好棒文|www.hbsrm.com +Q: ^351916072# 
围,系统进行报警。(二)模块方案设计本设计是通过多点无线通信的方式,对温度数据进行采集、处理、显示并依据设定范围通过报警系统进行报警。实现温度监控的高效率、高质量,且其组态简单、性价比高、应用性强,易于推广。系统采用的是低耗高性微型控制器AT89S51和数字式DS18B20温度传感,而多点无线通信的收发芯片选用NRF24L01,该模块功率消耗非常低,且其成本低,通过LCD1602进行温度显示并采用蜂鸣器构成报警模块。本次设计的系统采用的核心控制芯片是 AT89S51单片机,分为主控AT89S51芯片和副控AT89S51芯片。作为整个系统的CPU,进行系统的整体控制。使用DS18B20采集温度。使用LCD1602显示温度。除此之外,选用NRF24L01多点无线模块来实现系统的通信,进行系统数据间的传输。本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用[6]。本系统多点无线可接收的距离为5m,温度的可测量范围是0到99摄氏度。其测量精度为1摄氏度,具有测量温度范围广,测量精度高的特点。此外,可设置上下限报警温度值。(三)系统方案设计本系统工作方式为主从的工作方式,共有两块板,多点无线温度采集板将温度信息传给主机,主机显示及控制。①主机系统的主机控制数据接收部分,接收部分由AT89S51主控芯片、LCD1602显示模块及NRF24L01多点无线模块三部分组成。系统主机由主单片控制,晶振电路模块与复位电路模块构成单片机最小系统、连接多点无线模块、按键模块、报警模块、显示模块。如图2.1所示  图2.1 主机结构图②从机系统从机控制数据的发射部分,发射部分由AT89S51副控芯片、NRF24L01多点无线模块,及DS18B20温度采集模块三部分组成。系统从机由从单片控制,晶振电路模块与复位电路模块构成单片机最小系统,连接温度检测模块和多点无线模块。如图2.2所示图2.2 从机结构图三 系统的硬件设计(一) 主控单片机的设计系统中心控制单元选择的芯片为AT89S51。如图3.2所示,它有40个引脚,是一个双内联芯片。除特定功用引脚外,AT89S51的一切其他引脚均分为四个I/O端口P0、P1、P2、P3。此外,每个I/O线能够独立工作,用于数据输出或数据输入。AT89S51芯片具有4K字节闪存、256字节RAM和32位I/O端口线、看门狗定时器、2个数据指针、3个16位定时器/计数器、6矢量级2中缀构造、全双工串行端口、片上晶体振荡器、时钟电路等规范功用[9]。AT89S51控制芯片在逻辑操作低至0Hz静态工作时,能够选择在闲暇形式或断电形式下,省电形式工作。当芯片处于闲暇形式和断电形式时,系统将有不同的工作形式。在闲暇形式下,处置器中止工作。但是,其内部存储器、定时器、计数器、串口和中缀功用均不受处置器工作的影响,仍能正常工作。当系统在断电形式下工作时,写入内部存储器的内容将被保管,但振荡器和处置器中止工作,直到下一次中缀或硬件复位。图3.2 AT89S51的管脚图本次系统设计的AT89S51单片机核心控制模块是由AT89S51的最小系统组成,其中包括晶振电路和复位电路。在AT89S51芯片的18引脚XTAL1和19引脚XTAL2两引脚之间连接了一个12MHZ晶振和两个30p电容作为反馈器件,形成晶振电路。其9引脚RESET是芯片的复位输入脚,在电路设计上,连接一个10uf电容器和一个10k电阻,使其电路复位。具体电路连接如图3.3所示。图3.3 复位电路和晶振电路(二) 温度采集电路模块的设计与传统搭建的温度测量电路相比较来说,采用DS18B20温度传感器来搭建会更具有优势。在其体积小、成本低的基础上,具有强的抗干扰能力,模块搭建容易,易于编程,并且能够进行高精度测量。除此之外,DS18B20直接输出数字信号,简化电路。并且其独特的单线接口特性,与其独特的序列号相对应,可以实现一条总线连接到多个DS18B20进行温度测试,外围硬件简单,且其直接输出数字信号,省去了数模转换的步骤,电路设计更加简化。此外,该温度传感器采用的是数据总线供电,在进行工作时,需要通过连接电压范围是3到5V的电源来进行供电。由于DS18B20温度传感器的本身特性,使其可以在温度为-55℃到+125℃的范围内进行测量。DS18B20芯片具有三种封装方式,如图3.4所示。图3.4 DS18B20芯片封装图①管脚配置及内部结构DS18B20传感器芯片共有3个引脚,引脚1为电源地,电路连接时,进行接地操作。引脚2为单数据总线,DQ引脚是芯片的唯一数据口,作为信号的输入和输出的引脚。引脚3 为外接供电电源的输入端,在进行电路设计连接时,需要连接5V电压对此模块进行供电。在DS18B20内部,它大致分为四个数据局部,包括64位ROM、温度传感器、高速缓冲区和配置存放器。温度传感器局部是整个DS18B20的中心局部,主要经过这局部来完成温度的测量。DS18B20的内部构造如图3.5所示。 图3.5 DS18B20内部结构图②工作原理DS18B20温度传感器普遍应用于各种场所,是一种常见的传感器。在工作过程中,温度检测和数字数据输出集成在一个芯片上,模块间采用单总线通讯方式进行通讯,抗干扰才能更强,整个模块设计相对稳定。DS18B20具有单总线通讯的特性,需求遵照总线协议来保证数据的传输。单片机控制DS18B20完成温度转换必需经过三个步骤初始化、ROM操作指令、内存操作指令[10]。首先,您需求初始化DS18B20。在发送复位脉冲之后,执行ROM功能命令,每次在进行读取和写入寄存器之前,发送ROM操作命令。然后再进行相应温度处理流程,最后发送读取温度寄存器命令,完成整个系统温度采集的过程。③电路设计在温度采集模块的硬件电路设计中,该模块能够直接输出数字信号。电路设计时,输出端衔接10K上拉电阻和AT89S51单片机的P1.7口,二者之间构成通讯,采集温度。其硬件原理图如图3.6所示。图3.6 DS18B20原理图(三) 多点无线收发电路模块的设计在本系统设计中,采用nRF24L01多点无线通讯模块进行数据传输,完成了系统的通讯。多点无线通讯模块是一种新型的单片射频收发器,经过多点无线传输和多点无线接纳进行通讯。其模块工作在2.4GHz至2.5GHz频段。nRF24L01有一个集成的频率发作器,一个加强的“肖克突发”形式控制器,一个功率放大器,一个晶体振荡器,一个调制器和一个解调器。输出功率可经过软件轻松配置。nRF24L01具有多种低功耗形式、断电形式和闲暇形式,使节能设计愈加便当[11]。模块采用1.9V~3.6V电压为模块供电。OSI链路层是硬件集成层,它具有很快的传输速率,传输速率为lmb/s或2Mb/s,运用这种多点无线模块参与系统的设计相对简单。NRF14L01的引脚排列图如图3.7所示。 图3.7 NRF24L01管脚图在高频电路的设计中,对于元件的位置摆放,对电路的布线方法都有更高的要求,因此在本次设计中,我们直接使用已有的成品模块进行通信,这样我们就不用去考虑高频电路的设计问题,图3.8是NRF24L01多点无线模块的pcb板图。 图3.8 NRF24L01PCB板图在本次设计中,使用了NRF24L01芯片中的八个功能脚,将其连接到单片机的P10口到P15口,NRF24L01模块的各个引脚具体功能介绍如下表3.1所示表3.1 NRF24L01引脚功能图引脚符号功能1GND电源地2VCC正电源3CE内部射频电路工作与否4CSN控制允许向模块读或写数据。5SCK片选信号,对模块的读或写的运作节拍进行控制6MOSI 单片机向NRF24L01模块发送数据提供接口。7MISONRF24L01模块向单片机发送数据提供接口8IRQ将中断信号发送给单片机的接口。(四) 显示模块的设计本次系统设计的显示模块采用的是LCD1602液晶显示屏。LCD1602芯片总共有16个引脚,芯片的7引脚到14引脚为显示屏的8位数据脚,与单片机通过P0口相连接。其具体引脚功能如表3.4所示:表3.4 LCD1602引脚功能图引脚符号功能说明引脚符号功能说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极(五) 报警模块的设计蜂鸣器通常由直流电压供电,它是一种集成构造的电子声响设备。作为一种声响设备,普遍应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话、计时器等电子产品[14]。假如采用蜂鸣器和二极管的组合设计报警电路,则报警系统能够同时发出声光报警信号。这种声光报警系统能更好地满足客户的需求。在报警模块设计中, IO口用于控制NPN三极管的基极,三极管的一端与蜂鸣器相连接,另一端与单片机的P12口相连接连接。当P12口的电平为低时,三极管导通,蜂鸣器与电源之间形成通路,蜂鸣器进行发声,实现系统报警,当P12口电平为高时,三极管截止,蜂鸣器与电源之间无法导通,系统不报警。本系统的报警模块用三极管和驱动蜂鸣器实现,当达到温度上下限值,就会给三极管一个高电平驱动蜂鸣器,其应用电路如图3.12所示。图3.12 报警电路结构四 系统软件设计(一)总体的软件设计系统的软件设计在总体上分为两个部分数据发送和数据接收,进行数据间的传递,共同来实现系统多点无线通信功能。1 多点无线发送部分数据传输局部的总体思绪是首先对温度传感器进行初始化,DS18B20测量温度,然后将采集到的温度值转换成十进制并写入待传输的阵列中,然后对nRF24L01多点无线模块进行初始化并将数据发送给主机。图4.1是多点无线数据传输的流程图。 图4.1 发射部分总体流程图2多点无线接收部分在进行数据多点无线接收部分设计时,需要先对NRF24L01多点无线模块进行初始化操作,在初始化完成之后,需要进行接收中断判断,观察有无中断产生,如果产生中断,有读入数据,则从RX_FIFO buffer进行数据读取,将其转换为十进制,并将其数据显示在LCD1602上。数据接收流程图如图4.2所示。 图4.2 接收部分总体流程图(二)模块的软件设计系统的软件模块分为四个模块来实现功能,液晶显示模块来实现温度显示、温度检测模块来实现温度采集、多点无线模块来实现远程控制及报警模块来实现温度范围设定。1 液晶显示模块软件设计显示模块软件流程图如图4.3所示。图4.3 显示模块软件流程图本次系统在进行液晶温度显示的设计过程中,需要先将LCD1602液晶显示屏进行初始化功能设置,清除显示的RAM缓存区,然后,再进行显示初始化,指针开始数据扫描,设置数据显示的位置,将待显示数据送入缓冲区,准备数据显示。(三) 温度检测模块如图4.4所示为温度采集模块流程图。图4.4 温度采集模块软件流程图在进行温度检测时,由于其独特的单线接口,需要遵守单总线通信协议,AT89S51控制芯片需要按照时序来写入和读出DS18B20温度传感器采集的数据。在此模块设计中,进行初始化后,DS18B20通过完成复位,接收应答,读取ROM序列号,启动温度转换,等待转换完成,保持数据步骤来实现温度检测[15]。4.2.3多点无线模块软件设计NRF24L01多点无线模块由多点无线发射部分和多点无线接收部分两个部分组成,来实现温度的远程控制。①多点无线发射模块首先,模块进行初始化,然后,需要配置SPI总线,置低CE,配置nrf24l01多点无线模块的启动模式。在数据的传输端,写入数据,写入发送数据地址、发送数据和接收地址。写在多点无线通信模块的缓冲区内,并进行操作频率设定、数据传输功率设定、CE置高操作。在一定的延迟之后,数据会被发送。其软件流程图见图4.5。图4.5 多点无线发射软件流程图NRF24L01多点无线通信模块与AT89S51单片机进行发射通信时 首先由SPI配置NRF24l01多点无线模块,并使能通道,实现自动应答。并设置自动重传的次数,但自动重传的次数不能为0,设置可以重新传输数据。将其设置为发送模式,然后,AT89S51单片机通过SPI分别把要发送的数据和接收数据设备的地址写入NRF24L01多点无线模块。再对CE引脚进行置高操作,启动数据发送。void TX_Mode(uchar * BUF){ CE = 0; SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS,TX_ADR_WIDTH);// 写入发送地址 SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH);// 为了应答接收设备,接收通道0地址和发送地址相同 SPI_Write_Buf(WR_TX_PLOAD, BUF, TX_PLOAD_WIDTH); // 写数据包到TX FIFO SPI_RW_Reg(WRITE_REG + EN_AA, 0x01); // 使能接收通道0自动应答 SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01); // 使能接收通道0 SPI_RW_Reg(WRITE_REG + SETUP_RETR, 0x0a); // 自动重发延时等待250us+86us,自动重发10次 SPI_RW_Reg(WRITE_REG + RF_CH, 40); // 选择射频通道0x40 SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07); // 数据传输率1Mbps,发射功率0dBm,低噪声放大器增益 SPI_RW_Reg(WRITE_REG + CONFIG, 0x0e); // CRC使能,16位CRC校验,上电 CE = 1;}在这种操作情况下,模块可能出现下面的两种情况 在第一种情况下,在规定设置的时间内,系统成功接收到应答信号。发送数据成功标记位TX_DS,触发IRQ中断,清除发送缓冲区的TX_BUF寄存器。除此之外,通过写状态寄存器对IRQ中断进行复位操作,完成数据的多点无线发射。在此处,因为IRQ中断是由TX_DS标记位引发,因此,需要通过对TX_DS复位来实现IRQ的复位。 第二种情况是重发数据的次数已经超过了设定的值,则需要将最多重发次数标志位MAX_RT进写状态寄存器对IRQ中断进行复位。 在这种情况下,IRQ由MAX_RT触发,因此需要复位MAX_RT以实现IRQ复位。NRF24l01多点无线通信模块会在系统接收到响应信号产生的中断或着在达到最大重传次数所产生的中断后,继续发送下一个数据包。当CE设置为高且TX_ BUf为空时,通信模块的工作模式进入待机模式2。当NRF24l01多点无线模块被配置成将CE为低时,需要在适当的时间将CE拉高以进行数据传输。②多点无线接收模块当系统的多点无线通讯模块接纳到数据时,需求首先配置通讯模块的工作形式,并将其配置为接纳形式。然后等候数据传输,当接纳器检测到有效地址和CRC时,它将数据包存储在接纳堆栈中,同时在状态存放器中设置中缀标志位RX U DR来产生中缀,并使IRQ引脚转为低电平,从而通知微控制器提取数据包数据[16]。图4.6显现了多点无线接纳的流程图。图4.6 多点无线接收软件流程图NRF24L01与AT89S51单片机进行接收通信时 首先,nRF24L01多点无线模块需求根本配置,经过SPI配置完成。然后,多点无线模块初始化并设置CE low以将其配置为接纳形式。此外,还需求设置EN?AA存放器,即nRF24L01多点无线模块接纳到数据后,向AT89S51单片机主机发送应对信号。最后,需求启用接纳数据的通道。在ENu RXADDR存放器中有六个接纳通道,选择其中一个进行配置以接纳数据。完成数据接纳通道的设置。然后,需求提升CE引脚以启动模块的数据接纳状态。在接纳到有效数据后,它将被存储在RX BUF存放器中。此时,有必要肯定系统能否产生了接纳中缀。RXu DR是接纳数据胜利的信号位。假如接纳到的数据被中缀,则证明接纳到的数据是胜利的。RX U DR将执行set 1操作以读取接纳到的数据。此外,RXU DR中缀也需求重置。一系列处置完成后,接纳设备将自意向发送设备发送确认信号。确认接纳到数据后,CE降落,系统重新进入待机状态。4报警模块软件设计在进行系统报警模块的设计时,首先,需要将设定的温度值与DS18B20实际所采集的温度值进行比较,当采集到的温度小于设置的下限温度时,系统便会自动报警,进行报警下限处理;当采集的温度大于设置的上限温度时,系统自动报警,进行报警上限处理,实现整个系统的报警功能以及温度范围的设定。系统报警软禁流程图如图4.7所示。图4.7 报警软件流程图五 系统的调试及实验结果(一) 系统调试在系统的硬件和软件设计完成后,进行实物制作,最后,需要对整个系统进行调试,对于系统出现的问题进行修改和调整,这是项目设计中非常重要的一步,需要对整个系统进行调试来验证是否能够实现预设的功能目的。在本次的调试过程中共有以下几个步骤步骤一首先根据绘制的电路原理图,进行硬件电路的焊接。步骤二烧写LCD1602液晶显示模块的测试程序,进行验证,检验是否能够正常显示温度。步骤三将接收部分的单片机连接上一块数码管上,写入测量温度的程序。测试DS18B20相关硬件及软件是否可以正常工作。步骤四搭建简单的无线通信硬件,烧写简单的测试测序,检测收发硬件模块是否可以正常工作。步骤五将所用测试程序写在一起,搭建完成完整的硬件,再检测系统是否能把从机测得的温度值通过无线模块通信,在LCD1602上显示出来。(二)测试实验结果在完成系统调试之后,对发送端电流、接收端电流、接收端电压、发送端电压、发送端功率、接收端功率及收发距离进行了简单的测试,得到一些相关的数据值,其具体结果如下表5.1所示表5.1 实验数据图测试数据数据值发送端电流2.7mA接收端电流10mA收发端电压3.0V发送端功率8.10mW接收端功率30.0mW收发距离5m由表中数据可知,整个系统得到的功耗都很低,并且其无线收发距离大于5m, 能够实现原始的设计要求。如图5.1就是远程温度监控系统的主机,电源接通后,立即对LCD1602进行初始化,并等待发射端传来数据,在进行数据接收后,将其在LCD1602上实时显示出来。 图5.1 发射部分成品如图5.2就是远程温度监控制系统的从机。在接通电源时,会立即完成初始化,把从DS18B20中测得的温度通过无线模块地发送给主机。 图5.2 接收部分成品  图5.3 成品图五 总结本系统设计采用AT89S51芯片作为主控芯片,采集和处置数据,经过传感器采集非电信号,采用nRF24L01进行多点无线控制,采用LCD1602进行温度显现。传统的温度检测系统采用热电路测量环境温度。它的输出为模仿信号,需求AD转换电路,增加了电路的复杂度,精度差,牢靠性不高。因而,本系统采用数字输入温度传感器DS18B20完成了远程温度多点无线监控系统。使其直接输出数字信号,电路抗干扰才能强,具有电路精度高、电路简单、可装置在单总线多传感器上的优点。该系统的通讯方式为NRF24L01多点无线通讯模块,用于完成远程温度监测。这种通讯方式消弭了传统电路布线的毛病,使整个电路愈加简约,整个系统的装置和维护愈加简双方便。参考文献[1] 关力鑫.单片机温度控制系统的总体设计[D].农机使用与维修,2010.[2] 刘淑云,谷卫刚,王殿昌.塑料大棚环境智能监控系统的设计[J].科技资讯,2007.[3] 白亚梅,张昌玉,白永刚.基于GSM模块的远程温度监控系统的研究[J].电子制作,2014.[4] 孙勤江,沈彬.基于单片机的信号发生器设计[J].石油和化工设备,2014.[5] 孙婧頔.基于STC89C52的自动路灯控制系统设计[D].科技信息,2012.[6] 胡敏,谌海云,侯阳.数字温度计的设计[J].现代电子技术,2012.谢辞总觉得毕业遥遥无期,转眼却已各奔东西,不知不觉我们即将真正踏上社会,一眨眼大学生活已经慢慢接近了尾声。还没来得及感叹,周围的同学已经各奔东西。恍惚间才发现走的最快的却是时间。随着本次论文的结束,不仅证实自己曾走过已经消逝的大学三年,也证实自己三年来的努力与付出,同时也为大学三年画下完美的句号。本次论文的选材主要来源自己的实习工作,开始的时候不知道如何下手,但是经过指导老师的耐心指导,逐渐找到了思路,我从工作的内容到工作中需要注意的事项,每写一项都经过搜资料,整理资料,细心做好每一项。写论文花费了很多的时间与精力,但是让我收获好多实习中学不到的知识,不仅丰富了自己的知识,也充实自己的实习生活。最后在这里,我真心的感谢我的母校这两年对我的栽培,感谢老师们的谆谆教导,也感谢学长和身边同学们对自己的帮助,最后,也要感谢卡特彼勒这半年多对自己的考验,让我养成了无论做任何事情,都要有坚持不懈的精神,,是你们陪我度过最美丽的三年时光!在这里,我由衷的祝学校老师、同学以及公司领导和同事工作顺利、身体健康、万事如意。
目 录

版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jxgc/zdh/484.html

好棒文