基于单片机的无线温度远程采集监测报警器的设计毕业论文(设计) - 图文 联系客服

发布时间 : 星期五 文章基于单片机的无线温度远程采集监测报警器的设计毕业论文(设计) - 图文更新完毕开始阅读c81a766eb5daa58da0116c175f0e7cd18425182b

开始 初始化 发射数据 从DS18B20读温度 延时 转换温度为十进制 将温度写入发射数组 图4-1 发射部分总体流程图

4.2.2 接收部分

接收部分的总体思路是这样的,首先还是初始化nRF24L01,然后进入大循环判断状态

[10]

寄存器是否有接收中断。如果有就从FIFO_buffer读入二进制数据,然后将数据转换成十进制在数码管上显示出来,其流程图如图4-2所示。

开始 初始化 数码管显示 判断接收中 断 从RX_FIF0 buffer读数据 转换为十进 制 图4-2 接收部分总体流程图

9

4.3 子程序设计

单片机对NRF24L01无线模块以及DS18B20进行初始化之后,从DS18B20读取温度数据。然后经过温度处理后通过调用无线发送程序将温度数据发送给接收端。

4.3.1 温度监测模块软件

温度监测模块软件设计DS18B20的测温的原理严格的遵守单总线协议,用来确保通信数据的准确性,单片机可以通过时序写入与读出DS18B20中的一些数据,其中包含初始化、读

[11]

l、读0,写1、写0等操作。传感器在复位后,接收应答的信号,跳过读ROM中序列号后,启动温度转换,在等待温度转换完毕后,保存数据。如此反复,完成所有操作,其流程图如图4-3所示。

开始初始化

延时800ms读取温度转换结果返回值为1复位转换为十进制跳过读取ID跳过读取ID数码管显示发送温度转换Scratchpad命令 图4-3 温度检测软件流程图

4.3.2 无线发射模块软件设计

首先将进行初始化的操作,初始化包含设置单片机I/O与SPI相关寄存器两部分内容,其可以与nRF24L01进行通信。在通过SPI总线配置射频芯片让其进入正确的工作模式。在发射数据的时后,要首先将nRF24L01配置成发射模式。再把发送端待发射数据的目标地址TX—ADDR与数据TX—PLD写入nRF24L01缓冲区,延时后发射数据,其流程图如图4-4所示。

10

写入发送地址 图4-4 无线发射软件流程图 4.3.3 无线接收模块软件设计 接收数据的时后,先将nRF24L01配置成接收模式。再将延迟进入接收状态来等待数据到来。当接收方监测到有效的地址与CRC时,就把数据包储存在接收堆栈中,同时将状态寄存器中的中断标志位RX—DR置高,在产生中断让IRQ引脚变成低电平,以便告知MCU去取数据,其流程图如图4-5所示。

写入接收地址 写入发射功率与数 据传输率 图4-5 无线接收软件流程图 4.3.4 显示模块软件设计

11

开始 写入接收地址 CE置高 初始化 写入发送数局 延 时 置底CE 数据通道0允许 CE置底 配置CONFIG为发射模式 设置工作频率 清状态寄存器 设置数据传输率与功率 开始 初始化 打开接收通道 CE置高 CE置底 设置工作频率 判断接收中断 配置CONFIG为接收模式 设置接收数据宽度 是 否

读接收数据

LCD1602显示程序,首先进行1602的初始化,然后就是执行写命令和写数据这两个子函数,实现温度数据的实时显示和按键操作的动态显示。

5 硬件功能实现

5.1 系统调试

在完成硬件电路的焊接后。首先先将接收端STC89C52单片机烧入1602显示程序,检验1602液晶显示有没有问题。再将其中一片STC89C52与四位数码管及温度传感器DS18B20相连,写入测量温度的程序。测试DS18B20部分硬件及软件部分是否好使。然后将nRF24L01的收发部分分别与两片STC89C52相连,写入发射一个常数的程序,检测收发模块及程序是否好使。最后将显示、收发、温度检测程序整合,检测系统是否能将发送端的温度值测量出来发送到接收端在数码管上显示出来。

5.2 调试结果

本系统采用的是单点通信传输温度数据。温度采集端采集温度并发送至接收端,由LCD1602显示当前温度。当采集端传输数据时,信号指示灯闪烁。并且接收端接收数据时信号指示灯亦闪烁。如果将温度上下限调为10℃至30℃时,LCD1602显示当前监测到的温度,如图5-1所示。

图5-1接收端接收到数据并显示在LCD1602上

当人工设置温度范围为10℃至25℃时,当前温度超过所设上下值,蜂鸣器报警同时指示灯闪烁,如图5-2所示。

图5-2 温度超过上下值报警器报警

12