基于nRF24L01的无线温湿度测试系统
内容摘要:针对传统温湿度测量中的缺点,设计了以低功耗MSP430单片机为控制核心,利用温湿度一体传感器SHT11进行温湿度信号的采集,结合无线传输模块nRF24L01对数据进行无线传输的温湿度测试系统,并在可靠可信、微功耗的基础上能很好地满足实际应用要求。 关键词:SHT11;MSP430;nRF24L01;无线数据传输
随着科技的进步和现代工农业技术的发展,温度和湿度的测量和控制对人类日常生活、工业生产、气象预报、物资仓储等都将起着越来越重要的作用。在传统的温湿度测量中,分别采用温度传感器和湿度传感器采集温度和湿度信号,并通过布置大量的电缆或导线进行有线传输。在多测点的情况下,这种方法无疑大大增加了成本和系统设计的复杂性,同时安装拆卸繁琐,不灵活,信号容易受到干扰。因此,本次设计运用了数字式温湿度一体传感器SHT11,能够同时采集温度和湿度信号,并直接输出数字信号;采用无线收发一体射频模块nRF24L01,对数据进行无线传输;采用MSP430单片机设计低功耗采集存储电路。
1 系统总体结构和工作原理 本次设计的无线温湿度监控系统有上位机子系统和下位机子系统两个部分组成。上位机子系统由主控芯片MSP430单片机、无线射频接收模块、天线、液晶显示模块、电源模块、时钟模块、串口通信模块、终端设备等组成。上位机子系统原理框图如图1所示;下位机子系统由主控芯片MSP430单片机、温湿度传感器、无线射频发射模块、天线、电源模块以及时钟模块等组成。下位机子系统原理框图如图2所示。
在下位机子系统中,由数字温湿度传感器SHT11分别对温度和湿度信号进行实时采集,在主控芯片MSP430单片机的控制下通过无线发送模块nRF24L01将温湿度数字信号发送到上位机子系统;在上位机子系统中,在MSP430主控单元的作用下,通过无线射频接收模块接收下位机子系统发送过来的温湿度数字信号,一方面通过液晶显示模块实时显示接收到的温湿度数值,一方面通过串口通信模块与终端设备进行通信,在终端设备中利用软件读取数据并绘制曲线。
2 系统硬件电路设计 2.1 微控制器的选择 MSP430系列单片机是美国德州仪器(TI)公司推出的一种16位超低功耗的混合信号处理器。它的电源电压采用1.8~3.6 V低电压,RAM数据保持方式下耗电仅为0.1μA,活动模式耗电为250μA/MIPS,I/O输入端口的漏电流最大仅为50 nA。此外,它共有一种活动模式和5种低功耗模式。MSP430具有强大的处理能力、高性能模拟技术及丰富的片上外围模块。由于本次设计的测试系统需要长期在测试环境中采集温湿度信号,并利用电池供电,所以低功耗的要求就必须考虑。 2.2 温湿度传感器 SHT11是一款高度集成的温湿度传感器芯片,它采用专利的CMOSens技术,提供全量程标定的数字输出;由于采用了优化的集成电路形式使其具有极高的可靠性与卓越的长期稳定性。该传感器包括一个电容性聚合体湿度敏感元件和一个用能隙材料制成的温度敏感元件,并在同一芯片上与14位的A/D转换器以及串行接口电路实现无缝连接。每个传感器芯片都在极为准确的湿度腔室中以镜面冷凝式湿度计为参照进行标定;两线制的串行接口与内部的电压调整,使外围系统集成变得快速而简单。SHT11具有体积微小、功耗极低、抗干扰能力强、响应快速等优点。 2.3 nRF24L01无线传输模块 nRF24L01是一款新型单片射频收发一体器件,工作于2.4~2.5 GHz ISM频段。其内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融合了增强型ShockBurst技术,其中输出功率和通信频道可通过程序进行配置。nRF24L01功耗很低,在-6dBm的功率发射时,工作电流只有9 mA;接收模式时,工作电流只有12.3 mA;有掉电模式和待机模式两种低功率工作模式使节能设计更方便。nRF24L01采用GFSK调制,具有自动应答和自动再发射功能,片内自动生成报头和CRC校验码的特性。 2.4 SPI连接 MSP430单片机与nRF24L01无线收发模块之间利用同步串行口SPI进行双向通信。nRF24L01的SPI总线有SCK(SPI时钟)、MISO(主入从出)、MOSI(主出从入)、CSN(SPI使能)。 MSP430通过控制PWR_UP、PRIM_RX以及CE3个引脚的高低电平使nRF24L01分别处于发射模式、接收模式、待机模式以及掉电模式,IRO是中断标志位。MSP430与nRF24L01的连接图如图3所示。
3 系统的软件设计 3.1 无线发送模式流程 1)MCU控制引脚CE为低,使nRF24L01进入待机模式I,配置其寄存器: 2)当MCU有数据要发送时,接收节点地址(TX_ADDR)和有效数据(TX_PLD)通过SPI接口写入nRF24L01,当CSN为低时数据被不断地写入。发送端发送完数据后,将通道0设置为接收模式来接收应答信号,其接收地址(RX_ADDR_P0)与接收端地址(TX_ADDR)相同;
3)设置PRIM_RX为低、CE为高,启动发射模块,CE高电平持续时间最小为10μs; 4)nRF24L01 ShockBurst发送模式:无线系统上电、启动内部16 MHz时钟、无线发送数据打包、高速发送数据; 5)数据发送完后,立即进入接收模式。如果在有效应答时间范围内收到应答信号,则认为数据成功发送到了接收端,此时状态寄存器的TX_DS位置高并把数据从TX_FIFO中清除掉;如果在设定时间范围内没有接收到应答信号,则重新发送数据,如果自动重发计数器溢出,则状态寄存器的MAX_RT位置高,不清除TX_FIFO中的数据。当MAX_RT或TX_DS为高电平时IRQ引脚产生中断,IRQ中断通过写状态寄存器来复位。如果重发次数在达到设定的最大重发次数时还没有收到应答信号的话,在MAX_RX中断清除之前不会重发数据包,数据包丢失计数器(PLOS_CNT)在每次产生MAX_RT中断后加一; 6)如果CE置低,则系统进入待机模式I,如果不设置CE为低,则系统会发送TX_FIFO寄存器中下一包数据,如果TX_FIFO寄存器为空且CE为高则系统进入待机模式II; 7)如果系统在待机模式Ⅱ,当CE置低后系统立即进入待机模式I。 nRF24L01的发送模式的程序流程图如图4所示。
3.2 无线接收模式流程 1)MCU将nRF24L01的CE引脚置低,使其进入待机模式I,并对其寄存器进行配置; 2)将PWR_UP、PRIM_RX、CE引脚置高,使nRF24L01进入接收模式; 3)130μs后nRF24L01开始检测空中信息; 4)接收到有效的数据包后(地址匹配、CRC校验正确),将数据存储在RX_FIFO中,同时RX_DR位置高,并产生中断; 5)发送确认信号; 6)MCU设置CE脚为低,使nRF24L01进入待机模式I; 7)MCU通过SPI口以合适的速率将数据读出。 nRF24L01的接收模式的程序流程图如图5所示。
4 结论 文中设计了一种低功耗、高可靠性的温湿度测试系统。经测试本系统在空旷环境下可靠通信距离达到220 m,可以满足实际测试需要。
|