基于单片机的无线温度采集报警系统设计
发布时间:2024-08-28
发布时间:2024-08-28
基于单片机的无线温度采集报警系统设计
摘 要
本文所介绍的是一种采用单总线数字式温度传感器DS18B20、AT89C52单片机、1620LCM液晶显示器、数码管及nRF24L01无线收发一体模块组成的新型温度无线采集报警系统,并使用数码管显示器将所采集温度在采集端显示,并无线传输到接收模块用1620LCM液晶显示器显示出来。该系统以 AT89C52单片机为控制核心,利用新型一线制温度传感器 DS18B20测量温度值以及高可靠无线收发模块nRF24L01实现环境温度的无线采集和报警。系统测温范围为-50℃—+120℃,测量精度为 0.5℃。用户可以通过按键K0、K1、K2、K3随时自定义报警上、下限值,一旦温度超过极限值,接收端单片机便启动报警系统。该系统精度高、测温范围广、报警及时,可广泛应用于基于单片机的温度无线采集报警场合。
关键词:AT89C52单片机;无线温度采集;DS18B20;nRF24L01无线传输
基于单片机的无线温度采集报警系统设计
Abstract
This article introduced a new temperature wireless acquisition alarm system .It consist a single bus digital temperature sensor DS18B20, AT89S52 SCM, 1620 LCM LCD monitor, digital pipe and nRF24L01 wireless transceiver module . It use digital tube display temperature in the collection and the temperature that wireless transmission to receiving module with 1620 LCM LCD display. this system use AT89S52 SCM as control core, use the new a wire temperature sensor DS18B20 measuring temperature and high reliable wireless transceiver module nRF24L01 realize environmental temperature wireless data collection and alarm. Temperature measurement system for-50 ℃ scope+ 120 ℃, measuring precision of 0.5 ℃. The user can through the key K0, K1, K2, K3 custom alarm at any time, and have lower limit, once the temperature over limit, the receiver single-chip microcomputer start alarm system. The system have high precision, temperature measuring range, alarm in time, and can be widely used in the temperature of the acquisition based on single chip wireless alarm occasion.
Keywords: AT89S52 SCM; Wireless temperature gathering; DS18B20; NRF24L01
基于单片机的无线温度采集报警系统设计
目 录
摘 要 ......................................................................................................................................................... I Abstract.................................................................................................................................................... II 1 概述...................................................................................................................................................... 1
1.1 选题意义 ................................................................................................................................ 1 1.2 设计功能要求 ....................................................................................................................... 1 1.3 整体方案论证 ....................................................................................................................... 1 1.4 无线数据采集器系统框图 ................................................................................................ 2 2 温度无线采集报警系统的主要元件介绍 ................................................................................. 4
2.1 温度测量传感器DS18B20的介绍 .................................................................................. 4
2.1.1 DS18B20概述 ............................................................................................................ 4 2.1.2 内部结构 ...................................................................................................................... 4 2.1.3 DS18B20通信协议 ................................................................................................... 5 2.1.4 温度数据的计算处理方法 ...................................................................................... 6 2.2 无线发射模块nRF24L01介绍 ........................................................................................ 7
2.2.1 概述............................................................................................................................. 7 2.2.2 工作模式 ................................................................................................................... 8 2.2.3 SPI 指令及时序 .................................................................................................... 10
3 系统硬件电路设计........................................................................................................................... 11
3.1 AT89C52单片机最小系统 ............................................................................................... 11 3.2 温度检测模块电路 ............................................................................................................ 12 3.3 温度显示模块电路 ............................................................................................................ 12 3.4 发射电路模块 ..................................................................................................................... 14 3.5 接收电路模块 ..................................................................................................................... 14 4 系统软件设计 ............................................................................................................................... 15
4.1 主程序 .................................................................................................................................. 15 4.2 子程序 .................................................................................................................................. 15 5 结论.................................................................................................................................................... 19 参考文献 ................................................................................................................................................. 20 附录一 ...................................................................................................................................................... 21 附录二 ...................................................................................................................................................... 23 附录三 ...................................................................................................................................................... 24 致 谢 ...................................................................................................................................................... 42
基于单片机的无线温度采集报警系统设计
1 概述
1.1 选题意义
温度是工业、农业生产中常见和最基本的参数之一,由于有些场合生产环境恶劣,工作人员不能长时间停留在现场观察设备是否运行正常,就需要无线采集数据并传输数据到一个环境相对好的操控室内,这样就会产生数据传输问题。由于厂房大、需要传输数据多,使用传统的有线数据传输方式就需要铺设很多很长的通讯线,浪费资源,占用空间,可操作性差,出现错误换线困难。而且,当数据采集点处于运动状态、所处的环境不允许或无法铺设电缆时,数据甚至无法传输,此时便需要利用无线传输的方式进行数据采集。
在现实生活中,这种无线温度采集系统已经被成功应用于工农业、环境监测、军事国防、机器人控制等许多重要领域,而且类似于这种温度采集系统的无线通信网络已经被广泛的应用到民用和军事领域。凡是布线繁杂或不允许布线的场合都希望能通过无线方案来解决。为此,需要设计相应的接口系统,控制这些射频芯片工作,完成可靠稳定的无线数据通信,这样的研究也变得更加有意义。 1.2 设计功能要求
(1)能够检测温度传感器DS18B20的状态。
(2)收发端都能够显示温度数据,以比较无线传输的正确性。 (3)无线传输50m左右。
(4)能够提供高低温报警,且能设定高低温报警值。 1.3 整体方案论证
根据各项功能的实现方法以及硬件连接方式,将整个系统划分为三大模块:温度数据采集模块,显示模块,无线通信模块。主要是对温度数据采集模块,无线通信模块做出方案选择。
(1) 温度数据采集模块
在日常生活及工农业生产中,经常要用到温度的无线采集及控制,传统的测温元件有热电偶和热电阻。而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,需要比较多的外部硬件支持。
方案一:采用热敏电阻,价格比较便宜,但热敏电阻精度低,可靠性不好。用温度传感器如LM35,其输出的是模拟信号,需经过A/D转换后才能送人单片机。这样
基于单片机的无线温度采集报警系统设计
电路较复杂,不易进行多点温度测量,其软件设计也比较难设计。
方案二:采用单总线温度传感器DS18B20,输出信号全数字化,便于控制,省去传统的测温方法的很多外围电路,且该芯片物理化学特性很稳定,它能用于工业测温元件。DS18B20最大的特点是采用了单总线的数据传输,测温系统的电路就比较简单,体积不大。而且很容易实现多点温度测量。 (2) 无线通信模块
方案一:采用F05P+J04V组成的低成本的无线收发模块,价格比较便宜,但对基带信号有较高要求,对无线收发的布局布线也有一定的要求且可靠性比较低。需要加上一部分外围电流才能实现收发功能。
方案二:采用NRF24L01+作为无线收发模块,由于其高可靠性的数据收发和极低的电流消耗,已经广泛使用于各种无线数据通信。NRF24L01+把所有外围电路都集成在一块PCB板上,因此外围电路简单,软件设计只需遵循一定的时序,也比较简单。
本设计温度数据采集模块和无线通信模块都采用方案二。 (3)显示模块
方案一:由HD44100驱动的LCD显示屏来实现温度的显示。本系统的按键功能主要有查看温度数据信息和设置温度报警值,以及其它系统信息显示切换。显示内容更丰富,单片机控制LCM模块时,只要送人相应的命令和数据就可实现所需要的内容,这种模块与单片机接口简单,使用灵活方便。
方案二:用七段数码管和按键来做人机交互界面,优点是价格便宜,程序简单,缺点是硬件电路复杂,不方便同时显示温度以及其它系统信息,界面表达不能满足要求。
从上述两个方案的对比中看出,发送端选择方案一以作比较,接收端选择方案二,使显示信息更丰富。
1.4 无线数据采集器系统框图
本温度无线采集报警电路设计采用美国DALLAS半导体公司生产的温度传感器DS18B20作为温度检测元件,测温范围为-55~125℃,最高分辨率可达0.0625℃。发射与接收电路采用Nordic公司生产的NRF24L01+作为发射与接收元件,传输距离可达100m。
DS18B20可以直接读出被测温度值,而且采用三线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点,NRF24L01+具有自动重发功能、数据包识别及CRC校验功能,增强型ShockBurstTM模式可同时控制应答及重发功能而无需增
基于单片机的无线温度采集报警系统设计
加MCU的工作量。
按照系统设计功能的要求,确定系统由6个模块组成:主控制器、测温电路、发送电路、接收电路、显示电路和报警电路。
温度无线采集报警系统结构框图如图1所示
图1 温度无线采集报警系统结构框图
基于单片机的无线温度采集报警系统设计
2 温度无线采集报警系统的主要元件介绍
2.1 温度测量传感器DS18B20的介绍 2.1.1 DS18B20概述
(1)引脚如图2
图2 DS18B20封装及引脚排列图
●GND接地。 ●DQ为数字信号输入\输出端。
●VDD为外接电源输入端(在寄生电源接线方式时接地) (2)DS18B20与单片机的连接方式
单线数字温度传感器DS18B20与单片机连接电路非常简单,引脚1接地(GND),引脚3(VCC)接电源+5V,引脚2(DQ)接单片机输入\输出一个端口,电压+5V和信号线(DQ)之间接有一个4.7k的电阻。
由于每片DS18B20含有唯一的串行数据口,所以在一条总线上可以挂接多个DS18B20芯片。 2.1.2 内部结构
DS18B20采用3脚PR—35封装或8脚SOIC封装,其内部结构框图3
64位ROM的位结构如图4。开始8位是产品类型的编号;接着是每个器件的唯一序号,共有48位;最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用单线进行通信的原因。非易失性温度报警触发器TH和TL,可通过软件写入用户报警上下限数据。
基于单片机的无线温度采集报警系统设计
MSB LSB MSB LSB MSB LSB
DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的E2PROM。
高速暂存RAM的结构为9字节的存储器,结构如图5。前2字节包含测得的温度信息。第3和4字节是TH和TL的拷贝,是易失的,每次上电复位时被刷新。第5字节为配置寄存器,
高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。第9字节是前面所
1字节 2字节 3字节
字节 8字节 9字节
当DS18B20接收到转化命令后,开始启动转化。转化完成后的温度值就以16位的带符号扩展的二进制补码形式存储在高速暂存RAM的第1、2字节中。
单片机可以通过单线接口读出该数据。读数据时,低位在先,高位在后,数据格式以0.0625℃/LSB形式表示。
DS18B20完成温度转化后,就把测得的温度值与RAM中的TH、TL字节内容作比较,若T>TH或T<TL,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令作出响应。因此,可用多只DS18B20同时测量温度并进行报警搜索。 2.1.3 DS18B20通信协议
基于单片机的无线温度采集报警系统设计
在对DS18B20进行读写编程时,必须严格保证读写时序,否则将无法读取温度结果。根据DS18B20通信协议,主机控制DS18B20完成温度转化必须经过3个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。
复位要求主CPU将数据线下拉500us,然后释放,DS18B20收到信号后等待16~60us,然后发出60~240us的存在低脉冲,主CPU收到此信号表示复位成功。
DS18B20的ROM指令如表1,RAM指令如表2。
2.1.4 温度数据的计算处理方法
从DS18B20读取出的二进制值必须先转化成十进制值,才能用于字符的显示。
基于单片机的无线温度采集报警系统设计
DS18B20的转换精度为9~12位可选,为了提高精度采用12位。在采用12位转换精度时,温度寄存器里的值是以0.0625为步进的,即温度值为温度寄存器里的二进制值乘以0.0625,就是实际的十进制温度值。
通过列举观察可以发现,一个十进制值与二进制值间有很明显的关系,就是把二进制的高字节的低半字节和低字节的高半字节组成一个字节,这个字节的二进制值化为十进制值后,就是温度值的百、十、个位值,而剩下的低字节的低半字节化成十进制后,就是温度值的小数部分。因为小数部分是半字节,所以二进制值范围是0~F,转化成十进制小数值就是0.0625的倍数(0~15倍)。这样需要4位的数码管来显示小数部分。实际应用不必有这么高的精度,采用一位数码管来显示小数,可以精确到0.1℃。表3就是二进制与十进制的近似对应关系表。
2.2 无线发射模块nRF24L01介绍
2.2.1 概述
nRF24L01 是一款工作在2.4~2.5GHz 世界通用ISM 频段的单片无线收发器芯片。无线收发器包括:频率发生器、增强型SchockBurstTM 模式控制器、功率放大器、晶体振荡器、调制器、解调器。输出功率、频道选择和协议的设置可以通过SPI 接口进行设置。
极低的电流消耗:当工作在发射模式下发射功率为-6dBm 时电流消耗为9mA,接收模式时为12.3mA。掉电模式和待机模式下电流消耗更低。实物及模块如图6。
图6 nRF24L01实物
nRF2401及其外围电路如图7,包括nRF2401芯片部分、稳压部分、晶振部分、天
基于单片机的无线温度采集报警系统设计
线部分。电压VDD经电容C1、C2、C3处理后为芯片提供工作电压;晶振部分包括Y1、C9、C10,晶振Y1允许值为:4MHz、8MHz、12 MHz、16 MHz,如果需要1Mbps的通信速率,则必须选择16MHz晶振。天线部分包括电感L1、L2,用来将nRF2401芯片ANT1、ANT2管脚产生的2.4G电平信号转换为电磁波信号,或者将电磁波信号转换为电平信号输入芯片的ANT1、ANT2管脚。
图7 nRF24L01模块电路
2.2.2 工作模式
nRF24L01 可以设置为以下几种主要的模式如表4
nRF24L01 有如下几种数据包处理方式:
①ShockBurstTM(与nRF2401,nRF24E1,nRF2402,nRF24E2 数据传输率为1Mbps
基于单片机的无线温度采集报警系统设计
时相同)。
②增强型ShockBurstTM 模式。 ShockBurstTM 模式
ShockBurst 模式下nRF24L01 可以与成本较低的低速MCU 相连。高速信号处理是由芯片内部的射频协议处理的,nRF24L01 提供SPI 接口,数据率取决于单片机本身接口速度。ShockBurst 模式通过允许与单片机低速通信而无线部分高速通信,减小了通信的平均消耗电流。
在ShockBurstTM 接收模式下,当接收到有效的地址和数据时IRQ 通知MCU,随后MCU 可将接收到的数据从RX FIFO 寄存器中读出。
在ShockBurstTM 发送模式下,nRF24L01 自动生成前导码及CRC 校验。数据发送完毕后IRQ 通知MCU。减少了MCU 的查询时间,也就意味着减少了MCU 的工作量同时减少了软件的开发时间。nRF24L01 内部有三个不同的RX FIFO 寄存器(6 个通道共享此寄存器)和三个不同的TX FIFO 寄存器。在掉电模式下、待机模式下和数据传输的过程中MCU 可以随时访问FIFO 寄存器。这就允许SPI接口可以以低速进行数据传送,并且可以应用于MCU 硬件上没有SPI 接口的情况下。
增强型的ShockBurstTM 模式:
增强型ShockBurstTM 模式可以使得双向链接协议执行起来更为容易、有效。典型的双向链接为:发送方要求终端设备在接收到数据后有应答信号,以便于发送方检测有无数据丢失。一旦数据丢失,则通过重新发送功能将丢失的数据恢复。增强型的ShockBurstTM 模式可以同时控制应答及重发功能而无需增加MCU工作量。
nRF24L01 在接收模式下可以接收6路不同通道的数据。每一个数据通道使用不同的地址,但是共用相同的频道。也就是说6个不同的nRF24L01设置为发送模式后可以与同一个设置为接收模式的nRF24L01 进行通讯,而设置为接收模式的nRF24L01 可以对这6 个发射端进行识别。数据通道0是唯一的一个可以配置为40 位自身地址的数据通道。1~5 数据通道都为8位自身地址和32位公用地址。所有的数据通道都可以设置为增强型ShockBurst 模式。
nRF24L01 在确认收到数据后记录地址,并以此地址为目标地址发送应答信号。在发送端,数据通道0被用做接收应答信号,因此,数据通道0 的接收地址要与发送端地址相等以确保接收到正确的应答信号。nRF24L01配置为增强型的ShockBurstTM 发送模式时,只要MCU 有数据要发送,nRF24L01就会启动ShockBurstTM 模式来发送数据。在发送完数据后nRF24L01 转到接收模式并等待终端的应答信号。如果没有收
基于单片机的无线温度采集报警系统设计
到应答信号, nRF24L01 将重发相同的数据包直到收到应答信号或重发次数超过SETUP_RETR_ARC 寄存器中设置的值为止,如果重发次数超过了设定值,则产生MAX_RT 中断。只要收到确认信号,nRF24L01 就认为最后一包数据已经发送成功(接收方已经收到数据),把TX FIFO中的数据清除掉并产生TX_DS 中断(IRQ 引脚置高)。
2.2.3 SPI 指令及时序
SPI 接口可能用到的指令在下面有所说明。CSN 为低后SPI 接口等待执行指令。每一条指令的执行都必须通过一次CSN 由高到低的变化。参见表6。
图8、9给出了时序。在写寄存器之前一定要进入待机模式或掉电模式。在图8 、9中用到了下面的符号:Cn-SPI 指令位,Sn-状态寄存器位 Dn-数据位.
图8 SPI 读操作
图9 SPI写操作
基于单片机的无线温度采集报警系统设计
3 系统硬件电路设计
3.1 AT89C52单片机最小系统
单片机的时钟信号用来提供单片机片内各种操作的时间基准,时钟信号通常用两种电路形式得到:内部振荡和外部振荡。MCS-51单片机内部有一个用于构成振荡器的高增益反向放大器,引脚XTAL1和XTAL2分别是此放大电器的输入端和输出端,由于采用内部方式时,电路简单,所得的时钟信号比较稳定,实际使用中常采用这种方式,在其外接晶体振荡器(简称晶振)或陶瓷谐振器就构成了内部振荡方式,片内高增益反向放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起可构成一个自激振荡器并产生振荡时钟脉冲。
图10 晶振电路
图10中外接晶体以及电容C2和C1构成并联谐振电路,它们起稳定振荡频率、快速起振的作用,其值均为30PF左右,晶振频率选12MHz。
为了初始化单片机内部的某些特殊功能寄存器,必须采用复位的方式,复位后可使CPU及系统各部件处于确定的初始状态,并从初始状态开始正常工作。单片机的复位是靠外电路来实现的,在正常运行情况下,只要RST引脚上出现两个机器周期时间以上的高电平,即可引起系统复位,但如果RST引脚上持续为高电平,单片机就处于循环复位状态。复位后系统将输入/输出(I/O)端口寄存器置为FFH,堆栈指针SP置为07H, SBUF内置为不定值,其余的寄存器全部清0,内部RAM的状态不受复位的影响,在系统上电时RAM的内容是不定的。复位操作有两种情况,即上电复位和手动(开关)复位。本系统采用手动复位方式。图中R1和C3组成手动复位电路,其值R取为10K, C取为10μF,如图11。
基于单片机的无线温度采集报警系统设计
图11 复位电路
3.2 温度检测模块电路
DS18B20可以采用两种方式供电,一种是采用电源供电方式如图12,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源.另一种是寄生电源供电方式,为保证在有效的DS18B20时钟周期内提供足够的电源,可用一个MOSFET管来完成对总线的上拉。
当DS18B20处于写存储器操作和温度A/D转换时,总线上必须有强的上拉,上拉开启时间最大为10微秒.采用寄生电源供电方式是VDD和GND端均接地.由于单线制只有一根线,因此发送接口必须是三态的。
图12 DS18B20接口电路
3.3 温度显示模块电路
显示部分由1602LCM及数码管构成。
接收端采用LCM1602点阵液晶作为人机交互界面。该LCD模块是由LCD驱动器,LCD控制器、少量的电阻电容以及LCD屏组成,质量轻、体积小、功耗低、显示内容丰富,提供。此外,液晶显示接口简单方便,可直接与微处理器相连,实时显示采集所测试的温度值。当实时温度超过设定的报警温度上、下限值,接收端由LCD显示发送端传来的温度信息,并发出报警声。
发射端采用数码管显示,数码管要正常显示,就要用驱动电路来驱动数码管的各
基于单片机的无线温度采集报警系统设计
个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。
数码管动态显示是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,数码管哪位显示字形取决于单片机对位选通电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。
本电路发射端由PNP三极管驱动数码管显示温度值,P2.4~P2.7接数码管的位选端,控制数码管的动态显示。发射端显示电路如图13,接收端显示电路如图14。
图13 数码管显示电路
图14 LCD显示电路