APP下载

基于虚拟仪器的温度监控系统

2019-05-27焦运良邢计元

网络安全与数据管理 2019年5期
关键词:字符串单片机驱动

焦运良,邢计元,岳 洋

(华北计算机系统工程研究所,北京 100083)

0 引言

温度是表示物理冷热的物理量,温度监控的重要性体现在日常生活、医疗生物、工业生产、军事应用、科学研究等各个行业。课题利用虚拟仪器技术灵活高效的特点,以监控电脑机箱温度作为背景,并使用电机驱动风扇的方式来调控温度。区别于传统的温度检测系统,课题使用NI-myRIO 1900作为核心控制器,使用LabVIEW清晰流畅的图形化编程语言[1]编写上位机的程序,使用户可以直观监测到实时温度;并根据实际环境与具体需求,实时调整温度阈值,从而实现对温度准确、实时和平稳的控制。

1 系统总体架构

温度监控系统的总体结构如图1所示。课题所设计的系统采用NI-myRIO 1900作为主要控制处理模块,LabVIEW平台作为核心开发环境,使用单片机对传感器进行初始化设置和温度数据的处理。由LabVIEW编写系统控制程序并将其加载至核心控制设备中[2]。核心控制设备完成与单片机温度采集系统的数据交互、控制降温执行器的运行并将实时数据传输至PC。

图1 温度监控系统总体结构图

系统的具体工作流程为:

(1)单片机对传感器做初始化驱动,采集传感器温度数据,并做初步的数据处理。

(2)单片机完成处理后将数据通过串口发送到核心控制模块(即嵌入式硬件开发平台)。

(3)核心控制模块对数据进行最终处理,并且将处理结果发送至PC,呈现给用户,使用户可以调整系统的设置。

(4)核心控制模块根据预先设定的程序算法对系统被控部分(执行器)发出指令。

(5)执行器收到指令后开始运行,使系统完成对温度的检测和控制。

2 系统的硬件设计

系统的硬件部分由温度采集模块、核心控制模块和降温执行模块三部分组成。

2.1 核心控制模块

课题研究的是基于虚拟仪器的温度监控系统,所以核心控制模块使用NI公司研发的NI-myRIO 1900嵌入式硬件开发平台进行搭建。

NI-myRIO 1900功能强大,其内嵌FPGA和ARM®CortexTM-A9处理器[3],可以帮助用户快速完成复杂工程的处理;内嵌板载WiFi,支持无线网远程通信;具有丰富的外设资源,包括10个模拟输出通道、6个模拟输入通道、音频I/O通道和高达40条数字输入输出线;此外,LabVIEW包含很多集成的函数,其针对NI-myRIO 1900上的各种I/O接口提供经过优化设计的现成驱动函数,方便快速调用。

2.2 温度采集模块

温度采集模块是由DS18B20温度传感器和89C52单片机进行搭建。

DS18B20是一款单总线数字温度传感器,它最小测量精度为0.062 5 ℃,具有极高的精度;数字量输出,操作简单,易与单片机通信[4]。测温范围是-55 ℃~ + 125 ℃,测量温度的分辨率为9位~12位,用户可以根据具体需要自己进行选择设定;采用特殊的单总线接口结构,只需要一条接线就可以实现与微控制器的双向通信;具有负压特性,即电源正负极反接虽然不能正常工作,但也不会损毁芯片。

89C52单片机在温度采集模块中的作用是对DS18B20温度传感器进行初始化设置,使其能正常工作;并且将传感器读到的温度数据换算成十进制的温度数值,然后将其发送到核心控制模块,以便核心控制模块对整个系统进行调控操作。

2.3 降温执行模块

降温执行模块由步进电机驱动风扇来完成。核心控制模块通过驱动模块与电机相连,通过NI-MyRIO 1900的PWM端口控制电机。

3 系统的软件设计

核心控制设备采集机箱温度,上传至上位机控制平台,用户能通过上位机控制平台全程监控系统的运行并对必要参数进行修改。上位机程序流程图如图2所示。

图2 上位机程序流程图

在监控系统中软件需要完成的功能是:控制温度采集模块将测得的温度发送至NI-myRIO 1900、控制NI-myRIO 1900完成测量温度与预设温度的对比、控制NI-myRIO 1900对温度对比结果产生响应。所以上位机控制程序由温度传输部分、温度对比部分、电机驱动和报警部分组成。

3.1 温度传输部分

