基于nRF24L01的多点温度采集系统设计Word格式文档下载.doc
- 文档编号:8432033
- 上传时间:2023-05-11
- 格式:DOC
- 页数:43
- 大小:1.20MB
基于nRF24L01的多点温度采集系统设计Word格式文档下载.doc
《基于nRF24L01的多点温度采集系统设计Word格式文档下载.doc》由会员分享,可在线阅读,更多相关《基于nRF24L01的多点温度采集系统设计Word格式文档下载.doc(43页珍藏版)》请在冰点文库上搜索。
2.1电源电路……………………………………………………………………………3
2.2温度传感器电路………………………………………………………………………3
2.3无线传输电路…………………………………………………………………………4
2.3.1nRF24L01无线模块组成……………………………………………………………4
2.3.2nRF24L01无线模块应用……………………………………………………………6
2.4显示电路……………………………………………………………………………6
2.4.1字符型液晶显示模块简介…………………………………………………………7
2.4.2字符型液晶显示模块引脚和内部结构…………………………………………7
2.5单片机系统…………………………………………………………………………8
2.5.1AT89S52简介………………………………………………………………………8
2.5.2AT89S52引脚说明…………………………………………………………………8
2.6警报电路………………………………………………………………………………11
3软件设计…………………………………………………………………12
3.1系统概述………………………………………………………………………………12
3.2程序设计流程图………………………………………………………………………12
3.3DS18B20程序设计………………………………………………………………………13
3.4nRF24L01程序设计……………………………………………………………………16
3.5字符型液晶显示模块程序设计………………………………………………17
4调试及结果………………………………………………………………20
5结论………………………………………………………………………22
谢辞……………………………………………………………………………23
参考文献………………………………………………………………………24
附录……………………………………………………………………………25
第40页共40页
引言
21世纪的今天,科学技术的发展日新月异,科学技术的进步同时也带动了测量技术的发展,现代控制设备不同于以前,它们在性能和结构发生了翻天覆地的变化。
我们已经进入了高速发展的信息时代,测量技术是当今社会的主流,广泛地深入到应用工程的各个领域。
温度是工业、农业生产中常见的和最基本的参数之一,在生产过程中常需对温度进行检测和监控,采用微型机进行温度检测、数字显示、信息存储及实时控制,对于提高生产效率和产品质量、节约能源等都有重要的作用。
伴随工业科技、农业科技的发展,温度测量需求越来越多,也越来越重要。
但是在一些特定环境温度监测环境范围大,测点距离远,布线很不方便。
这时就要采用无线方式对温度数据进行采集。
多路无线温度采集系统可被广泛应用于温度测量或相应的可转换为温度量或供电故障监控的工业、农业、环保、服务业、安全监控等工程中,例如:
城市路灯故障检测和供电线路防盗监视、城市居民小区供热检测、大型仓库温度检测、工业生产测控、农业生产温度测控、环保工程、故障监控工程等。
考虑到许多工业环境中对多点温度进行监控,一般需要测量几十个点以上。
本文设计多点无线温度监控系统。
本设计是以Atmel公司的AT89S52单片机作为控制核心,提出基于DS18B20的温度采集与控制系统。
控制器通过温度传感器实时检测各节点的温度变化,并在LCD1602上循环显示各节点温度的变化。
因为采用微型机进行温度检测、数字显示、信息存储及实时控制,对于提高生产效率和产品质量、节约能源等都有重要的作用,并且温度参数对工业生产的重要性,所以温度测量系统的精确度和智能化一直受到企业的重视。
所以学习并研究温度测量及相关知识可做为一个较为实用的课题的方向,能获得较实用的知识和方法。
因此温度测控技术是一个很实用、也很重要的技术,值得去研究掌握。
它应用的领域也相当广泛,可以应用到消防电气的非破坏性温度检测,电力、电讯设备的过热故障预知检测,空调系统的温度检测,各类运输工具之组件的过热检测,保全与监视系统之应用,医疗与健诊的温度测试,化工、机械…等设备温度过热检测。
因此前景是相当的可观。
1课题方案设计
首先要对芯片作出选择。
采用温度芯片DS18B20测量温度,可以体现系统芯片化这个趋势。
部分功能电路的集成,使总体电路更简洁,搭建电路和焊接电路时更快。
而且,集成块的使用,有效地避免外界的干扰,提高测量电路的精确度。
所以集成芯片的使用将成为电路发展的一种趋势。
本方案应用这一温度芯片,也是顺应这一趋势。
主控部分采用AT89S52八位单片机实现。
单片机软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制。
而且体积小,硬件实现简单,安装方便。
本系统以单片机为核心,构成一个包含温度采集、处理、无线传输、显示的无线温度采集系统,原理框图见图1.1。
图1.1系统设计框图
2硬件设计
本课题设计的电路包括:
电源电路、晶振电路、复位电路、无线收发电路、报警电路及显示电路。
2.1电源电路
(1)单片机供电
本设计所用的是AT89S52单片机、LCD1602液晶及DS18B20芯片,直接由电池盒输入+5V的电压即可让它们正常工作。
(2)nRF24l01无线模块
nRF24l01芯片的供电电压为1.9V到3.6V之间,如果直接接+5V电压会让芯片烧毁,所以设计了一个3.3V输出的稳压电路。
稳压电路的作用是当输入电压波动及其它外界因素变化时,还可以稳定输出直流电压。
5V输入电压经过电解电容进行一级滤波,去除杂波干扰。
再经过三端稳压管AMS1117-3.3输出稳定的3.3V电压。
3.3V电压再经过电解电容进行二级滤波,让电压更稳定,保证nRF24l01芯片不被烧毁。
稳压电源原理图见图2.1
图2.1稳压电源电路原理图
2.2温度传感器电路
本方案采用DS18B20芯片进行温度采集。
温度芯片DS18B20是Dallas公司生产的一线式数字温度传感器,具有3引脚TO-92小体积封装形式。
DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有LTM8877,LTM8874等等。
主要根据应用场合的不同而改变其外观。
封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。
耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。
内部结构见图2.2。
图2.2DS18B20内部结构
DS18B20引脚定义:
(1)DQ为数字信号输入/输出端;
(2)GND为电源地;
(3)VDD为外接供电电源输入端(在寄生电源接线方式时接地)。
具体见图2.3。
图2.3DS18B20引脚图
2.3无线传输电路
2.3.1nRF24l01无线模块组成
nRF24L01是NORDIC公司最近生产的一款无线通信芯片,采用FSK调制,内部集成NORDIC自己的EnhancedShortBurst协议。
可以实现点对点或是1对6的无线通信。
无线通信速度厅以达到2M(bps)。
NORDIC公司提供通信模块的GERBER文件,可以直接加工生产。
嵌入式工程师或是单片机爱好者只需要为单片机系统预留5个GPIO,1个中断输入引脚,就可以很容易实现无线通信的功能,非常适合用来为MCU系统构建无线通信功能。
芯片管脚分布见图2.4
图2.4Nrf24l01芯片管脚分布
芯片管脚分布已经在上图展示出来,我们只需要关注六个控制和数据信号即可,分别为CSN、SCK、MISO、MOSI、IRQ、CE。
下面对这几个管脚进行简单的分析。
CSN:
芯片的片选线,CSN为低电平芯片工作。
SCK:
芯片控制的时钟线(SPI时钟)。
MISO:
芯片控制数据线。
MOSI:
IRQ:
中断信号。
无线通信过程中MCU主要是通过IRQ与nRF24l01进行通信。
CE:
芯片的模式控制线。
在CSN为低的情况下,CE协同nRF24l01的CONFIG寄存器共同决定nRF24l01的状态。
整个无线模块的原理图如图2.5所示
图2.5基于nRF24l01的无线模块电路
本次设计所用的无线模块则直接套用上图所示的无线模块。
2.3.2nRF24L01无线模块应用
nRF24l01无线收发电路如图2.6所示。
其中,发送和接收都用的是同一个无线模块。
由稳压电源电路供电3.3V。
图2.6nRF24l01无线收发电路
发射数据时,首先将nRF24L01配置为发射模式:
接着把接收节点地址TX_ADDR和有效数据TX_PLD按照时序由SPI口写入nRF24L01缓存区,TX_PLD必须在CSN为低时连续写入,而TX_ADDR在发射时写入一次即可,然后CE置为高电平并保持至少10μs,延迟130μs后发射数据;
若自动应答开启,那么nRF24L01在发射数据后立即进入接收模式,接收应答信号(自动应答接收地址应该与接收节点地址TX_ADDR一致)。
如果收到应答,则认为此次通信成功,TX_DS置高,同时TX_PLD从TXFIFO中清除;
若未收到应答,则自动重新发射该数据(自动重发已开启),若重发次数(ARC)达到上限,MAX_RT置高,TXFIFO中数据保留以便再次重发;
MAX_RT或TX_DS置高时,使IRQ变低,产生中断,通知MCU。
最后发射成功时,若CE为低则nRF24L01进入空闲模式1;
若发送堆栈中有数据且CE为高,则进入下一次发射;
若发送堆栈中无数据且CE为高,则进入空闲模式2。
接收数据时,首先将nRF24L01配置为接收模式,接着延迟130μs进入接收状态等待数据的到来。
当接收方检测到有效的地址和CRC时,就将数据包存储在RXFIFO中,同时中断标志位RX_DR置高,IRQ变低,产生中断,通知MCU去取数据。
若此时自动应答开启,接收方则同时进入发射状态回传应答信号。
最后接收成功时,若CE变低,则nRF24L01进入空闲模式1。
2.4显示电路
本设计用的是字符型液晶LCD1602来显示采集的温度。
2.4.1字符型液晶显示模块简介
LCD1602液晶外形尺寸如图2.7所示。
图2.7LCD1602外形尺寸
1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:
阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。
2.4.2字符型液晶显示模块引脚和内部结构
LCD1602液晶显示模块引脚如下表2.1所示。
表2.1LCD1602模块引脚
本设计所使用的LCD1602原理图见图2.9。
图2.9LCD1602原理图
2.5单片机系统
本设计使用的是ATMEL公司的AT89S52单片机。
2.5.1AT89S52简介
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
AT89S52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
2.5.2AT89S52引脚说明
AT89S52单片机的引脚如图2.10所示。
图2.10AT89S52引脚
下面将对单片机的引脚进行说明。
VCC:
电源电压输入端。
GND:
电源地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口除了作为普通I/O口,还有第二功能:
P3.0RXD(串行输入口)。
P3.1TXD(串行输出口)。
P3.2/INT0(外部中断0)。
P3.3/INT1(外部中断1)。
P3.4T0(T0定时器的外部计数输入)。
P3.5T1(T1定时器的外部计数输入)。
P3.6/WR(外部数据存储器的写选通)。
P3.7/RD(外部数据存储器的读选通)。
P3口同时为闪烁编程和编程校验接收一些控制信号。
I/O口作为输入口时有两种工作方式,即所谓的读端口与读引脚。
读端口时实际上并不从外部读入数据,而是把端口锁存器的内容读入到内部总线,经过某种运算或变换后再写回到端口锁存器。
只有读端口时才真正地把外部的数据读入到内部总线。
89C51的P0、P1、P2、P3口作为输入时都是准双向口。
除了P1口外P0、P2、P3口都还有其他的功能。
RST:
复位输入端,高电平有效。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
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)。
XTAL1:
片内振荡器反相放大器和时钟发生器的输入端。
XTAL2:
片内振荡器反相放大器的输出端。
2.6警报电路
本设计的警报电路比较简单,用了一个蜂鸣器。
设定温度上限为32摄氏度,当采集到的温度超过上限温度的时候,蜂鸣器则会一直响;
当温度降到上限温度以下时,蜂鸣器停止鸣叫。
原理如图2.11所示。
图2.11警报电路原理图
3软件设计
3.1系统概述
系统包括软件和硬件,硬件已经在以上的内容介绍完了,下面开始介绍软件。
各个模块独立工作,但各个模块都互相影响。
3.2程序设计流程图
发射电路程序设计流程图如图3.1所示。
下面简单解释一下本设计的发射电路工作流程。
首先上电,其中无线通信模块用3.3V稳压电源,然后温度采集模块DS18B20初始化,进行温度检测以及数据存放。
存放成功之后由单片机控制把数据以数组形式传输到nRF24L01无线通信模块进行数据发送。
发送之后返回检测数据是否发射成功,如果发射成功则重新返回温度检测。
图3.1发射电路程序设计流程图
接收电路程序设计流程图如图3.2所示。
系统上电,nRF24L01无线模块采用的是3.3V稳压电源,其它芯片直接用5V。
系统初始化,检测是否接收到发送模块发送过来的数据。
接收成功后调用温度显示函数,把温度显示出来。
其中第一块采集电路板的温度显示在LCD1602第一行,第二块采集电路板的温度显示在LCD1602第二行。
在此同时,调用报警函数,一旦接收到的温度超过设定的上限温度之后蜂鸣器会一直鸣叫进行温度警报。
当温度降到上限温度以下时,警报停止。
图3.2接收电路程序设计流程图
3.3DS18B20程序设计
根据DS18B20的通信协议,主机控制DS18B20完成温度转化必须经过3个步骤:
每一次读写之前都要对DS18B20进行复
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 nRF24L01 多点 温度 采集 系统 设计