基于单片机和LabVIEW的温湿度监测系统设计
扫描二维码
随时随地手机看文章
引言
随着技术的发展,温湿度测量应用到了工作和生活的方方面面,温湿度监测系统的应用也愈加广泛。目前,基于虚拟仪器的监控与数据采集系统的设计主要依赖于价格昂贵的数据采集卡,系统开发和应用成本高。LabVIEW是美国国家仪器(NI)公司研制开发的一款图形化编程开发环境,本文基于单片机和LabVIEW平台实现了温湿度实时监测系统的设计。单片机和温湿度传感器构成下位机系统,以串口通信方式将采集的数据发送至上位机PC端LabVIEW平台,实现温湿度数据实时采集、温湿度趋势图绘制、门限报警、历史数据存储,并对数据进行精细化管理。该监测系统快速有效,开发成本低,非常适合日常使用。
1系统设计思路
该系统下位机控制核心为STC89C52,温湿度传感器DHT11采集温湿度信号,液晶显示屏LCD1602显示系统信息。系统设置报警电路,用户可自行设定报警阈值,当温度或湿度超过设定值时则启动报警。上位机采用LabVIEW编写程序,单片机与其通过串口进行通信,实现系统温湿度数据的实时测量、监控、存储及统计分析。LabVIEW图形化编程人机交互界面友好,开发成本低,简单易行,功能可靠。系统结构如图1所示。
2硬件电路设计
2.1下位机硬件电路设计
下位机单片机控制系统硬件电路包括:温湿度传感器DHT11电路、LCD1602显示电路、声光报警电路和键盘电路,本文在此只阐述温湿度传感器DHT11的电路设计。DHT11只需要占用单片机一个I/O口即可完成连接。如图2所示,DHT11的供电电压为3.5~5.5V,其1脚接VCC,2脚接单片机的I/O口,3脚悬空,4脚接GND。上电后等待1s以越过不稳定状态,在此期间不要发送任何指令。
2.2上位机串行通信电路设计
上位机通过串口通信获取单片机采集的温湿度数值。串行通信线路简单,只需一对传输线即可实现通信,速度慢但成本低。在串行通信中,需要进行逻辑电平转换,使其对信息的逻辑定义与TTL兼容,接口电路如图3所示。
3系统软件设计
3.1下位机单片机程序设计
下位机程序设计主要包括DHT11温湿度读取、LCD1602显示、键盘、声光报警以及单片机串口通信设计,图4为下位机主程序流程图。
下位机程序设计中的复杂部分是关于DHT11如何读取温湿度数据。DHT11采用单总线数据格式,一次通信时间要小于3ms,主机连续采样间隔建议大于100ms,其读取单总线上的1个字节数据程序设计如图5所示。其温湿度数据包由5Byte(40bit)组成:8bit湿度整数数据+8bit湿度小数数据+8bit温度整数数据+8bit温度小数数据+8bit校验和,可以据此读出采集到的温湿度数据。
3.2上位机LabVlEW程序设计
3.2.1LabVIEW上位机设计模式
由于下位机连续不断地采集温湿度数据,为保证数据不丢失,上位机设计模式代码框架采用生产者/消费者模式。利用消息队列处理器,将用户界面UI、数据采集、数据保存显示、数据分析4个队列多线并行运行,如图6所示。用户界面有任何动作,生产者均会在事件结构产生对应的事件消息,发送到队列,消费者不断取出队列的事件消息进行处理,对所有动作做出反应。
3.2.2LabVIEW上位机串口发送程序
本程序运行前需要先配置串口,将命令(如55AA01)通过VIsA串口写入,等待不少于0.02s,时间太短会导致读取缓存失败。通过串口属性节点ByteatPort可判断串口缓存的字符个数,若单片机返回错误标志,则重新发送。由于DHT11是单总线器件,单片机正在执行时序时不能被打断,会错过上位机命令,所以需要重复发送几次,保证连接成功,不管成功与否最多发送5次。执行部分程序框图如图7所示。
3.2.3LabVIEW上位机串口接收程序
为保证单片机发送过来的数据不会丢失,上位机将串口缓冲中的数据一一读到队列中,再建立另外一个线程来取出队列中数据并进行分析,如图8所示。
3.2.4数据文件存储和调用
上位机存储数据文件类型为TDMs(TechnicalDataManagementSTreaming)文件,它兼顾了存取方便、高速等优势。TDMS的逻辑结构分为三层:文件(Fi1e)、通道组(Channe1Groups)和通道(Channe1s),程序员可以非常方便地使用这三个逻辑层次定义测试数据,数据检索是有序的、方便存取的,如图9所示。
4系统设计结果
系统测试结果如图10~图13所示。本系统实现了基于单片机和LabVIEW的温湿度监测,下位机实时监测温湿度数据,上位机在LabVIEW前面板实现温湿度数据和波形实时显示,当温湿度数值超出或低于预设值时,可通过下位机蜂鸣器和上位机指示灯进行报警,历史数据能以TDMS文件形式保存,易于查询和打印。
5结语
本文设计了基于单片机和LabVIEW的温湿度监测系统,经测试,该系统可实现温湿度的实时监测、报警、历史数据存储和查询功能,且监测界面美观、操作便捷,系统成本低,功能易扩展,具有较好的使用和推广价值。