当前位置:首页 期刊杂志

基于DS18B20的温度测量报警系统

时间:2024-05-17

王青杨 谷钧桐 丁佩豪 高占良 王 翔

(1.河北师范大学中燃工学院,河北 石家庄 430072;2.河北鹏博通信设备有限公司,河北 沧州 061000)

0 引言

温度测量方法较多,根据温度传感器的使用方式,通常可以把温度测量方法分为接触式法测温法和非接触式法测温法。

热敏电阻是最常用的接触式测温法之一,其广泛应用于工农业生产中。传统的热敏电阻传感器需要搭配测量电路和其他电路进行信号处理,导致其可靠性、准确度和精确度降低[1]。针对上述问题,美国DALLAS 公司新推出了一种新型数字温度传感器-DS18B20,它具有功耗低、抗干扰能力强等优点[2]。该文介绍了一种以DS18B20 数字传感器和AT89C51 系列单片机为核心的环境温度测量报警系统,该系统不仅可以实时测量温度,而且还可以根据用户需要,当环境温度出现异常时进行报警提醒。同时,测得的温度数据会实时显示在输出设备上,为用户提供实时温度。其硬件部分主要包括时钟电源电路、数码管显示电路、温度测量报警电路以及独立开关按键电路,软件部分主要包括独立按键触发检测程序、温度异常判决程序。该系统结构简单、成本较低且抗干扰能力极高,可以应用于农业种植温室室温监测等场景,帮助相关产业提高工作效率,降低建设和维护所需的成本。

1 理论及方案设计

DS18B20 模块是一款由美国DALLAS 半导体公司设计的数字温度传感器,它具有成本低廉、传输高效以及电路简单的特点。该模块工作电压范围宽(3.0 V~5.5 V),并且当电源反接时不会立即烧毁。

DS18B20 模块具有4 种工作模式,对应4 种不同的分辨率和转换时间。通过改变配置寄存器中的R1位和R0位(R0R1是配置寄存器中的2 个数位)可以对DS18B20 模块的工作模式进行设置,不同模式的工作参数见表1。

整个测温系统分为的4 个板块(如图1 所示),通过与AT89C51 系列单片机进行交互,共同完成环境温度监测报警工作。时钟和电源为整个系统提供工作环境,独立按键可以帮助用户设置温度的上、下限,DS18B20 模块将测得的实时温度发送给单片机,单片机将数据输出至显示模块(反馈给用户)。

2 系统搭建

2.1 硬件系统搭建

硬件系统主要由3 个电路组成,分别是作为输入端的温度测量报警电路、作为输出端的显示电路以及维持单片机工作的时钟和电源电路。其中,电源和时钟电路给整个系统提供工作环境,试验模型电路的输入部分主要采用4个独立按键开关来收集用户的操作信息并传递给单片机,试验模型电路的输出部分主要采用4 位数码管显示模块和蜂鸣器向用户反馈实时数据。

微控制器电路如图2(a)所示,它是整个系统的核心,需要1 个时钟信号才能工作, 执行单片机指令、传输数据都是以时钟信号为参考。通常,1 个系统共用1 个晶振, 便于各部分保持同步。电源电路为整个系统提供直流电源,为电路中起到功放作用的三极管和所有模块内部的半导体逻辑器件提供静态偏置。

该系统模型围绕12 MHz 晶振搭建时钟信号电路,并使用3 节LR6 1.5 V 电池串联供电。时钟和电源电路原理如图2(b)所示,P2模块是电源接入模块,独立按键是单片机复位按钮。显示电路原理图如图2(c)所示。考虑电路和程序的简洁性,采用较为简单的DS04 数码管来输出温度值,精确到0.1 ℃。P1负责传输温度值对应的段码,P3的后4 位则是传输位码,决定数码管输出段码的数位。这里也可以采用74HC573 锁存器作为单片机和数码管信息交互桥梁,可以节约引脚资源,为后续的开发和改进预留空间。

温度测量报警电路的原理图如图2(d)所示,它以DS18B20 模块为核心,将AT89C51 系列单片机的P2.4口作为传感器与单片机的交互I/O 端口,通过程序控制上电来操作传感器。报警电路有3 个独立按键,分别代表“温限加”“温限减”和“模式切换”,3 个按键分别连接51 单片机的P2.4、P2.2和P2.1引脚,以便检测模式切换信号和温度上、下限改变信号。DS18B20 的测温过程主要依靠对温度敏感度性差别较大的2 个晶振元件的震荡次数进行计数,以得到环境温度值。其中,高温度系数晶振的震荡频率往往随温度的变化而变化,而低温度系数晶振的震荡频率几乎不随环境温度的变化而变化。

