CHINA SCIENCE AND TECHNOLOGY INFORMATION Mar.2021•中国科技信息2021年第6期31万~60万©
器
d link
d
appraisement industry
郑玲玲张金刘芳丁俊香赵婷
陆军炮兵防空兵学院
郑玲玲(1983-)女,安徽省全椒县,硕士,讲师,研究方向:计算机控制。
DOI:10.3969/j.issn.1001-8972.2021.06.028
基于LabVIEW和Arduino的
温湿度采集系统设计
本文利用虚拟仪器平台实现对温湿度数据的采集和控制。在整个系统中,Arduino Uno作为下位机,负责对传感器信息的读写和数据传输;LabVIEW编写的显示软件作为上位机,上位机和下位机之间利用USB-TTL接口实现通信。实验结果表明,该系统可以使温湿度数据的采集变得更加高效、快捷,通过计算机的辅助决策实现了数据的处理和显示,提高工作效率,达到对温湿度环境有较高要求的场合进行环境监测的目的。
温湿度测量一直是工业生产和科学研究中非常重要的环节之一,测量数据的准确性和时效性又与测量仪器有着密不可分的联系。目前的温湿度数据一般采用诸如温湿度计这类传统仪器进行测量,然而传统仪器结构固化,功能单一,已经不能满足用户对数据变化趋势的实时显示和预测,以及温湿度超限报警等功能的需求。
随着科学技术的快速发展和用户需求的不断提高,应运而生的虚拟仪器技术,则是以高性能的模块化硬件为基础、灵活高效的软件为核心,通过计算机技术、通信技术和测量技术等来完成各种测试、测量工作。虚拟仪器可以将计算机强大的计算处理能力和仪器设备的测量控制能力有效结合,并通过软件开发出交互式图形界面来实现对数据的显示、存储以及分析处理。这种融合不仅缩小了仪器的体积和成本,还有效降低软硬件开发和维护费用,同时还能完成个性化功能的实现。所以和传统仪器相比,虚拟仪器有着不可比拟的显著优势。
系统设计方案
本设计分为两个部分,上位机的检测界面由图形化的编
程软件LabVIE W来实现,它不仅能方便快捷地完成与各种软硬件的连接,还拥有强大的数据处理能力,它将采集到的
温湿度数据进行处理、存储并通过曲线来显示,这样可以实时观测温湿度的变化趋势。程序还设定将采集到的数据与预先设定的极限值进行比对,以此来实现温湿度超限报警功能;下位机部分由Arduino Uno控制板结合温湿度采集模块来读取温湿度数据,再通过串口将数据传送给上位机进行分析处理。温湿度采集系统整体框图如图1所示。
系统硬件设计
本着简单易用,降低成本的原则,该系统选用Arduino Uno控制板作为硬件系统的核心,因为其具有丰富的扩展模块和低廉的价格,而且能够在WindowS'Linux或Mac 操作系统下,不安装任何驱动程序即可使用,同时还可利用多种程序编写软件进行程序的编写,实现简便的操作和使用。在传感器的选型方面,由于需要对环境的温湿度进行同时测量,而且对温湿度的测量精度的要求分别为±2°C和±5%RH,系统选用了DHT11数字温湿度传感器,它包括—个NTC测温元件和一个电阻式感湿元件,利用专用的数字模块采集技术和温湿度传感技术,仅需要一个I/O口即可实现对温湿度信息进行持续稳定的数据采集,这就使得系统集成更加简易便捷。所以DHT11传感器体积小、功耗低、响应速度快和抗干扰能力强等特
点,可以满足对温湿度环境有较高要求的场合进行环境监测。DHT11数字温湿度传感器模块可以与Arduino Uno控制板有效兼容,连接方便。系统硬件连接原理图如图2所示。
由于DHT11传感器模块被设计成与控制板上的模拟输入口兼容,所以将模拟输入口A0作为数字端口进行使用,其所对应的数字端口为14。在连接时,将DHT11温湿度传感器模块的VcC'GND'Dout引脚分别接至Arduino Uno控制板上的+5V'GND和A0引脚。系统硬件连接实物图如图3所示。
系统软件设计
选择合适的开发软件对整个测控系统的功能实现起到至
图1温湿度采集系统框图
◎31万~60万中国科技信息2021年第6期・CHINA SCIENCE AND TECHNOLOGY INFORMATION Mar.2021图2硬件连接原理图
图3硬件连接实物图
关重要的作用。在本设计中,系统选用LabVIEW进行图形化编程°LabVIEW可以与遵循GPIB、VXI、TCP/IP和RS-232协议的硬件设备实现上下位机的通信,并通过这
种方式把PC计算机资源与仪器硬件的测量、控制和数据采集能力结合起来,组建出具有一定功能的虚拟仪器系统。
LabVIEW与Arduino之间的交互是通过NI公司
专门为Arduino开发的工具包LabVIEW Interface for Arduino来实现的,这使得Arduino的编程变得更加容易。借助于这个工具包,可以控制Arduino的I/O数据输入和输出,LabVIEW对获得的数据信息进行分析
和运算,并将结果用于控制Arduin o,同时还可以将结果呈现在友好的用户界面上,这样就实现了LabVIEW软件对Arduino控制板的控制以及与其进行数据交换,通过这种虚拟与现实的融合,可以产生极强的互动效果。另外,LabVIEW Interface for Arduino支持Arduino控制板通过串口、USB、蓝牙或XBee等接口的形式与LabVIEW建立连接。本设计中Arduin o通过运行工具包提供的固件程序,使用串口连接与LabVIEW进行通信。
上位机软件开发
主程序设计
根据LabVIEW软件的操作和使用特点,主程序的开发主要可分为前面板和后台框图程序设计两部分。
(1)主程序前面板设计
主程序的前面板主要作用是实现温湿度的输出和显示,
温湿度上限与下限的设置,温湿度的报警以及程序的退出。
在设计中,温湿度的输出与显示主要通过两种方式进行,一
是数字显示的方式,通过在主面板中添加数字显示文本框,
将程序采集到的结果显示在文本框中;二是设置温度计图标
进行显示,在面板中添加温度计图形通过温度计中液面变化
来对温湿度进行表示。在进行温湿度上限和下限设置时,通
过添加可输入数字文本框来进行设置,用户在进行上下限设
置时,将光标移动至文本框内,通过修改文本框内数字进而
进行温湿度上下限的调节和控制。温湿度报警可以通过前面
板的两个指示灯来实现,当温度或湿度超出设置的范围时,
图4主程序前面板
图5主程序框图
则对应的温湿度报警灯会亮起,实现报警功能。主程序前面
板如图4所示。
(2)主程序框图设计
arduino字符串转数组在本设计中,温湿度需要不间断的重复测量,因而需要—种循环结构来保证主程序的重复可执行,因此主程序采用
while结构的主循环体。主程序执行之前,通过INIT函数对Arduino单片机进行初始化,建立LabVIEW与Arduino 之间的通信连接;初始化完成之后程序进入while循环体。
主程序内部自定义了一个子VI函数一一Read DHT11,用来读取环境的温湿度数据。程序将读取的温湿度数值利用In Range and Corece函数与前面板输入的温湿度的上限和
下限数值进行比较,如果数值在合理范围内,则保持原有正常状态;如果超出范围,则由In Range and Corece函数的In Range端输出信号给报警灯,则红灯亮起,实现报警功能。主程序框图如图5所示。
子程序设计
为了提高程序的可移植性,程序采用了模块化的程序设
计思想。在本程序中温湿度的读取通过编写子VI程序Read DHT11.vi来实现。子程序Read DHT11.vi的编写与主程序类似,也分为前面板设计与后台框图程序的设计。
(1)子程序前面板设计
子程序Read DHT11.vi的前面板如图6所示,其主要由为两部分组成,一部分是调节控制,另一部分是控制显示。
(2)子程序后台程序框图设计
LabVIEW与Arduino之间的通信方式主要是通过
LabVIEW来确定子函数VI的输入和输出参数再向Arduino 发送命令,Arduino接收命令后响应并实时处理。实际操作过程中,LabVIEW需要向Arduino发送读取DHT11温湿度值的命令,同时Arduino需要向LabVIEW传输两个字节
CHINA SCIENCE AND TECHNOLOGY INFORMATION Mar.2021•中国科技信息2021年第6期31万~60万©
器
的温湿度数据来作为VI的输出。程序使用Send Receive 函数向Arduino发送命令,由于Send Receive函
数输出为字符串,使用String To Byte Array函数将其转化为数值型数组,并使用数组索引Index Array函数将温度与湿度数值分别提取出来并由显示控件进行显示。子程序Read DHT11.vi的程序框图如图7所示。
下位机软件开发
LabVIEW主程序执行的同时,Arduino需要运行与Ardune K*to*J*e*Afftuino A**oix<*
DHTil pr
U m
|0
error in oul
statiri cod*code
M jfl仍仞4i M畑33
•ovrc*
me.
图6Read DHT11.vi前面板
图7Read DHT11.vi程序框图
图8下位机软件的程序流程图LabVIEW接口的固件程序,这样才能保证正确地建立串口连接。在子VI程序Read DHT11.v i中向Arduino发送命令,并且从Arduino中读取2个字节,并将其转换成温湿度数据后输出。所以需要在Arduino的固件程序中添加相应代码,使Arduino能正确识别该命令并作出响应。该程序的程序流程图如图8所示。
系统实验
系统设计完成后,为了确保系统的可靠性,利用风扇、电吹风和加湿器等设备来模拟不同的环境温湿度,并使用具有高精度的温湿度测量仪器对环境温湿度进行测试,最终将测量结果与该系统测得的结果进行比较,从而实现对温湿度值的标定。实验采用THR-4型数字式温湿度仪进行测量,其温度的测量精度为±0.3°C,湿度为±3%RH。通过对不同的温湿度环境测量,测得数据如表1所示。
表1温湿度测量数据
温度测量结果
数字式温湿度仪
测量结果(C)
系统测量结果(C)温度误差(C)
10.79.8-0.9
20.519.7-0.8
30.129.5-0.6
温度20.0C时,相对湿度测量结果
数字式温湿度仪
测量结果(%RH)
系统测量结果(%RH)温度误差(%RH)
10.213.1 2.9
30.532.9 2.4
50.251.7 1.5
70.068.3-1.7
90.186.4-3.7
对于温度的测量,将环境温度设置在10C,20C和30°C左右,用数字式温湿度仪和该系统测量了六次,分别取平均值,测得最大误差为0.9°C;对于温度的测量,将环境温度设置在20°C左右,通过加湿器分别将环境湿度调整在5个不同点,用数字式温湿度仪和该系统测量了六次,分别取平均值,测得最大误差为3.7%RH。由实验数据分析可知,由温湿度采集系统采集的温湿度相比较THR-4型数字式温湿度仪测得的数据,温湿度误差分别小于1°C和4%RH,可以满足多数实验室对环境温湿度的测量精度的要求。
结语
该系统以图形化编程软件一LabVIE W作为软件开发平台,借助其专门为Arduino开发的工具包,来控制Arduino的I/O输出和从I/O获得数据,并利用其众多的库文件对获得的信息进行分析和运算,同时将结果用于控制Arduino,实现了对温湿度传感器数据的数据采集和实时显示的功能,达到了将硬件功能软件化的直观效果。实验结果表明,测量数据和校准数据基本符合,测量误差控制在允许的范围内,具有测量
精度高,操作简单,显示直观等特点。利用虚拟仪器平台,不仅减少了硬件的重复开发,有利于系统的维护,也便于系统软件的升级,使得LabVIEW在实用性和灵活性上得到加强。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论