何颖
(西安思源学院,电子信息工程学院,陕西,西安 710038)
目前在我们国家,气象监测技术已经较为成熟,气象台站普、自动气象观测系统已经大面积铺设,并且在一些人类难以生存的苛刻环境也有气象站或者是气候站的布置,这些气象观测系统的数据传输使用卫星通信。尽管我国的气象监测技术已经有了巨大的发展,但相较于发达国家来说我国仍有不小的差距,尤其是在气象数据采集这一自动气象站的关键技术上我们国家仍有很大发展提高空间。作为自动气象站的核心技术,数据采集的主要作用就是数据采样、处理、传输以及存储[1-2],其性能主要取决于测量的精度、系统的稳定性、可靠性以及灵活性。目前来说,强实时、多参数、高精度等方面是数据采集的主要展望。对于采集数据的存储来说,容量大、体积小、携带方便则是其发展关键。多通信方式(有线、无线)以及远距离数据传输则是数据传输技术的发展目标,可模块化设计以及可灵活组态的数据采集系统使用较少。因此,国内仅有部分观测系统采用自己研发的数据采集器,这些数据采集器的功能单一、灵活性以及重配置性差,其应用范围受到局限,仅适用于一些特定场合[3-4]。鉴于以上研究背景,设计一种基于nRF24L01的无线气象数据采集系统。
本设计分为主机和从机,从机上有各种传感器,将采集的信息通过nRF24L01模块传输给主机,主机的12864液晶屏可以实时显示当前的经纬度、高度、气压、温度、湿度等数据;采用的是远距离nRF24L01,传输距离为2300M,本设计的气象信息采集,从机小巧,质量轻,传输稳定,距离远。系统设计框图如图1所示。
图1 系统设计框图
单片机需要有一个最小的系统维持芯片的正常运行,系统采用STC89C52作为主控芯片,单片机最小系统需要一对供电单元,40号引脚供给电源,接正极,20号引脚接到电路的零极,由此组成一个供电单元。微处理器的运行程序需要有一个标准的振荡时钟电路,时钟电路接入XTAL1和XTAL2的两个引脚上,一个复位电路接入RST引脚上。
DHT11温湿采集模块在进行数据采集的时候,会自动从低功耗模式变成高速工作模式,DHT11会在主机的开始信号结束的时候发出40位的响应信号数据。这将使信号采集被首次触发,此时操作者可以对部分数据进行有选择的读取操作。在采集完毕数据之后,如果单片机尚未发送下一次采集指令,传感器就会从高速模式变回低功耗模式[5]。对于总线来说,其在空闲的情况下处于高电平,但是CPU会将总线电压拉低来保证DHT11能够检测到起始信号,并且这个拉低的时间要大于18 ms。DHT11在检测到起始信号时会在这个信号结束延时20~40 μs后发送低电平信号,这个低电平信号的持续时间在89 μs。此后再读取DHT11的相应信号。主机发送开始信号后,有两种相应操作,分别是切换到输入模式、输出高电平。总线由上拉电阻拉高。
LCD12864是128×64分辨率的常用的图形液晶显示模块,其内置8192个中文汉字(16×16点阵可显示汉字及图形),可以将汉字实现图形出来。此外还有128个字符(8×16点阵)及64×256点阵显示 RAM(GDRAM)。
数据发射的过程为:第一步,先配置nRF24L01到发射模式。第二步,按照时序通过SPI在nRF24L01的缓存区写入相应的TX_ADDR以及TX_PLD,其中,TX_ADDR是接收节点地址且仅在发射的时候写入一次,TX_PLD是有效数据。当nRF24L01开启自动应答模式,在接收模式下将接收应答信号。当信号未被接收,系统会自动将该数据重新发射[6-7]。
在模式控制引脚MS置1的状态下,芯片将在单通道模式下工作。此时,仅有一组RXD和TXD被允许与母串口通信。地址线的作用则是选择与母串口连接的目标子串口。外部CPU则会使用两根输入地址线与两根输出地址线来选择与母串口连接的子串口。输入输出地址线并没有被要求是相同的,也就是说RXD和TXD可以属于不同子串口[8]。GPS定位电路图如图2所示。
图2 GPS定位电路图
软件开发环境采用Keil编译器。当打开软件时系统会进行IO端口及时钟的初始化,会显示实时时间、温度、湿度、压力等信息,当初始化成功后,温湿度传感器会对环境中的温度进行实时监控,并将温湿度信息转换为电脉冲信息,随着电信号传送到单片机进行预处理;类似地,压力传感器也会收集检测时刻的压力值,并将其转换为相应的电脉冲信号,一并将其送到单片机进行处理;同时,GPS模块运用卫星定位功能,将装置的大致位置信息传送到单片机端进行处理。然后单片机通过5个GPIO进行无线发送[9]。
从站程序流程图如图3所示。
图3 从站程序流程图
主电路板功能比从电路板功能简单,主要采集无线模块传送过来的数据,整理后进行显示,向使用者实时显示从站上采集的气象数据。通过按键可以分屏显示不同的数据。主站程序流程图如图4所示。
图4 主站程序流程图
关键代码如下:
****/
/*void RX_Mode(void)
{
nRF24L01_CE_L;
SPI_Write_Buf((WRITE_REG+RX_ADDR_P1),
Rx_Address11,TX_ADR_WIDTH);//Use the same address on the RX device as the TX device
SPI_RW_Reg((WRITE_REG+RX_ADDR_P2),0x22);
SPI_RW_Reg((WRITE_REG+RX_ADDR_P3),0x33);
SPI_RW_Reg(WRITE_REG+CONFIG,0x0f); //Set PWR_UP bit,enable
CRC(2 bytes) &Prim:RX.RX_DR enabled..
nRF24L01_CE_H;//Set CE
} */
void RX_Mode(void)
{
nRF24L01_CE_L;
SPI_Write_Buf((WRITE_REG+
RX_ADDR_P0),Rx_Address11,TX_ADR_WIDTH);//写RX节点地址
SPI_RW_Reg(WRITE_REG+EN_AA,0x01); //使能通道0的自动应答
SPI_RW_Reg(WRITE_REG+EN_RXADDR,0x01);//使能通道0的接收地址
系统主控单元是单片机控制系统,采用独立式按键结构,初始化后确定是否有按键按下。当检测到有键盘按下则去抖动,延时一段时间再检测判断,识别出是哪一个键闭合[10]。扫描过程如图5所示。
图5 键盘扫描流程图
将测试装置放置于不同温湿度的环境之中(其余测量参数不宜改变,故只需要改变温湿度已达到不同环境下的测试效果),以便进行测试虚拟环境的仿真。不同环境下的测试结果如图6所示。
图6 不同环境下温湿度的测试情况
对于所有测试的情况,若发生以下情况,则为正常情况:
(1) 微处理器上电后运行正常、无报错为合格。
(2) 能下载、上传程序为合格。
(3) 将从站置于不同温湿度环境内,主站能准确显示温湿度数值为合格。
(4) 将从站置于不同压力环境内,主站能准确显示压力数值为合格。
(5) 将从站置于不同位置,主站能准确显示定位信息为合格。
从机实物图如图7所示。
图7 从机实物图
主站在开始运行时,单片机进行预处理、初始化。当一切显示稳定后,单片机运用无线接收装置进行无线连接,连接成功后接收由从站发送过来的相关环境信息,并通过LED显示屏将所接收的温湿度、压强和位置信息全部显现出来。主机实物图如图8所示。
图8 主机实物图
无线气象数据采集系统在人们的日常生活和国防建设中都有着十分巨大的影响意义。文中通过查阅资料了解每个元器件的使用方法,并通过计算得出电路的配置关系,绘制完整的电路原理图,结合电路原理图和控制要求,从站采集温度、湿度、压力和GPS位置信息,主站接收从站发来的信息后显示状态信息。硬件构成主要包括:单片机、最小系统、LCD12864液晶显示模块、NRF24L01无线收发模块、GPS定位模块、DHT11温湿度采集模块、BMP180气压检测模块、DS18B20温度采集模块、LED指示灯模块。本设计从机具有小巧、质量轻、传输稳定、传输距离远等优点,可以用作航模的气象信息采集。