该文所用的DS18B20 模块型号为TO-92 封装形式,外观上与三极管较相似。模块共有3 个引脚,分别为电源VCC引脚、数据I/O 引脚以及接地端。通过给数据引脚接高低电平并延时进行读写操作。当数据分辨率的需求越高时,每单位分辨率所需的时间代价增加得也越来越快。因此,在高精度的工作要求下,该系统的工作速率会降低。

2.2 软件系统搭建

软件系统主要包括整个系统的初始化程序、独立按键触发检测程序和温度异常判决程序。初始化主要包括DS18B20 模块的上电初始化、变量引脚之间的对应关系和EEPROM 的初始化。EEPROM 是51 单片机中写入相应字节的数据自动保存的存储器,需要用C 程序打开,同时也可以通过相应操作对所存的数据进行擦除[3]。从EEPROM中读取数据并存入目标变量中,与预设的温度上、下限进行比较,当实时温度高于上限温度或低于下限温度时,蜂鸣器报警。

通过P2和0x0f 位依次检测4 个独立按键是否接地,如果检测到低电平输入,就读取键值并反应。按键检测部分的部分代码如下。

static uchar key_new =0,key_old=0,key_value=0;

If(key_new==0)

If((P2 & 0x0f)== 0x0f)key_value ++;

从节约能源的角度出发,在用户进入温度上、下限调节程序后,计时器开始计时,如果用户长时间未进行操作,那么系统将在15 s 后自动退出设置模式。

3 系统测试和结果分析

3.1 温度测量试验

标准水银温度计直到现在仍然是温度测量领域重要的标准器之一[4]。该试验(如图3 所示)以普通水银温度计提供的数据为标准温度进行误差计算。共设置3 组:低温组(10℃以下)、常温组(10℃~20℃)和高温组(30℃以上),每组各进行5 次试验。为了保证每组试验数据尽量不受其他因素的干扰,该试验在同一试验场所完成。

图3 温度测量试验

3.2 结果分析

经过不同时间段的3 组试验测量后,得到最终数据(见表2)。通过试验数据可知,该测温系统在环境温度为0 ℃~50 ℃的条件下基本可以准确无误地完成温度测量报警工作。同时,反应时间不超过5 s,可以在相关行业发挥应有的作用。值得注意的是,当温度处于过高或过低的状态时,该系统的工作性能明显下降。

表2 试验测量数据

使用引用误差来衡量该测温系统的可靠性,引用误差是绝对误差与测量系统量程的比值,通常以百分数表示,如公式(1)所示。

式中:r0为引用误差;δ为绝对误差(测量值-真实值);L为测量系统量程。

取所有绝对误差的平均值作为该测量系统在0 ℃~50 ℃的绝对误差参考值(试验测试的温度区间),再引入平均相对误差计算公式,如公式(2)所示。

式中:r1为n次测量平均误差;δi为第i次试验的绝对误差;L为测量系统量程。

将表2 的数据代入公式(1)、公式(2),计算得到该系统的平均相对误差r1=1.4%。

绝对误差与环境温度的散点图如图4 所示,将绝对误差绝对值大于0.5 ℃的样本标为实心圆,高温组(30 ℃以上)测量结果的绝对误差全都大于0.5 ℃,低温组(10 ℃以下)中出现了1 组绝对误差大于0.5 ℃的数据,常温组(10 ℃~20 ℃)的绝对误差均在0.5 ℃以内。综上所述,该温度测量报警系统模型在常温条件(10 ℃~20 ℃)下的测量误差较小,在低温条件(10 ℃以下)下的测量误差基本满足需求,高温条件的测量结果的绝对误差较大。

图4 绝对误差与环境温度的关系

4 结语

该系统可以在0 ℃~30 ℃的区间内比较精确地进行实时温度检测与测量(分辨率为0.1 ℃),高温环境下的测量精度不高,未来可以在试验电路的基础上使用温度补偿电路进行改进。以数字传感器为核心的温度测量系统未来可以与多种网络信息传输模块兼容使用,进一步提高该系统的工作效率。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!