基于无线通信技术的温度报警器设计与实现∗
2018-11-28梁越勇季航宇浦希成
梁越勇 季航宇 浦希成
(江苏科技大学计算机科学与工程学院 镇江 212003)
1 引言
无论是现代家居生活,还是工农业产业链,无线监控和无线报警之类的设计都会给生产、生活带来很大的效率提高,目前无线通信领域也是研究的重点,因此研究无线温度报警器系统具有极高的社会价值和广阔的市场前景。本系统在无线通信方面采用的是 NRF24L01 无线射频模块[1~2],工作于2.4GHz~2.5GHz ISM频段。内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融合了增强型ShockBurst技术[3]。此设计软件编程基于STC89C52单片机完成的,发射机和接收机主要包括主函数、温度读取函数、中断服务函数和判断报警信号函数。其中,主函数完成了查询和显示报警信号的功能;中断服务函数消除了外部中断源INT0的中断标志,使整个程序能实现实时控制;判断报警信号函数检测中断信号是否为上一次的信号。本文的结构含温度报警器的系统总体设计、硬件子系统的设计与实现以及软件子系统的分析与设计,最后对系统进行了测试与评价。
2 系统总体设计
2.1 功能模块组成
本系统由发射机和接收机两大部分组成,我们根据需要在接收机上设置好一个合理的温度范围,发射机放在需要检测的环境下,当被检测的当前环境温度超出了所设置好的温度范围时,接收机上蜂鸣器[4]发出警报。
2.2 系统设计思路
nRF24L01芯片具有两种通信模式:直接模式和突发模式,使用nRF24L01芯片特有的突发模式,可以提高系统整体的性能和效率[5]。无线传输的有效距离和发射功率、接收灵敏度、工作频率有关。想要实现更远的无线传输,一般可以从改善接收机的灵敏度入手。此次设计的模型是无线温度报警器,实现的传输距离是20m左右。基于以上分析,我们需要先在接收机设置好温度的上下限,然后把发射机放到待检测的环境下,实时地检测环境的温度是否达标。
3 硬件子系统的设计及实现
3.1 硬件整体布局
无线温度报警器由发射机和接收机组成,发射机负责传感器温度的测量,通过24L01模块把数据实时传给接收机,主要器件有STC89C52单片机、DS18B20温度传感器、24L01无线模块、12M晶振等。接收机通过24L01无线通信模块实时接收来自发射机的数据,然后交给STC89C52单片机来判断是否需要报警。接收机电子元件主要有STC89C52单片机、24L01无线射频通信模块、LCD1602液晶显示屏、5V有源蜂鸣器等。
硬件整体布局如图1所示。
图1 硬件整体布局
3.2 电源设计
本设计中使用的电源需要单独进行设计,由于正常用电是220V的交流电,而STC89C52和其他功能模块是在5V直流电源下工作的,所以需要另外设计一个5V直流电源。要得到稳定可用的DC5V电源,要将50Hz的交流电经降压变压器降为12V交流电,然后通过桥式整流器、电容滤波后得到12*0.9=10.8的直流电,由于不够稳定,所以还要在该直流电后面加一个集成稳压块和一个较大电容作为储能用,使得输出电压不因负载的变化而影响。
电源对模块的整体运行十分重要,严格设计的电源可以大大降低模块的非正常关机率。由于本温度报警器的设计是一个独立运行的计算机微系统,通常情况下应通过指令AT^SMSO来进行关闭,同时一定要确认模块关机后再进行切断电源的操作。在实际应用中,如果系统会时常发生断电情况,则需要为该温度报警器配备备用电池,以保证系统的正常工作。我们在设计的5V电源后加一个TR1972-33,使得电压约为4.4V,再接一个470μF的电解电容。
电源设计电路图如图2所示。
图2 电源设计电路图
3.3 STC89C52单片机
本设计中实用的STC89C52单片机是STC公司最新推出的一种新型51内核的单片机。该单片机的指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择[6]。片内含有Flash程序存储器、SRAM、UART、SPI、PWM等模块。Flash存储器的最大特点是可以在线重新编程,适用一般的编程器。8位的CPU和在线编程Flash进行集成化处理,使得STC89C52单片机的功能更加完善,在温度报警器控制系统中有着更广泛的应用前景。
3.4 DS18B20
本设计中使用的DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,主要根据应用场合的不同而改变其外观。适用于各种狭小空间设备数字测温和控制领域[7]。
引脚说明:I/O为数据输入/输出端,它属于漏极开路输出,外接上拉电阻后,常态下呈高电平。UDD是可供选用的外部电源端,不用时接地,GND为地,NC空脚。
3.5 nRF24L01无线射频收发器
本设计中使用的nRF24L01是一款工作在2.4GHz~2.5GHz世界通用ISM频段的单片无线收发器芯片。内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融合了增强型Shock Burst技术,其中输出功率和通信频道可通过程序进行配置[8]。该芯片的能耗很低,以-5dBm功率发射时,工作电流只有10.5mA,接收信号时电流只有18mA,工作模式多样,可以更方便地应用于各种节能设计中,使得设计的温度报警器处于功耗极低的工作模式,增加了设计的实用性。
nRF24L01支持多点通信,最高传输速率为2Mbit/s。嵌入的链路层设计减少了MCU的成本和复杂性,提高了传输可靠性,本设计中采用SOC方法设计只需少量外围元件便可以组成射频收发。
本次设计的无线温度报警器是基于点对点的设计,在实际应用中,小范围的检测区域适用于点对点检测,如果是较大范围的区域,往往需要多点来进行检测,即一对多的检测体系,基于本设计我们进行了基于一对多的检测改进,主要的功能模块是由nRF24L01来完成,即一个接收机对应多个发射机,各个发射机分别被置于不同区域采集数据,然后通过无线收发模块进行数据传输,最后在接收机的STC89C52进行数据处理、控制显示。可以在显示屏上显示多点的平均温度,以及所有点的最高和最低温度,通过和阈值温度进行比较,判断是否发出警报。
多点温度采集如图3所示。
图3 多点温度采集图
一对多的扩展设计是由各个一对一的无线温度报警器组成的,所以我们重点研究一对一的温度报警器的设计与实现,后期进行集成开发,广泛应用,增加该设计的实用领域。
3.6 5V有源蜂鸣器
本设计中使用的蜂鸣器是一种一体化结构的电子迅响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。与无源蜂鸣器不同,有源蜂鸣器带振荡源,可以采用直流驱动信号[9~10]。当发射机的DS18B20温度传感器检测到周围的温度高于指定的阈值时,信息传到接收机,单片机控制蜂鸣器,三极管导通,蜂鸣器发出警报。由于该温度报警器的设计是基于实验室设备的,所以选用的报警器件是蜂鸣器,在实际应用中,蜂鸣器的声音响度不足以满足要求,可以选用其他功率较大的报警器件,如大功率警铃。
3.7 显示模块设计
本设计中使用的显示屏是基于STC89C52单片机的1602液晶显示屏,我们通过C语言代码进行写入操作,使得在工作状态时,液晶显示屏时刻显示设计好的温度上下限,以及发射机当前温度,即待检测环境温度。
4 软件子系统的设计与实现
本次程序设计语言采用的C语言来进行编写算法,算法需要完成的功能是:nRF24L01无线通信系统主要由单片机控制,当其完成检测到有DS18B20的数据时,单片机通过SPI通信协议对nRF24L01发送数据,nRF24L01模块进行无线通信、接收机接收到收据后发送给接收控制单片机。接收机控制数据显示,超限设置及声光报警。
1)独立按键,可以设置温度值的上下限;2)温度值小于下限,大于上限,声光报警;3)接收机与发送机通过nRF24L01无线通信;4)用1602液晶显示设置好的上下限值和当前温度。
4.1 发射机流程图(如图4)与接收机流程图(如图5)
图4 发射机流程图
图5 接收机流程图
4.2 SPI协议
本设计采用主从方式的SPI协议,在点对点的通信中,SPI接口不需要进行寻址操作,且为全双工通信[11]。
5 系统测试及分析
5.1 测试步骤
将程序烧写进开发板进行测试,具体步骤如下:
1)通过C语言编写软件写好代码进行编译;
2)代码编译成功后,加载程序文件夹中的hex[12]文件链接好下载器就可以下载了,下载器是STC-ISP串口下载器,串口下载有4根线,红线接电源,黑线接地,绿线接单片机10角,白线接单片机11角;
3)烧写成功后就可以进行调试和功能的实现了。
5.2 测试结果
将发射板和接收板隔开20m左右,分别上电,打开电源按键,在接收机上设置好最高温度t1和最低温度t2(t1>t2),发射机上温度传感器开始获取周围温度t,并通过无线射频模块发送到接收机,接收机接收到数据后,在显示屏上显示当前温度,同时显示已经设置好的温度上下限,此时,我们利用打火机给发射机升温,使得t>t1,这时蜂鸣器开始鸣叫,然后利用冰块给温度传感器降温,使得t<t2,这时蜂鸣器开始鸣叫。这时我们扩大发射机和接收机的距离,接收机上的温度不在随着发射机温度传感器周围温度的变化而变化,发射机和接收机的连接断开。
5.3 结果分析
在一定距离之内,发射版和接收机保持连接状态,从机显示当前主机的温度,并判断这个温度是否在设置好的温度之间,在一定温度范围内,DS18B20可以检测温度变化,该温度报警器工作要求如图6所示。(横轴为温度测试范围,纵轴为距离测试范围)
图6 报警器温度、距离要求图
5.4 特色与创新
1)使用方便:无需外界网络的支持,只需给发射机接收机供电即可工作;
2)人性化设计:发射机和接收机都很小,操作容易,显示器显示温度一目了然;
3)紧急报警功能:当发射机温度超过理想的温度范围时,蜂鸣器就会报警;
4)可靠:由于采用了跳频技术,NRF24L01在性能上稳定可靠,即通信设备会不断搜索干扰比较小的信道,可能每隔一段时间就会从一个频率转换到另一个频率[13~14],从而保证了数据传输的可靠性;
5)断电不丢失:温度传感器DS18B20具有断电不丢失的特性,这使得在操作过程中即使因某种情况导致断电,接收机显示器上依然会保持前一刻的数据[15~16];
6)有极大的社会价值:在工农业中,能够有效地对产品、对生产环境进行检测报告。
6 结语
在系统开发过程中,我们查阅了大量的相关文献,包括单片机SPI协议、NRF24L01的原理和使用、C语言的编写、代码的烧入等内容,收获颇多。
基于无线射频的温度传感器有很广的发展前景。51单片机采用低功耗的电源供给,具有安全性高的优点,所以不会对使用者产生任何相关安全威胁,用户可以放心使用。只需把发射机放置在被检测的环境之下,接收机放置在相关距离之内即可。设计简单轻巧。
此次设计体现了在机械自动化方面的应用,本报警装置可根据具体的应用背景进行改造,完成产品环境合格度的检测,产品质量大小规格等的检测,能够有效地提高生产效率,节省劳动成本,推动自动化产业的发展。