基于LabVIEW的室内环境智能监控系统
2019-11-06王浩博唐晨栋张宇
王浩博 唐晨栋 张宇
摘 要:针对当下市场中大部分环境监测设备功能不完善的问题,文中提出并设计了一种室内气体环境的智能监控系统,所设置的功能可以极大程度地满足用户需求。系统采用多种传感器,可以测量多种气体的浓度。将STM32单片机作为核心处理器,增加系统的运算能力,另设置了警戒阈值,实现了超过阈值时蜂鸣器报警、短信通知的功能。采用GSM模块无线传输测量数据,使系统能够将测量的结果实时传输至PC机中。为了实现数据的可视化,采用LabVIEW软件完成上位机设计,显示不同气体的数据曲线,得到多种气体的浓度变化情况,实现了在PC机上显示测量结果的功能。
关键词:STM32单片机;LabVIEW;环境监测;GSM;传感器;通信
中图分类号:TP274+.3文献标识码:A文章编号:2095-1302(2019)09-00-04
0 引 言
LabVIEW(Laboratory Virtual Instrument Engineering Workbench,LabVIEW)是当前颇受业界人士推崇与青睐的一种图形化开发环境。最初,LabVIEW的主要功能为测量测试,经过多年的发展,LabVIEW已能够很好地完成大部分测量测试任务。如今,它被广泛用于各种测量设备中,被工业、学术以及科研等领域作为测量测试、仪器控制必不可少的工具,用户可以通过工具包组成完整的测试程序[1]。
国内外的智能家居行业随着测量技术的逐步发展,产品准确性得到了明显提高,随着用户对测量结果的重视程度不断增加,智能家居系统将会向提升运算速度、无线传输以及实时发送测量结果的方向发展[2]。针对上述情况,以STM32F103VET6作为嵌入式MCU,以SIM900A通信模块实现无线传输功能,以LabVIEW上位机实时显示测量结果,设计了基于LabVIEW的室内环境监控系统,将多种传感器采集的数据通过串口发送至STM32F103VET6单片机,通过SIM900A通信模块将采集结果发送至电脑以及手机,创新性地利用LabVIEW对数据的处理功能方便用户更直观地了解采集结果。无线传输以及上位机显示功能能够方便用户对紧急情况及时做出反应,使系统更加人性化。
1 系统总体设计
本系统拥有一个检测点、一个后台和一个用户端,在对各检测点的结构组成进行全面研究与分析后发现,其均由温度传感器、甲醛传感器、烟雾传感器、单片机等组成。另外,单片机作为系统的关键构成部分,以系统实现功能为重点依据,控制器需要控制数据采集、指令解析、数据通信等。本系统中单片机一方面控制通信模块发送信息,另一方面还需控制报警,当某一测量值超限时蜂鸣器鸣叫。后台为LabVIEW上位机,用户端为用户手机。系统总设计如图1所示。
2 系统硬件设计
2.1 嵌入式微处理器
在一块较小的电路板上嵌入一块具有特定功能的微处理器芯片—嵌入式微处理器[2],由于外围电路可满足特定功能,因此嵌入式电路板体积明显缩小。近年来,嵌入式处理器发展的越来越成熟,其高性能、低功耗的特性已能够满足绝大部分设备的需求[3]。本系统选用意法半导体企业独立研发的STM32F103VET6芯片,在对这款芯片的性能参数进行深入分析后发现,其内核为32位Cortex-M3,内置两种不同规格的存储器,分别为512 KB的闪存和64 KB的SRAM存储器。芯片的运行频率为72 MHz,内置12位ADC以及DAC,11个定时器。电源通过USB接口接入5 V电压供电。晶振电路支持两种不同规格的时钟源,一是运行频率为23.768 kHz的时钟源,为低速时钟源;另一个是运行频率为8 MHz的时钟源,为高速时钟源。另外,复位电路的常用方式有两种,即上電型与按钮型,复位时电源复位输出低电平作用于RESET管脚[4]。
2.2 传感器模块
2.2.1 温度传感器
本系统选用的温度传感器型号为DS18B20,该传感器可利用1-Wire总线与STM32F103单片机通信,因此可使自身抗干扰性能得到进一步提升,同时该传感器监测范围相对较广,其监测区间为-55~125 ℃,且在监测范围-10~85 ℃之外时误差可被合理地控制在±0.5 ℃之下,输出数字量,正常情况下,其供电范围为3.0~5.5 V[5]。此型号的传感器与单片机的3.3 V及GND口连接,DQ口则与单片机的PA5口相连。
此型号传感器支持6种不同形式的信号,分别为复位脉冲、应答脉冲、写0、写1、读0、读1。温度测量过程由STM32F103单片机发出复位脉冲开始,STM32F103单片机输出480 μs以上的低电平。转变为接收模式(Rx)之前需完成两项基本操作,首先释放总线,然后再对总线进行上拉处理,由此转变为高电平。在此之后,DS18B20传感器通过拉低总线60~240 μs的方式输出低脉冲,并对两者的连接方法进行检测,以进一步确定是否为应答信号的值,当显示0时,说明检测到传感器,返回1时表示未检测到传感器。在读取检测结果时,单片机一定要先输出读时序,并且在该过程中,主机对总线完全释放,在15 μs后对总线状态进行监测与采样。通过图2可对此传感器的温度读取过程有更直观、全面的了解。
2.2.2 湿度传感器
湿度传感器型号为DHT22,采用3引线连接方式,数据线定义为SDA引脚,串行传输数据,与单片机U3口相连。运行电压为3.3~5.5 V,测量范围为0~99.9%RH,当温度为25 ℃时,误差在±2%RH以内[6]。
DHT22传感器一次采集8位数据,循环采集4次,校验数据,共40位。其中,高16位为湿度数据,对捕获到的湿度值进行除10处理便能获取准确无误的真实湿度值。在测量过程中,DHT22在接收到起始指令后立即转变运行模式,即由最初的休眠模式转变为高速模式,利用SDA数据线传送数据并在结束时执行一次信息收集操作,在下次通信之前,传感器进入休眠模式。为了避免误差过大,两次采集的时间间隔必须大于1 s。
2.2.3 甲醛传感器
甲醛传感器采用ZE08-CH2O型电化学甲醛模组,是郑州炜盛电子科技有限公司生产的产品。该传感器利用电化学原理对空气中存在的甲烷进行探测,稳定性好,方便使用。内部设计温度传感器可实现温度补偿功能,具有数字输出和模拟输出两种方式。将系统的数字输出与STM32单片机的串口3相连,量程为0~6.69 mg/m3,在0~50 ℃范围内运行时其分辨率未达到0.01 mg/m3。选用主动上传方式通信,每间隔1 s发送一组测量值,数据共为8位,其中1位起止位,气体浓度位于Byte4(高位)和Byte5(低位),测量的气体浓度值计算式如下:
气体浓度值=气体浓度高位×256+气体浓度低位[7]
2.2.4 烟雾传感器
本系统选用集多重优势于一身的MQ-2烟雾传感器对烟雾浓度进行实时监测。此传感器的运行电压小于5 V,内置有4个标准接口,可实现双路信号输出[8]。MQ-2烟雾传感器采用模拟量A0接口与A/D转换器相连的方式输出数字量,连接单片机的PA7口。
2.2.5 GSM通信模块
GSM是全球移动通信系统(Global System for Mobile communications,GSM)的简称,是由欧洲电信标准组织ETSI制定的一个数字移动通信标准[10],其最大优势在于支持短信与数字语音的高效传送,在本系统中,GSM模块的功能是把传感器采集的信息发送至手机及电脑中[11]。
本套系统选用SIM900A无线通信模块。此模块由全球知名厂商芯讯通(SIMCom)自主研发与生产制造,它是一种GPRS通信模块,同时具备GSM与GPRS这两大模块的通信功能,外观精致,性能可靠。常见的SIM900A运行频率分别为900 MHz与1 800 MHz,采用工业标准接口,与STM32单片机基于串口2相连并由此保持正常通信。SIM900A模块内置两种专用TTL接口,可供3.3~5 V电压的单片机使用。在连接之前,需将SIM900A的RXD与单片机的TXD相连,SIM900A的TXD与单片机的RXD相连,GND与单片机的GND相连[12]。SIM900A需接通5 V直流电源,接通后模块会点亮D5与D6指示灯,模块的工作状态也可以通过两个指示灯确定。
进入AT状态:将USB-232串口线与电脑连接,安装驱动程序。在计算机中找到设备管理器端口并点击COM,配置串口助手,同步波特率定义为9 600,发送AT指令查看SIM900A的运行状态。GPRS模块发送数据与GPRS配置分别见表1与表2所列。
3 系统总体设计
3.1 单片机软件设计
系统软件主要为编写的程序,用于控制系统各硬件做出指定动作。各硬件之间相对独立,软件的模块化特征愈加显著。该系统由定时器程序模块、温度采集程序模块、湿度采集程序模块、烟雾浓度采集程序模块、甲醛浓度采集程序模块、SIM900A无线传输程序模块、按键程序模块组成。程序流程如图3所示。
系统运行时会按照图3所示的流程进行控制,当网络连接成功后可通过按键1和按键2来控制系统状态。按下按键1时,系统进入监测状态,可对超过阈值的数据进行报警;按下按键2,则系统退出检测状态。
3.2 通信协议
对于通信协议这一概念,具体指为实现正常通信或服务需双方彼此共同遵循的制度与规定。在通信协议中,主要针对数据模块使用的格式进行了明确规定,同时要求信息单元的各项配置务必完整,唯有此才能保证数据的正常传送[13]。本系统的无线传输功能需要将温度、湿度、甲醛、烟雾传感器测量的结果发送至电脑以及手机,这是系统設计的重要环节。
3.3 后台软件设计
后台软件的设计工具为LabVIEW,利用此软件设计上位机不仅能够清晰显示传感器的测量结果,还可以利用其强大的运算功能实现数据的运算处理[14]。
通过LabVIEW中自带的TCP/IP通信组件实现上位机与下位机的数据连接,在降低复杂度的同时可确保网络通信的可靠性[15]。TCP服务器VI建立时,首先创建TCP侦听器函数,接入服务名称注册的端口号,接出侦听器ID与错误输出;接着创建读取TCP数据函数,接入连接ID与错误输入,接出接连ID、数据输出和错误输出;最后创建关闭TCP连接函数,接入连接ID与错误输入。在运行之前,将预先在下位机设定好的端口号填入VI中便可启动TCP服务器[16]。
采用LabVIEW自带的数值转化模块时,数据需输出一个判断语句,当发送语句字节为48 B时进入数据处理部分,采用自带的读取数据功能读取下位机数据每行对应字符串,截取每一行字符串中对应的数值进行数值判断和数值分析[17]。
LabVIEW数据读取与处理程序如图4所示。
该后台软件实现了对现场监控的功能,包括显示采集的信息、处理信息等,显示界面如图5、图6所示。
4 结 语
该系统实现了室内环境的实时监控,尽管在设计时本系统的定位是室内智能家居,但本系统也可以应用于工厂、矿井、汽车、大棚等地[18]。通过GSM无线传输功能和LabVIEW的可视化以及数据处理功能实现了室内气体环境的实时监控,结合单片机控制报警等功能,本系统已能够有效保证室内气体环境,较为人性化。本系统能够优化居住环境,有效降低成本,具有广泛的应用前景。
注:本文通讯作者为张宇。
参 考 文 献
[1]郑对元.精通LabVIEW虚拟仪器程序设计[M].北京:清华大学出版社,2012:10-39.
[2] Michel Mouly,Marie-Bernadette Pautet. The GSM System for Mobile Communications[M].Telecom Publishing,2000: 15-60.
[3]肖冬瑞.基于STM32及LabVIEW的环境检测系统[D].衡阳:湖南工学院,2015.
[4] ZHANG H,KANG W. Design of the data acquisition system based on STM32[J].Procedia computer science,2013(17):222-228.
[5]金晓龙,郭斌,孟小艳.基于SPCE061A温室温湿度监测系统的设计及实现[J].计算机与现代化,2012(9):45-48.
[6]朱嵘涛,徐爱钧.单总线传感器AM2302温湿度测控系统原理及应用[J].单片机与嵌入式系统应用,2016,16(4):46-48.
[7]韩明轩,李耀.一种甲醛检测仪[J].电脑知识与技术(学术交流),2015,11(13):215-216.
[8]张兆民,狄思雨.一种室内烟雾处理系统的设计[J].价值工程,2018,37(32):142-144.
[9]朱向庆,邓浩欣,李嘉宝,等.基于STM32和Android的智能家居系统设计[J].电子设计工程,2018,26(18):179-183.
[10]李再扬,杨少华.GSM:技术标准化联盟的成功案例[J].中国工业经济,2003(7):89-95.
[11]谷亚宁.基于无线通讯技术的远程监控系统的设计[D].杭州:浙江大学,2013.
[12]隋俊杰,肖诗满,邵伟恒,等.基于SIM900A的基站无线监控系统[J].现代电子技术,2016,39(3):51-54.
[13]刘弈宏.激光阵列空中特效设计与实现[D].北京:北京理工大学,2011.
[14]李美平.基于LabVIEW的远程无线监控系统[D].曲阜:曲阜师范大学,2014.
[15]龙华伟,顾永刚.LabVIEW8.2.1与DAQ数据采集[M].北京:清华大学出版社,2008:143-145.
[16] LIU Z,DING X L, ZHENG L H.The 2015 International Conference on Advances in Construction Machinery and Vehicle Engineering (ICACMVE2015) [C]// Shanghai:Shanghai Scientific & Technical Publishers,2016:360-363.
[17]徐晓东,郑对元,肖武.LabVIEW8.5常用功能与编程实例精选[M].北京:电子工业出版社,2009:30-37.
[18]闫林生,肖伸平,邓鹏,等.基于物联网的室内环境监控系统的设计[J].计算技术与自動化,2012,31(4):47-50.