通过UART串口将单片机读出并转换成ASCII码[5]的温度量值以字符串的形式读入NI-myRIO 1900;调用“连接字符串”的函数,将每次读入的字符串反馈,使每个字符串可以被保存和显示;调用“截取字符串”函数,将每次读取的字符串进行截取,根据用户自行设定的截取起始位和截取长度,提取出用户需求的字符串内容并将其显示;调用“十进制数字字符串至数字转换”函数,将提取出的字符串转换为8字节长的双精度实数,即温度数值。这部分函数被嵌套在一个“while循环”函数中,且循环终止条件为手动按钮,故用户可以根据实际情况自己选择开启或终止程序的运行。

3.2 温度对比部分

温度对比部分是系统软件设计的核心部分,用户根据具体需求自行设定系统启动温度、系统安全温度上限和系统高危温度三个温度线,然后将读取的实时温度分别与三个温度线做比较。如果实测温度高于启动温度,系统会驱动降温执行器开始运行;如果低于启动温度,则不会执行与后续温度线的比较,转而继续比较下一个实时温度与启动温度的大小。如果实测温度高于温度上限时,系统的危险指示灯会由绿变红,直到实测温度降低至低于温度上限;若实测温度高于系统高危温度,除了危险指示灯继续呈现红色之外,系统还会调用报警程序,产生报警铃声,直到温度降至低于系统高危温度。这部分函数被嵌套在平铺式顺序结构之中[6],以便实时温度按三个温度线的顺序分别做比较并运行相应的响应程序。

3.3 电机驱动和报警部分

电机驱动和报警部分是系统的执行模块。

通过调用LabVIEW内部的PWM模块,设定频率、占空比和接口[7];程序运行时,指定接口所接的电机就会启动运行。电机的驱动程序嵌套在“条件结构”函数下运行,当温度比较结果为真,即实测温度大于某一温度线时,相应的电机就会开始工作。电机驱动部分共由四个电机组成,第一个电机当实测温度高于启动温度就立刻开始运行;第二个电机在实测温度达到温度上限与启动温度的中间点时开始运行;第三个电机将在实测温度达到温度上线时开始运行,第四个电机将在实测温度达到系统高危温度时开始运行。

声音报警程序将在实测温度高于系统高危温度时被调用,播放报警铃声,其程序如图3所示。将此程序的地址和预设音频文件的地址融合成一个新地址,再与设备ID融合,调用系统“声音播放程序”的模块,警报铃声便会被播出;同样声音播出程序被嵌套在“while循环”函数中,循环条件是布尔量按钮,用户可以自行选择关闭此程序。

4 结论

课题以计算机机箱温度的监控为背景,以虚拟仪器技术作为核心技术,以LabVIEW作为核心程序开发环境,以NI-myRIO 1900作为核心控制平台,以单片机和DS18B20温度传感器作为温度采集模块,以电机驱动风扇作为执行模块,利用电机运行带动风扇降低温度且温度降低会反作用于电机运行形成反馈控制[8],使整个系统的温度被时刻监控且被控制在用户设定的温度上下浮动,实现了以下功能:

(1)由单片机控制温度采集装置,能够准确地

图3 声音报警程序

采集电脑机箱内的温度。

(2)通过串口通信,把采集到的温度传输到核心控制设备。

(3)上位机可以接收下位机发送来的温度数据并显示给用户,用户可以根据需求修改温度阈值。

(4)智能识别系统启动温度,只在温度高于正常温度时才运行控制器件,减少能源损耗。

(5)具有报警功能,在实测温度高于危险值时系统能对外发出警报,提醒用户采取其他措施降温。

(6)能够实现对温度较为准确、平稳的控制。

虚拟仪器是测控技术领域新出现的一项具有划时代意义的技术,它将计算机技术与电子测量技术完美地融合在了一起,是一项具有广阔前景的电子仪器技术。随着微型计算机技术的发展程度日益深入,功能作用日益强大,虚拟仪器技术必将逐步取代以传统仪器为基点的测量与控制技术,成为主流的仪器仪表技术。

猜你喜欢

字符串单片机驱动
数据驱动世界。你得懂它 精读
基于模糊PI控制的驱动防滑仿真系统分析
屈宏斌:未来五年,双轮驱动,砥砺前行
基于文本挖掘的语词典研究
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的多功能智能插排
基于单片机的便捷式LCF测量仪
深入实施创新驱动发展战略
SQL server 2008中的常见的字符串处理函数