基于MSP430的多点位温湿度监控系统
2022-08-15林雨歆林琦刘娜娜蔡建义高胜银孙卫
林雨歆,林琦,刘娜娜,蔡建义,高胜银,孙卫
(西安理工大学,陕西西安,710061)
0 引言
随着信息时代的到来,自动化系统得到广泛应用,根据人们的需求其功能逐渐完善,但依然存在很多问题,使用户体验感较差、满意度较低。例如工农业生产生活中,需要长时间、多点位的监控环境温湿度状态,且需具备自动报警功能,若要实现较密集的采集多个监测点温湿度状态,目前依然面临很多困难:
(1)监控范围广、时间长,监控点位多;
(2)温湿度数据监控精度要求越来越高;
(3)温湿度采集数据量大,不便于记录与日后分析。
上述问题来源于某大学图书馆实地考察,为解决这些问题,本文设计制作了基于MSP430的单总线多点位温湿度监控系统,该系统具备温湿度数据采集、显示、报警、记录功能,实现对该大学图书馆全方位、多点位温湿度实时监控、记录和保存。
1 系统总体方案
本文设计的温湿度监控系统由MSP430单片机、DHT22单总线温湿度传感器、液晶显示屏等组成,系统原理如图1所示。系统采用单总线形式,由于测量探头结构简单,系统板与采集模块采用单总线进行通讯,采集模块选用干电池供电的DHT22单总线温湿度传感器,便于监控采集点的设置。系统按照每分钟一次的频率对环境的温湿度进行检测,将采集的温湿度信息,一方面通过主控芯片记录在MSP430系统的存储区,另一方面通过串口彩色液晶屏进行实时显示,当某路采集温湿度超出设定值时,在显示屏上出现报警提示。同时,利用PC机实现对环境温湿度数据的实时查询、数据整理、绘制数据曲线以及对历史存储数据的分析、导入、导出和实时显示等功能。
图1 系统原理框图
2 系统硬件设计
2.1 主控芯片
主控芯片采用MSP430单片机,该型单片机功耗小且集成了较丰富的片内外设,在温湿度监控系统中,当系统程序失控时可以实现迅速复位,其内部的16位定时器具有捕获、比较功能,完成实际测试温湿度与设定温湿度数值的比较,判断温湿度是否在合格范围内,满足本系统设计需求。
2.2 单总线系统
本系统采用单总线技术(1-Wire Bus),其采用单根信号线,对数据进行双向传输,以及系统控制通讯功能,其内部等效电路如图2所示。
图2 单总线硬件接口示意图
单总线要求外接一个约4.7kΩ的上拉电阻,这样当总线闲置时,状态为高电平。如果出现序列混乱,1-wire器件不会响应主机。
2.3 串口液晶屏
在温湿度监控系统中,采用液晶显示屏提升了温湿度监控系统交互性、体验性,便于使用者对温湿度变化情况进行分析和控制。本系统采用SPI串口液晶屏, SPI串口接收MSP430单片机串口发送的指令,若指令符合通讯协议即可实现温湿度数据的实时显示功能。
2.4 温湿度采集模块
本文设计的温湿度监控系统,要实现对环境温湿度的监控、管理功能,首先对温湿度及其变化信息进行采集,然后通过数字信号与模拟信号之间的有效转换,将数据传输至温湿度监控系统主控平台— MSP430单片机,实现数据分析和利用。DHT22传感器满足设计需求,其外形如图3所示。
图3 DHT22传感器
DHT22温湿度传感器属复合型传感器,能够与MSP430单片机进行有效连接。DHT22温湿度传感器体量小,且信号传输距离较远,在温湿度监控系统中适用性强。同时,DHT22温湿度传感器也具有输出信号准确率高、抗干扰、低功耗等优势,可有效提升本文所设计的温湿度监控系统的综合性能。DHT22技术参数如表1所示,引脚分配如表2所示。
表1 DHT22技术参数
表2 DHT22引脚分配
2.5 单总线数据格式
系统采用单总线数据格式,一次通讯时间为4ms左右,数据分小数和整数部分,操作流程为:数据传输一次为40bit,高位先出。用户发送开始信号后,DHT22从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT22发送响应信号,并触发一次采集信号,DHT22不会主动进行温湿度采集,采集数据后转换到低速模式,通讯过程如图4所示。
图4 通讯过程
当总线处于空闲状态时其为高电平,此时主机把总线拉低,然后等待DHT22响应,主机把总线拉低必须大于18ms,使DHT22能检测到开始信号,DHT22接收到主机发送的开始信号后,输出低电平响应信号,主机发送开始信号后,延时等待(20-40)μs后,读取DHT22的响应信号,信号响应过程如图5所示。
图5 信号响应过程
当总线为低电平,说明DHT22发送了响应信号, 如果读取响应信号为高电平,则DHT22没有响应,此时则要检查线路是否连接正常,当最后一bit数据传送完毕后,DHT22拉低总线50μs,然后总线由上拉电阻拉高从而进入空闲状态。
2.6 电源系统与分布式监控点电源
根据单片机、温湿度传感器以及其他模块对电流、电压的要求,需对220V交流电压进行降压处理,使其在桥式整流电路作用下,由220V交流电压转变为本系统所需要的 5V直流电压,为系统单片机、温湿度传感器供电,电源部件较为简单,此处不予赘述。
3 系统软件设计
系统软件由上位机软件和下位机软件组成,下位机软件是指烧录至MSP430的软件,上位机采用LabVIEW编制的上位机软件,上位机和下位机通过串口进行数据交换。
3.1 下位机软件
下位机软件采用C语言编程,实现对外围温湿度数据的实时采集,一方面通过串口将数据显示在液晶显示屏上,若满足报警条件时则给出报警信号,另一方面将数据存储在Flash中;当上位机有上传的命令时,下位机则把存储在Flash中的数据通过串口上传至上位机中。软件流程如图6所示。
图6 软件流程
利用MSP430某个IO口实现单总线的功能,对单总线的操作严格按照芯片的时序图进行,操作单总线时关闭中断。采集温湿度的核心代码,如函数1、2所示。
函数1:通过单总线读取一个字节的数据
3.2 上位机软件
上位机软件采用LabVIEW编制,实现从下位机中获取数据,并保存和分析数据,在终端呈现给用户,软件流程如图7所示;在系统D盘中采用Excel建立“温湿度记录表”,用于记录由下位机上传的数据,便于日后检查与存档,如图8所示;温湿度数据曲线显示如图9所示。
图7 软件流程
图8 温湿度记录生成文件夹
图9 温湿度数据曲线显示
4 系统测试结果
本系统采用IPS屏幕技术,温湿度测试采用经过校准的温湿度计与系统测试结果进行对比验证,经20个点位的对比试验,温度误差±0.3℃以内,湿度误差5%以内,符合设计要求。系统温湿度采集、显示正常界面如图10所示,故障界面如图11所示。
图10 正常界面
图11 故障界面
5 结论
本文利用MSP430、DHT22、IPS,通过单总线系统,利用C语言编程以及LabVIEW软件编制技术设计了一款多点位温湿度监控系统,实现对环境温湿度参数的有效收集,完成温湿度检测、报警、可视化显示、自动存储等功能,满足某大学图书馆温湿度多点位、实时监控管理需求。该系统可推广应用于博物馆、医院、现代化农业大棚等场所。下一步将在此基础上增加远程传输功能,提升系统综合性能和应用范围。