朱野:基于无线传感网络的温度监控系统
4.2液晶显示程序设计
将温度传感器DS18B20测量到的温度数据转换成液晶字符,然后设定在第一行显示。将设定的报警温度数据转换成液晶字符,设定在第二行显示。 4.3温度采集程序设计
依据DS18B20的通信协议,首先应对DS18B20进行复位。由于本设计只用一片DS18B20,故跳过读取序列号,然后发送读取温度寄存器命令,延时一定时间后,分两次分别读取出温度的低位和高位,然后放到一个字节里面。温度子程序流程图如图4-2所示:
开始
初始化 跳过读序列号 读取温度寄存器 延时程序
读取最高温度 读取最低温度
结束
图4-2:DS18B20温度读取过程流程图
4.3 报警处理程序设计
当现在温度值大于设定上限值(或者小于设定下限值时)执行相应的控制命令。本
20
安徽工程大学机电学院毕业设计(论文)
设计用发光二极管发亮表示报警输出。具体程序如下: void Warming()
{if(temp_value>=maxtenp) JDQ=~JDQ; else JDQ=0; }
4.4发射端主程序设计
首先将LCD1602,DS18B20,nRF24L01初始化,进入默认的液晶显示界面。扫描按键:如果SET键按下,进入调整模式,设定报警温度。DS18B20读取温度,如果测取温度值超过报警温度,进行报警处理,如果没超过报警温度,把温度数据转换成液晶字符后送到LCD1602显示。然后把温度送入发射缓存器,nRF24L01设置为发射模式,开始发射处理。如果收到应答,置位TX_DS;如果没接受到应答,返回进行重发,设定最多重发10次。发射端主要程序流程图如图4-3
21
朱野:基于无线传感网络的温度监控系统
开始 初始化 进入默认液晶显示 SET键按下? 是 调整模式 否 是 读取温度 SET键再次按下 否 是否超过报警温是 报警处理
度 否 显示处理 温度数据送入发射器 Nrf24l01设置为发射模 应答是否接收到 否 是 置位TX-DS,IRQ 图4-3发射端主要程序流程图
22
安徽工程大学机电学院毕业设计(论文)
4.5接收端主程序设计
开始上电,nRF24L01初始化,设置为接受模式,然后读取状态寄存器。如果接受标志RX_DR=1,读取数据并把数据送到buf[2]数据区,然后把RS_DR,TX_DS,MAX_PT都置高为1,以清除中断。具体程序见附录3
23
朱野:基于无线传感网络的温度监控系统
结论与展望
本设计是基于nRf24L01的远程温度的测量和监控,广泛应用于电力工业、煤矿、粮食存储、火灾等场合。系统由8051单片机向数字式温度传感器DS18B20发送命令,读取DS18B20转换的温度数据,从而实现温度的测量。当测量温度超过设定的报警温度时发光二级管亮,然后8051把温度数据送到发射端nRf24L01的发射缓存器,nRF24L01通过无线方式把温度数据发射出去。接收端nRF24L01接受发送过来的温度数据,并由单片机读取保存,然后可以通过串口与PC通信。当温度高于设定温度就开启继电器打开风扇散热、当温度低于设定温度就会打开加热器加热使温度控制在设定的范围内。本文采用模块化的方式进行叙述,分方案设计,硬件设计,软件设计对各模块进行了详细的阐述。本次的设计可以广泛应用于工业现场、家电等智能自控系统中。
24