摘要:介绍了以DS18B20基础设计室内温度检测与调控系统的基本过程,该系统以AT89C52单片机为主控器,采用单线多点检测技术,在一条总线上挂接5个DS18B20温度检测点,并循环检测读取各检测点温度数值,可根据实际情况设定阈值,当其中任意3个检测点的温度均超过阈值时,实施超温告警及自动温度调节功能,实验测试结果达到了预期的设计目标。该系统改进了一般温度检测装置单点测试及只测温而不能调节温度的缺陷,可应用于对环境温度要求严格的病房、居室、办公室、小型仓库等场所。
目前温度检测与自动调节技术在生产、生活中可应用的领域非常多,大到工矿企业生产线的环境温度监控,小到一般居室的室内温度检测与调节控制。这些不同的应用形式在温度检测方式、精度要求、信息传输,控制方式等方面存在着诸多的不同,但系统的基本设计思想大致相同,均是按照温度数据采集、数据传输、数据分析、温度调节控制的基本工作顺序来规划的。本文就是在这种思路引导下,提出了一种以智能数字温度传感器DS18B20和单片机AT89C52为基础,可在室内场所(如居室、办公室、小型仓库)使用的多点温度检测与自动调节系统设计方案。
1 系统硬件设计
室内温度检测与调控系统的基本功能要求是:能够实时检测并显示室内的环境温度,并可根据用户要求设定温度阈值,当室内温度在所要求的正常范围内时,系统将采集到的温度数据实时显示,在监测到的环境温度超过阈值时,系统发出告警提示并开启温度自动调节开关,控制温度调节设备实施环境温度自动调节。根据以上要求,构建系统结构如下图1所示。
在此次系统设计过程中,温度传感器选择DALLAS公司生产的智能数字温度传感器DS18B20。该传感器因具有的功能集成化、输出信号数字化,控制简单化等特点而广泛应用于温度检测系统的设计中。在0~100℃时,DS18B20最大线形偏差小于1℃:有效的测温范围为-55~+125 ℃;编程实现9~12位的数字值读数方式,测温分辨率为0.062 5℃;被测温度用符号扩展的16位数字量方式串行输出。
DS18B20将地址线、数据线、控制线合为1根双向串行数据的信号线,并允许在这根信号线上接多个DS18B20;可由单片机处理及控制,多个DS18B20可以并联到3根或两根线上,处理器只需1根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路,所设计电路简洁,抗干扰性能强;其工作电源既可在远端引入,也而采用寄生电源方式产生。
系统控制器采用AT89C52 8位单片机,该单片机软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制。而且体积小,硬件实现简单,安装方便,可以单独实现对多个DS18B20控制工作。
1.1 温度数据采集
由于室内环境温度受光照、储物密度、人流量等因素的影响较大,为了保证测量数据的准确性和调节控制功能执行的有效性,在实现温度数据采集时采用多点检测方式,即通过在室内布设多个温度检测点,由各检测点将采集到的数据送往系统控制器分析比较,当5个检测点中有3个以上的检测结果超过阈值后,认定当前环境温度超限,实施告警和调节控制功能。根据以上要求设计的温度采集模块结构如下图2所示。
温度数据采集模块中DS18B20采用外部供电方式,理论上可以在一根数据总线上挂256个DS18B20,但实践中发现.如果挂接25个以上的DS18B20仍旧有可能产生功耗问题。另外单线长度也不宜超过80 m,否则也会影响到数据的传输。在这种情况下,可以采用分组的方式,用单片机的多个I/O来驱动多路DS18B20。在实际应用中还可以使用一个MOSFET将I/O口线直接和电源相连,起到上拉的作用。
1.2 键盘控制模块
由于在本系统中允许用户按照实际要求设定温度阈值,用户可根据对室内环境温度要求,设定所允许的最高或最低温度参数,当环境温度超此限度后,实施告警及自动温度调节功能。本系统中设置4个按钮开关,分别与单片机P1.0、P1.1、P1.2、P1.3口相连,分别实现手动复位,阈值设定选择、数值加、数值减等功能。
1.3 系统显示模块
通过该模块实现采集温度数据的实时显示功能,给用户提供直观的温度测量数据。该模块设计采用LCD1602来实现,LCD1602与单片机连接电路如下图3所示。
1.4 报警及温度自动调节电路
该模块的基本功能是在室内实际的测量温度达到用户设定阈值的时候实施报警及温度自动调节功能。报警功能采用的是最简单的蜂鸣器,报警持续时间可设定为30 s(主程序流程图中在报警控制之后加报警时间判定)。温度自动调节功能通过在单片机P1.7口接继电器J1,继电器J1作为温度调节设备(如空调)的电源通断开关。当检测到的温度数据在正常范围内时,三极管VQ2处于截止状态,J1断开;当超过阈值时P1.7变为高电平,三极管由截止变为饱和,J1触点闭合,则温度调节设备的电源开关接通,实施温度调节,直至温度达到设定要求,P1.7变为低电平,J1断开,完成温度自动调节过程。该部分电路如下图4所示。
2 系统软件设计
DS18B20的信号线与单片机AT89C52的P3.0口相连,通过系统软件控制,实现信号的输出或者读取。其中对温度数据的读取包括DS18B20序列号搜索、温度转换、温度数据读取3个基本过程。系统工作时,首先通过初始化操作,使总线上的所连接DS18B20均被复位,接着发送ROM搜索指令,使序列号编码匹配的DS18B20被激活,准备接受RAM访问指令。RAM访问指令控制处于激活状态的DS18B20工作状态,完成温度转换及读取等工作。在ROM命令发送之前,RAM命令不起作用。
本系统中设定5个温度检测点,通过在总线上挂接5个DS18B20实现,当其中的某一个DS18B20被激活时,将所采集到的数据通过单片机P3.0送往主控机转换分析,在主控器上实时显示,并由主控器对所采集到的数据与设定的阈值比较,每检测到一次温度数据超过阈值,超限检测点数I自加1,直到I的数值大于等于3时,单片机P3.6口输出控制信号,使蜂鸣器报警,同时P1.7口送出控制电平,使继电器J1吸合,温度调节开关接通,实施温度调节功能。
系统控制软件执行流程如图5所示。
DS18B20初始化程序如下所示:
程序中设参数I是因室内环境受各种因素影响分布不均匀,在实施温度超限判定时不能以某个检测点的数值作为判定依据,需要综合多个采集点的检测数据。本系统设定I大于等于3,即当5个检测点中有任意3个以上检测的温度超过阈值时,就认定当前室内环境温度超过设定要求,启动报警及温度自动调节,同时I数值清零。
3 实验测试
在实验室中完成了系统功能测试,在面积约70 m2的实验室中设置了5个监测点,5个检测点到主控机的距离分布在4~12 m之间,系统测试时正值夏季中午,设定阈值为30℃,即当实验室环境温度高于30℃实施告警和温度调节控制。现场测试时,该系统能够有效地读取并显示各检测点温度,温度数据传输稳定准确,并能够在3个以上检测点出现超阈值温度的时实施蜂鸣器报警并能驱动继电器J1吸合,接通降温电源开关实施降温处理。测试结果表明该系统能够稳定的完成室内的多点温度实时检测、显示、超限报警及自动调节功能。
4 结论
该系统方案改进了传统的温度检测系统单点测试及只测温而不能调节温度的缺陷,通过多点温度检测提高了测试环境温度的准确性,并有效地将温度检测与温度自动调节控制功能结合,具有阈值设定功能,可使用户根据需要设定告警阈值,实现了对特定区域的多点温度检测报警及温度自动调节控制等功能,可应用于对环境温度要求严格的病房、居室、办公室、小型仓库等场所。同时该系统所提供的实时室内环境温度,也可作为用户判定冬季室内采暖否达标的依据,成为消费者维护自身权益的有力工具。
文章评论(0条评论)
登录后参与讨论