摘 要:
利用单片机和虚拟仪器labview在pc端设计了温湿度测量及控制系统,用于温湿度数据监测。该系统上位机为pc端监控界面,下位机为单片机,单片机采集温湿度数据,并将采集到的数据通过串口发送给监控界面进行监测和管理。该监测系统具有开发成本低、功耗低、性能稳、电路简单等优点。
0引言
随着技术的发展,温湿度测量应用到了工作和生活的方方面面,温湿度监测系统的应用也愈加广泛。目前,基于虚拟仪器的监控与数据采集系统的设计主要依赖于价格昂贵的数据采集卡,系统开发和应用成本高[1]。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.5 v,其1脚接vcc,2脚接单片机的i/o口,3脚悬空,4脚接gnd。上电后等待1 s以越过不稳定状态,在此期间不要发送任何指令。
2.2 上位机串行通信电路设计
上位机通过串口通信获取单片机采集的温湿度数值。串行通信线路简单,只需一对传输线即可实现通信,速度慢但成本低。在串行通信中,需要进行逻辑电平转换,使其对信息的逻辑定义与ttl兼容,接口电路如图3所示。
3系统软件设计
3.1 下位机单片机程序设计
下位机程序设计主要包括dht11温湿度读取、lcd1602显示、键盘、声光报警以及单片机串口通信设计,图4为下位机主程序流程图。
下位机程序设计中的复杂部分是关于dht11如何读取温湿度数据。dht11采用单总线数据格式,一次通信时间要小于3 ms,主机连续采样间隔建议大于100 ms,其读取单总线上的1个字节数据程序设计如图5所示。其温湿度数据包由5 byte(40 bit)组成:8 bit湿度整数数据+8 bit湿度小数数据+8 bit温度整数数据+8 bit温度小数数据+8 bit校验和[2],可以据此读出采集到的温湿度数据。
3.2 上位机labview程序设计
3.2.1 labview上位机设计模式
由于下位机连续不断地采集温湿度数据,为保证数据不丢失,上位机设计模式代码框架采用生产者/消费者模式。利用消息队列处理器,将用户界面ui、数据采集、数据保存显示、数据分析4个队列多线并行运行,如图6所示。用户界面有任何动作,生产者均会在事件结构产生对应的事件消息,发送到队列,消费者不断取出队列的事件消息进行处理[3],对所有动作做出反应。
3.2.2 labview上位机串口发送程序
本程序运行前需要先配置串口,将命令(如55 aa 01)通过visa串口写入,等待不少于0.02 s,时间太短会导致读取缓存失败。通过串口属性节点byte at port可判断串口缓存的字符个数,若单片机返回错误标志,则重新发送[3]。由于dht11是单总线器件,单片机正在执行时序时不能被打断,会错过上位机命令,所以需要重复发送几次,保证连接成功,不管成功与否最多发送5次。执行部分程序框图如图7所示。
3.2.3 labview上位机串口接收程序 为保证单片机发送过来的数据不会丢失,上位机将串口缓冲中的数据一一读到队列中,再建立另外一个线程来取出队列中数据并进行分析,如图8所示。
3.2.4 数据文件存储和调用
上位机存储数据文件类型为tdms(technical data management streaming)文件,它兼顾了存取方便、高速等优势。tdms的逻辑结构分为三层:文件(file)、通道组(channel groups)和通道(channels)[4],程序员可以非常方便地使用这三个逻辑层次定义测试数据,数据检索是有序的、方便存取的,如图9所示。
4系统设计结果
系统测试结果如图10~图13所示。本系统实现了基于单片机和labview的温湿度监测,下位机实时监测温湿度数据,上位机在labview前面板实现温湿度数据和波形实时显示,当温湿度数值超出或低于预设值时,可通过下位机蜂鸣器和上位机指示灯进行报警,历史数据能以tdms文件形式保存,易于查询和打印。
5结语
本文设计了基于单片机和labview的温湿度监测系统,经测试,该系统可实现温湿度的实时监测、报警、历史数据存储和查询功能,且监测界面美观、操作便捷,系统成本低,功能易扩展,具有较好的使用和推广价值。
奥地利微电子推全球首款内部集成嵌入式智能算法芯片AS3935
武直-10新型头盔显示器获取飞行、战斗状态信息效率提高
关于配电箱的内部结构解析
STM8单片机按键检测电路设计
通信
基于单片机和LabVIEW的温湿度监测系统设计
张卫:先进CMOS制造工艺的技术演进及自主发展思考
高通死磕,苹果在智能家居布局能否绝地反击
小米6什么时候上市?小米6最新消息:小米6配置确认,高配低价1999元,小米平板3也是高配低价吗?
柔性振动盘用途
一种改进的无线传感器网络非测距定位算法
探析工业APP诸多要素的关系与内涵
详解快速控制原型RCP与硬件在环仿真HIL
风光互补系统在地质灾害中的应用
简道云免费版来袭,让无代码开发惠及更多组织
2020年第三季度小米成为国产手机市场销量冠军
立足整个信号链需求 意法半导体音频解决方案
揭秘EFR32第二代无线平台的省电妙招-Lean Watchdog定时器电路
蜂巢能源接连公布三大动力电池新基地,总投资约300亿元
全高清电视的电源发展趋势探析