无线温度遥测系统最终解光飞 刘畅 李群_第1页
无线温度遥测系统最终解光飞 刘畅 李群_第2页
无线温度遥测系统最终解光飞 刘畅 李群_第3页
无线温度遥测系统最终解光飞 刘畅 李群_第4页
无线温度遥测系统最终解光飞 刘畅 李群_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

合肥学院第七届电子设计竞赛目录摘要:- 3 -1引言- 3 -2 系统设计- 4 -2.1 总体设计方案- 4 -2.1.1设计思路- 4 -2.1.2 方案论证与选择- 4 -2.1.3 方案组成- 7 -3 设计实现- 8 -3.1 系统硬件电路设计- 8 -3.1.1温度数据发射电路- 8 -3.1.2温度数据接收电路- 9 -3.1.3温度数据测量电路- 9 -3.2 系统软件设计- 12 -4系统测试- 13 -4.1测试条件- 13 -4.2硬件测试- 13 -4.3软件测试- 13 -4.4 实验数据分析- 14 -5 总结- 15 -6 参考文献- 16 -附录- 17 -附录1 电路原理图- 17 -附录2 系统所用到的材料及仪器- 20 -附录3程序流程图- 21 -附录4部分程序及注释- 24 -无线温度遥测系统(C题)摘要:本设计以单片机STC89C52为控制核心,基于温度传感器DS18B20采用单总线协议、直接将被测环境的温度转化成数字信号的特点,实现了环境温度的实时监测和无线传输数据、显示被测温点数据温度及声光上限报警。整个系统由温度数据采集模块、数据发射模块、数据接收模块、LCD显示模块、声光上限报警模块等若干部分组成。完成了实时监测环境温遥测的基本要求部分的全部功能指标和发挥部分中绝大部分的功能指标。关键词:STC89C52 DS18B20 NRF24L01 LCD显示1引言数字化温度传感器DS18B20直接将环境的温度信号转变为数字信号,以数码管方式串行输出,当其与无线发射芯片NRF24L01相互传输数据,且NRF24L01将数据以无线电磁波的形式发送出去,接受模块则将数据传送给单片机处理。则从被测的环境温度就可以精确地计算出来。本系统正是基于此原理完成具有实时温度检测的无线温度遥测系统的设计。 根据分析,其基本要求有:(1)测温范围:10C65C,误差2米;(4)可以设置温度上限报警;(5)接收点显示测温点数据及声光上限报警信号;发挥部分的要求有:(1)遥测距离5米;(2)误差0.2C,具有温度补偿功能;(3)具有特色与创新;(4)测量温度速率小于1秒;(5)多路测量;本设计的难点在于温度的采集和被测环境温度数据的发射、接受与处理上,只有这样才能对环境温度进行实时的准确测量。2 系统设计2.1 总体设计方案2.1.1设计思路为了实现无线温度的遥测,则该系统中需要包含温度测量模块、数据预处理模块、无线发射与接收模块、数据处理模块、数据显示与温度上限报警模块。各个模块的组合如下图所示:温度测量数据预处理无线发射无线接收数据处理温度数据显及声光报警图2-1 数据发射与接收2.1.2 方案论证与选择1、测量温度传感器选择方案一:使用热电偶温度传感器。它测量精度高(热电偶直接与被测对象接触,不受中间介质的影响),测量范围广(常用的热电偶从-50+1600均可连续测量)。在使用时,它能将温度信号转换成热电势信号, 通过电气测量仪表的配合, 就能测量出被测的温度。方案二:使用数字型DS18B20温度传感器。它是单线接口方式,在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯;测温范围 55125,在10-50C范围内精度高达0.1C;支持多点组网功能,多个DS18B20可以并联在唯一的三线上;且在使用中不需要任何外围元件。基于以上的分析和题目的要求,我们选择方案二。 2、无线数据传输方案在本套系统中,要求的传输距离至少要大于2m,最好能大于5m,传输速率至少要在每秒1KB以上。目前的近距离数据传输模块主要分为红外线传输。方案一:红外线传输。它通过数据电脉冲和红外光脉冲之间的相互转换实现无线的数据收发;传输距离会受到方向性和外界光的干扰,一般为3-5m;由于它是直线传输,所以对接收器的方向要求很高(30度以内),不能实现任意角度的接收。方案二:本方案使用射频收发芯片nrf2401来实现数据的无线传输,其工作于2.42.5GHz ISM频段,芯片内置频率合成器、功率放大器、晶体振荡器和调制器等功能模块,输出功率和通信频道可通过程序进行配置。芯片能耗非常低,以-5dBm的功率发射时,工作电流只有10.5mA,接收时工作电流只有18mA,多种低功率工作模式,节能设计更方便。其DuoCeiverTM技术使nRF2401可以使用同一天线,同时接收两个不同频道的数据。nRF2401内置地址解码器、先入先出堆栈区、解调处理器、时钟处理器、GFSK滤波器、低噪声放大器、频率合成器,功率放大器等功能模块,需要很少的外围元件,因此使用起来非常方便。基于以上的分析论证,我们组决定选择方案三。3、显示温度数据模块温度数据的显示模块我们一共有两种选择方案,分别是:数码管显示,LCD1602液晶屏显示:方案一: 采用通用的LED数码管,这样显示的相对来说要简单许多。对程序的编程也相对来说较方便。但是,数码管占用的IO口较多。方案二: 1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码。这样在显示温度数据的时候就比较的直观同时在一定程度上也增加了字符的丰富感。比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。方案三:采用LCD12864显示,带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为12864, 内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示84行1616点阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。为了更加方便的满足设计要求,我们采用了方案二与方案三。4、温度上限声光报警模块声音报警我们选择蜂鸣器来达到报警目的,光提醒我们选择体积小、亮度高等优点的led发光二极管。方案一:有源蜂鸣器内部带有振荡源,所以,只需要通上其正常的工作直流电压就可以有效的工作。故,其连接线路简单,占用的程序储存空间小。方案二:无源蜂鸣器内部不带振荡源,所以,直接用工作的直流电是不会有效的发出声响的。必须用2kHz5kHz的方波信号去控制驱动它,那样它才能顺利的工作。综上所述,我们会选择操作简单的方案一。2.1.3 方案组成1、控制器STC公司的单片机主要是基于8051内核,是新一代增强型单片机,指令代码完全兼容传统8051,速度快812倍,带ADC,4路PWM,双串口,有全球唯一ID号,加密性好,抗干扰强。同时其价格低,体积小,功耗低,可靠实用。2、发射电路模块使用射频收发芯片nrf24l01来实现数据的无线传输,其工作于2.42.5GHz ISM频段,芯片内置频率合成器、功率放大器、晶体振荡器和调制器等功能模块,输出功率和通信频道可通过程序进行配置。3、接收电路模块接收电路中也是使用nrf2401来实现无线数据的接受,nrf2401芯片是收发一体的。4、温度数据显示模块采用LCD1602与LCD12864液晶屏,按照实时测量的数据精确显示。本模块的主要功能是实时显示描述系统状态的各种信息以及记录各阶段运行的时间。液晶显示屏(LCD)不仅显示信息量大,画面效果好,节省I/O口,因此本模块可选择液晶屏(LCD)显示。具体的我们在温度数据采集发射的模块上采用了LCD1602液晶显示,在温度数据的接收模块采用了LCD12864显示。5、温度上限声光报警模块采用有源蜂鸣器和高亮度的led发光二极管作为声光报警器。经过上述论证,系统最终设计方案如下图所示:温度测量数据预处理无线发射无线接收数据处理温度数据显示及声光报警图2-3 系统最终方案nRF2401内置地址解码器、先入先出堆栈区、解调处理器、时钟处理器、GFSK滤波器、低噪声放大器、频率合成器,功率放大器等功能模块,需要很少的外围元件,因此使用起来非常方便。3 设计实现 3.1 系统硬件电路设计3.1.1温度数据发射电路 nRF2401引脚功能: 图3-1 NRF2401引脚图芯片引脚排列见图3-1各引脚具体功能如下:VSSPA、VSs为参考接地端;VDD为电源端,范围19 V36 V;VDDPA为功率放大+18 V电源输出端;ANTl、ANT2为天线接口端;XCl、XC2为晶振端;IREF为参考电流端,通过22 kQ电阻接地PwRUP为上电端;CE为工作状态使能端;CS为片选端,控制器通过对nRF2401的PWRUP、CE和CS引脚状态组合设置,控制nRF2401的工作方式,当状态组合为分别为1、1、O,1、0、1,1、o、o及o,时,芯片分别处于激活、配置、待机及低功耗方式。CLKl、CLK2为通道1、2时钟信号端,由控制器提供,在突发模式下控制器在时钟上升沿由DATA引脚向nRF2401写入数据,在下降沿从nRF2401的DATA引脚读出数据;DRl、DR2为通道1、2接收数据就绪信号端;DATA、DOUT为通道1、2数据端,控制器与nRF2401由CLK、DR和DATA组成的三线接口交换传输的数据,通道1可接收和发送数据,通道2只能接收数据。nRF2401的DuoCeiverTM技术为RX提供了两个独立的专用数字信道,因而可代替两个单独接收系统。接口引脚为CE,CLK1,DATA A. 当微控制器有数据要发送时,其把CE置高,使nRF2401工作;B. 把接收机的地址和要发送的数据按时序送入nRF2401;C. 微控制器把CE置低,激发nRF2401进行ShockBurstTM发射;D. nRF2401的ShockBurstTM发射E.给射频前端供电;F. 射频数据打包(加字头、CRC校验码);G.高速发射数据包;H .发射完成,nRF2401进入空闲状态。3.1.2温度数据接收电路接口引脚CE、DR1、CLK1和DATA(接收通道1)A. 配置本机地址和要接收的数据包大小;B. 进入接收状态,把CE置高;C. 200us后,nRF2401进入监视状态,等待数据包的到来;D. 当接收到正确的数据包(正确的地址和CRC校验码),nRF2401自动把字头、地址和CRC校验位移去;E. nRF2401通过把DR1(这个引脚一般引起微控制器中断)置高通知微控制器;F. 微控制器把数据从nRF2401移出;G. 所有数据移完,nRF2401把DR1置低,此时,如果CE为高,则等待下一个数据包,如果CE为低,开始其它工作流程。单片机的控制信号和数据通过P2口进行交换,S1开关用于设置nRF2401处于发射或接收状态,发光二极管D1亮表示系统处于发射模式,D2亮表示处于接收状态,D3亮表示已收到数据。3.1.3温度数据测量电路DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的管脚排列如下: 图3-2 DS18B20外形图 引脚定义: (1)DQ为数字信号输入/输出端; (2)GND为电源地; (3)VDD为外接供电电源输入端(在寄生电源接线方式时接地)。 内部结构图3-3DS18B20内部结构图 3.2 系统软件设计 无线温度遥测系统的软件设计主要由主程序、温度数据处理程序、声光报警程序、无线数据收发程序及显示子程序组成。主程序流程图见附录三图1所示。其在运行的过程中将要调用图2的三个子程序。单总线器件ROM码的获取,可以借用读数据子程序提前读出,要求其先发初始化命令,再发33H命令,既是读ROM码命令,然后,再调用读数据子程序。在程序设定的地址就可以找到ROM序列码,要注意的是数据线要挂一个器件,之后再度下一个器件。并记录器件的序列号。NRF24L01无线数据收发程序流程图见附录三图2所示,nRF24L01的各种命令字都只有一个字节,分为读寄存器、写寄存器、读数据接收缓冲区、写发送数据缓冲区等。在输入任意命令字的同时,MISO输出STATUS寄存器的内容。 按照硬件电路,系统程序的基本思路如下:系统上电后先配置nRF2401,发射模式的状态字为OX500800DODDDDDD一00DDDDDD834A05,接收模式的状态字为OX500800DODDDDDDooDDDDDD834A04。配置后通道1数据宽度8 bit,地址为00DDDDDD,地址长度32位,CRC校验16位,单通道接收,晶振12M,工作频率2 402 MHz,输出功率一5 dBm。程序在每次完成发射或接收任务后,都会监测一下P1.0的电平,来确定下一个循环的工作模式。4系统测试4.1测试条件USB接口提供稳定的5V直流电给系统供电、万用表等。4.2硬件测试1、对系统电路的测试:在焊接好电路、连接好电路之后发现还是有一部分问题,虽然之前一直很仔细的在焊接电路。其中主要的原因有:连接线出错、元器件使用出错。2、对显示模块(LCD1602&12864)的测试。在排查系统电路之后,首先对系统的LCD液晶显示模块进行测试,发现液晶LCD并不能正常工作。首先从软件处寻找问题,在排除软件的问题后,查阅使用手册时了解到在显示之前要调节好显示屏的辉度,只有液晶在合适的辉度条件下,才可以正常工作。3、在对单片机外部电路的测试中发现我们的蜂鸣器驱动电路有问题,在这之前我们没有仔细的去设计驱动电路,导致我们在运行的过程中没能驱动蜂鸣器。但最终在各方面排查之后还是解决了着一问题。4、对发射模块硬件电路上也同样出现了不少问题,其中最主要的就是驱动nrf24L01模块所用的电压是3V,而我们单片机供电是5V。当时我们外接了一个3V电源在反复调试软件部分后才发现我们没有对发射模块与单片机模块公地。5、对18B20硬件测试的时候没有出现太大的问题,其电路连接相对简单。所用的I/O接口也相对较少。4.3软件测试1、在连接调试好硬件电路的基础上我们下一步的工作就是对软件部分测试,一开始的时候我们从基础做起发送一位数据(即最简单的发光二极管的亮与灭)。反复的调试过后终于可以实现一位数据的传输了。接下来就是不间断的发送一个变量,我们采用键盘来模拟不断变换的数值,当然功夫不负有心人我们的实验终于在一个星期后成功了。测试中我们发现接收数据的RxBuf没有及时的清零才导致我们一开始的时候没能发送成功变量的主要原因。2、测试中发现当我们温度数据发送23.23时,在接收的显示器上并不能及时的更新数值,反应的时间相对较缓慢。针对这一情况我们在反复的检查程序的时候发现我们在声光报警的时候消耗的时间较多。这样就延误了温度刷新时间。之后我们想了很多的办法才想到用定时器中断来解决这一问题!这样温度刷新与声光报警两个事件就相互之间互不影响。4.4 实验数据分析测试工具 温度计、秒表、卷尺。测试结果,在不同温度范围内报警声的频率不同,而且发光二极管的闪烁频率也不同,完成声光报警要求,用1602,12864分别显示发射时与接收时的温度,显示位数有四位,分辨率达到0.1,也达到要求。遥测遥控测试(时间差为发射与接收的时间差)测试距离50m100m150m200m时间差0.1s0.1s0.1s0.1s测试结果成功成功成功成功 表4-1 距离测试超出设定温度时,系统声光报警测试。(在0-21内报警频率高,在21-23内报警频率高,在23-27内不会报警,在27-29内报警频率低,在29-150内报警频率高)设定温度值0-2223-2627-2930-80测量结果报警成功不会报警报警成功报警成功表4-2 报警测试5 总结经过长达四周的时间里我们终于完成了作品:无线温度遥测系统,一个月的时间里有太多另我们无法忘去的记忆还记得刚开始接触到题目时,那时的我们就像一只没了方向的小鸟。在浩瀚的天空里漫无目的的飞翔。我们不知道该从何做起,对于最基本的单片机也不是太了解。但是,我们有一颗雄心壮志的心。我们相信只要我们团结起来一起坚持到最后一定能完成我们的题目,就像我们想象的一样最终我们如愿的很好的完成了我们的题目。“有志者事竟成”这句话的寓意,在这次的实战中体现的是淋漓尽致!我们从一开始的完全不懂到最后我们很好的完成题目,这都是建立在我们有一颗向前的心。我们坚信“世上无难事只怕有心人”。无数次的失败我们的心灵都会告诉我们、提醒着我们不能随便的说:“不行”、“不可能”、“做不出来”。坚定的意志以及那颗渴求知识的热情使我们拼命的在学习、在奋斗。曾记否,那时我每天早上早早的就来到实验室,没有课的时候我都泡在实验室里。反反复复的调试着程序。虽然以前学过C语言但是现在看来我当时学的知识好似一点都每派上用,无赖之下只得翻开以前的课本细细的钻研其中的知识。一整天的在实验室里真的很疲惫,但是,每当调试出成功的程序时我被那份欣喜感动着,我学习我快乐。我对那些电器的反应很感兴趣:一只发光二极管的点亮与熄灭、一个蜂鸣器的响声、一个数码管的显示、一个液晶屏的控制等等的这些都会让我欣喜不已。就这样,一天接着一天,一周接着一周,我不断的在拼命的学着知识不断的被我吸收着。就这样这种生活早已被我渐渐的习惯,泡在实验室已成了我生活的一大部分,我喜欢这样的生活:充实并快乐着。这是我在其他地方所不能感受的到得。晚上同样我也在实验室里,知道有人来催着说要关门了,那时我们才依依不舍的回到寝室。在寝室里我可以很好的补充理论知识,已被次日的实战。终于在第二周的时候我们的作品基本已完成了80%,每个模块独立起来都是可以很好的实现的。但是,为了更好的完成作品,增加作品的难度我们始终在追求最好。最终我们有我们作品的特色与创新,我们在原题目要求之上也做了其他额外的功能。每一次的每一次我们都是那样努力那样团结。在第三周的时候我们每个模块联合起来可以实习温度的遥测了。但是,那时候还是存在一点问题的。所以,在最后一周的时间里我们反复的调试着我们的程序,在温度的刷新时间上我们下了很大的功夫。同时,在最后一周的时间里我们焊接了我们的的最小系统开发板两块,以供我们无限发射与接收使用。同时,我们的温度数据显示也是采用了液晶显示,温度上限报警采用了声、光、以及显示同时报警的目的。最后,我愿我们的队伍能拼到最后。在总决赛中很好的表现!6 参考文献1 郭天祥 51单片机C语言教程北京:电子工业出版社,2010年10月2 谭浩强 C程序设计.北京:清华大学出版社,1991年3 杨欣,王玉凤,刘湘黔 电子设计从零开始,2005年10月4 张崇,于晓琳,刘建平无线收发一体芯片nRF2401及其应用, 2004年5 黄智伟 无线数据通信IC原理与应用北京:北京航空航天大学出版社,2004年附录附录1 电路原理图图1 NRF24L01电路原理图STC89C51图2 1602液晶显示与STC89C51连接图图 3 声光报警电路图 4 温度数据发射整体电路图图 5 电源模块电路原理图图 6 温度数据接收整体电路图图 7 最终实物图附录2 系统所用到的材料及仪器在这系统中我们所用到得器材如表5-1所示器件名规格数量(个)器件名规格数量(个)单片机STC89C522三极管80501晶振12MHz2有源蜂鸣器1瓷片电容30pF4稳压芯片LM3171瓷片电容1044稳压芯片LM3371发光二极管6稳压芯片ASM11172电解电容10uF/50V4显示器16021电解电容2200uF/50V2显示器128641电解电容100uF/25V排插10电阻1k2插座10电阻200240P 插座2电阻5604杜邦线30电位器10k4二极管IN40074排阻10k2自锁开关4温度传感器18b201无线传输模块NRF24012表5-1 器材清单附录3程序流程图图1 主程序流程图图 2 DS18B20子程序流程图YNN发送一位数据Y进入发送状态N发送请求标志位=1?YN开始Stc89c52初始化子程序Nrf2401初始配置子程序进入激活方式式接受就绪信号DR=1?进入接收状态接收一位数据数据校验子程序数据是否接收完毕?N丢弃数据请求重发数据是否发送正确?数据是否发送完毕?YY图3 NRF24L01程序流程图附录4部分程序及注释接受模块部分程序:#include #include nrf2401.h#include 12864.h#include alarm.h#define unchar unsigned char#define unint unsigned intsbit beep=P17;void delay(unint z) /*延时函数*/void writecom(unchar com) /*写指令数据到lcd*/void writedata(unchar date1) /*写显示的数据到lcd*/void lcd_pos(unchar xx,unchar yy) /*设定显示位置*/void display(unint u)/*这样写的好处就是能让每一位都能显示,且数据地址指针是自动加一位的*/void init12864()/*lcd初始化设置*/void timer()/*定时器中断*/void send_code()/*显示数组*/void timer0() interrupt 1 /*无线模块驱动*/void init_NRF24L01()uchar SPI_RW(uchar byte)uchar SPI_RW_Reg(BYTE reg, BYTE value)BYTE SPI_Read(BYTE reg)uchar SPI_Read_Buf(BYTE reg, BYTE *pBuf, BYTE bytes)uchar SPI_Write_Buf(BYTE reg, BYTE *pBuf, BYTE bytes) void SetRX_Mode()/*/unsigned char nRF24L01_RxPacket(unsigned char* rx_buf)void nRF24L01_TxPacket(unsigned char * tx_buf)/*声光报警*/*定时器初始化*/void T1_timer_uint()/*温度极限值判断*/void deal(unint tt)/*定时器1*/ /*蜂鸣器响,灯亮*/void T1timer()interrupt 3/*主函数*/void main()unint temp;unsigned char flag_nrf24l01=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论