基于nRF24L01的无线温度监控系统设计
2019-08-27邓世华郑璞赵勋欧蔼文
邓世华 郑璞 赵勋 欧蔼文
摘 要:文章提出了一种基于nRF24L01无线射频收发芯片的无线温度监控系统,通过其内置的传感器进行温度收集,然后经过无线通信技术进行数据传输实现温度监测。该系统安全性、灵活性、可靠性较高,对温度的监测具有重要意义。
关键词:温度;nRF24L01;无线通信技术;监控
中图分类号:TP274 文献标志码:A 文章编号:2095-2945(2019)22-0092-03
Abstract: This paper proposes a wireless temperature monitoring system based on nRF24L01 radio frequency transceiver chip, through its built-in sensor for temperature collection, and then through wireless communication technology for data transmission, intends torealize temperature monitoring. The system has high safety, flexibility and reliability, and is of great significance for temperature monitoring.
Keywords: temperature; nRF24L01; wireless communication technology; monitoring
1 概述
近年来,科技飞速发展,无线通信技术广泛应用于各个领域,其中无线温度监控系统一直是研究的重点,以无线短距离、低功耗的方式进行温度传输越来越得到重视。因此对无线温度监控系统的研究具有重要的理论和实际意义。
本文介绍的是以无线传输的方式进行温度监控的系统,主要采用的是无线射频收发芯片-nRF24L01进行无线传输,通过它内置的传感器对周围环境的温度进行收集,通过无线收发单元发送温度数据给主机,以此来实现温度监控的目的。
2 系统描述
本系统主要是以无线射频收发芯片-nRF24L01为主的温度监控系统,用软硬件相结合的方法实现温度监控的目的;用LED灯实时显示所监控到的温度并发送给主机,如果所得到的温度数据高于所设置的最高温度或低于设置的最低温度,主机则会开启蜂鸣器报警。
3 算法设计
本设计的整个程序大致可以分为两大部分和三大模块:主机部分和从机部分,主程序模块,定时中断服务程序模块,外部中断服务程序模块,两部分中全部包含或部分包含这四大模块。其中主程序流程图如图1所示,定时中断服务程序流程图如图2所示。程序一开始进行初始化,设置中断时钟周期,配置PGIO口,绑定中断服务程序,然后主程序等待中断。
3.1 工作流程
整个程序的实际工作流程为:主机每1ms执行一次定时中断服务程序,每2ms扫描一次数码管,每1s感应一次环境温度并把数据转移储存,判断是否启动蜂鸣器;报警温度上下限设置按键按下产生外部中断使得外部中断服务程序被调用:参数csszaj加1(初始值为零),当csszaj等于1-3时设置报警温度上限,当csszaj等于4-6时设置报警温度下限。csszaj等于7时使csszaj等于0,csszaj等于1和4时红灯亮设置上限和下限的十位的温度,csszaj等于2和5时黄灯亮设置上限和下限的个位的温度,csszaj等于1和4时绿灯亮设置上限和下限的分位的温度。进入温度上下限设置后每按下1次ADD键对应的温度上下限数字加1,数字最大为9最小为0。如果没有进入温度上下限设置,则判断kj的值等于0,则nRF24L01进入增强接收模式即接收并转移储存从机的温度数据,然后检查从机温度是否在温度上下限之间,不是就给出蜂鸣器报警信号,否则就关闭蜂鸣器报警信号。从机每1s感应一次环境温度并把数据转换成我们需要的数据,然后把这些数据发送给主机。显示温度:kj等于1,把主机温度感应转移储存的数据转换成我们需要的数据,然后检查这些数据并显示温度。
3.2 温度数据处理
从16位的感应温度数据中取出第4位至第11位并从2进制转换为10进制,转换后的数除以100取余后再除以10得到十位的温度数据,以此类推得到个位的温度数据,从16位的感应温度数据中取出第0位至第3位并从2进制转换为10进制,转换后的数乘以0.0625(因为DS18b20的默认数据精度为0.0625)得到分位的温度数据。
4 硬件设计
温度监测系统整体设计如图3所示,以51系列芯片IAP15W413AS为主芯片,连接显示模块,位数选择模块,感应温度模块,外部中断模块,报警模块,数据传送模块,USB接口模块七个模块完成温度数据的采集与转换,主机收发从机数据,LED数码管显示数据,检测温度数据,蜂鸣器发声报警等各个功能。
4.1 感应温度模块与数据传送模块
感应温度模块通过主芯片的P3.7外部RAM读选通接口連接智能数字测温器件 DS18B20,通过编程可将DS18B20感应到的温度转换成数据,然后读入到主芯片中。
数据传送模块以P2.0-P2.5口和无线射频收发芯片-nRF24L01相连,P2.0连接可屏蔽中断脚IRQ,P2.1连接从SPI数据输出脚,P2.2连接从SPI数据输入脚,P2.3连接SPI时钟SCK脚,P2.4连接SPI片选信号CSN脚,P2.5连接RX或TX模式选择CE脚。然后以AMS1117作为无线射频收发芯片-nRF24L01的电源。通过编程实现无线收发数据。
4.2 显示模块
显示模块由四个LED数码管共阳极连接和74HC595芯片组成。通过74HC595芯片将主芯片发送出的数据输出到LED数码管。四个数码管是由主芯片通过控制三极管的连通来显示。74HC595芯片与主芯片连接口功能:DS口是三态输出口;SHCP口:上升沿时数据寄存器的数据移位,下降沿移位寄存器数据不变;STCP口:上升沿时移位寄存器的数据进入数据存储寄存器,下降沿时存储寄存器数据不变。74HC595内部/MR脚和VCC脚相连,/MR脚在低电平时将移位寄存器的数据清零;八个三态输出口Q0-Q7连接四个LED数码管的a,b,c,d,e,f,g,dP八个引脚。
4.3 位数选择模块与外部中断模块
位数选择模块由主芯片的P1.6,P1.7,P5.4,P5.5口作为输出口,连接四个二极管L1,L2,L3,L4。当L1,L4闪烁时,显示从机温度;当L1,L4常亮时,显示主机温度;当进行设置时,L3,L2,L1分别对应温度的十位,个位,小数点后一位数的设置。
外部中断模块通过主芯片的P3.1外部中断0申请口,P3.2外部中断1申请口以及P3.4计数器0计数输入连接按键GNJ,SET,ADD,实现GNJ键进行外部中断控制主机或从机的温度显示,实现SET键进行外部中断对温度监测的上下限的设置,通过按键对十位,个位以及小数点后一位进行循环设置;实现ADD键进行外部输入,设置温度上下限时,每按一次数据加1。
4.4 报警模块
报警模块通过主芯片的P3.5口和P3.6外部RAM写选通口连接蜂鸣器,可以对蜂鸣器进行控制。当两个口同时输出高电平时,开启蜂鸣器。
USB接口模块通过主芯片的P3.1串行数据接收口和P3.0串行数据发送口连接转换芯片TXIK然后可以与USBDY接口进行连接,就可以通过该USB接口连接计算机,通过计算机进行程序的写入。
5 实验结果
經过多次在不同情况下的测试结果表明,我们实现了温度监控的目的。我们采用了两种方式进行测试,第一种我们采用了最简单的测试方法,用手捏住从机的温度传感器改变从机的温度,观察主机能否接收到从机发送的实时温度数据,温度精确到小数点后一位,经过大约10ms的延迟后我们观察到主机能够准确地显示从机的实时温度,并且当从机传过来的温度数据超过了所设置的温度上限或低于所设置的温度下限,主机的蜂鸣器则会发出报警声和LED灯闪烁。第二种方法是在实际的环境下进行测试,将从机放置到太阳下,经过太阳光的照射使温度发生变化,然后在室内观察主机是否能够准确地接收显示从机的温度,在一定的延迟后主机正确地显示了从机的实时温度。但是主机和从机只能一对一的传输温度数据而不能一对多的传输,所以还可以进行改进,使温度监控系统更加完善。
参考文献:
[1]朱玉颖,蔡占辉.基于nRF24L01的远程温度检测系统设计[J].自动化技术与应用,2010,29(5):56-58.
[2]刘志平,赵国良.基于nRF24l01的近距离无线数据传输[J].应用科技,2008,35(3):55-58.
[3]时志云,盖建平.新型高速无线射频器件nRF24L01及其应用[J].国外电子元器件,2007(8):42-44.
[4]曾勇,杨涛.基于nRF24L01的超低功耗无线传感器网络节点设计[J].电子技术应用,2008(7):45-48.
[5]刘靖,陈在平.基于nRF24L01的无线数字传输系统[J].天津理工大学学报,2007,23(3):38-40.