APP下载

基于HDC1080的高精度温湿度采集系统

2022-12-01吴晨红

传感器世界 2022年8期
关键词:下位高精度温湿度

吴晨红

安徽三联学院,安徽合肥 230601

0 前言

随着现代科技的快速发展,多种智能设备应用于人类生活的方方面面。温度和湿度是环境特性参数的主要组成部分,如SARS-CoV-2病毒的环境稳定性会随温度和湿度而变化[1]。在医院、运输、化工、智能家居和航空航天等行业中,监测和控制环境的温湿度非常重要[2-4]。

监测系统可以大大地促进社会的发展,在如今快节奏的时代具有很大的优势。设计高精度的系统更符合嵌入式系统发展的新趋势。随着嵌入式系统、微控制器(Microcontroller Unit,MCU)和半导体技术的高速发展和多种技术的日益成熟,使温湿度采集系统的研制和设计也在不断地发展。短距离、高精度温湿度采集系统将在工业现场中发挥着很大的作用[5-6]。

1 总体设计

温湿度采集系统的总体框架图如图1所示,该系统由传感器、下位机和主机组成。基于此传感器节点硬件平台,实现了采集、管理、信息融合、显示、有线传输等功能。温湿度采集系统是利用HDC1080温湿度传感器与STM32F103C8T6开发板实现温湿度的数据采集,由USB转RS-232转换器发送到电脑,用户可进行查看和查询。

2 硬件设计

设计硬件电路时,首先需要确定下位机的主控芯片;然后将基于HDC1080的高精度温湿度采集系统的硬件电路分为多个主要电路模块;最后设计系统的整体结构。

2.1 主控芯片选型

ST公司生产的STM32F103C8T6有很多优势,例如功耗低、成本低、性能高和LQFP48 封装体积小等特点[7-8]。其主要技术参数如表1所示。

表1 STM32F103C8T6芯片主要技术参数

2.2 STM32F103C8T6最小系统电路分析

最小系统是主控芯片能够正常工作的前提。STM32芯片的最小系统由主控制器、启动存储器的选择电路、下载和调试电路、时钟电路、复位电路和供电电路6个部分组成[9]。单片机采用3.3 V供电,由供电电路把外接5 V电压经过电源滤波电路转化为3.3 V[10]。

2.3 硬件整体结构设计

此系统硬件部分需要用到2片STM32F103C8T6单片机作为下位机1和下位机2的主控芯片,而主机则作为上位机使用。下位机包括供电电路、时钟电路、STM32F103C8T6主控芯片、复位电路、LED电路、温湿度采集模块RS-232接口电路、按键电路和下载电路[10]。下位机可以向上位机传输数据指令,所以上位机与RS-232接口需要通过总线相连接,达到数据传输的功能。此系统硬件总体结构设计如图2所示。图中3种箭头的方向分别代表着此系统的温湿度信号传输的方向、调试过程中的数据传输方向和控制信号传输方向,根据箭头的指示可以清晰地看到系统中各模块的数据信息的交互流程及温湿度信号的传输路径[6]。

2.4 温湿度传感器模块

HDC1080传感器如图3所示,电路连接时用3.3 V供电,SCL引脚、SDA引脚分别与STM32的PB6、PB7两个引脚相连。

HDC1080是一款数字温湿度传感器,具有测量精度高、功耗低、成本低的特点,常用于空调、医疗仪器中。湿度和温度传感器出厂前均经过校准[11]。HDC1080性能指标如表2所示。

表2 HDC1080性能指标

2.5 关键电路分析

RS-232接口自美国在1962年发布后,在嵌入式系统中逐渐具有很高使用率,现在主要用于计算机与多种串口之间的近距离通信。RS-232接口是一对一的可实现全双工(Full Duplex)通讯,同一时刻可完成数据的发送和接收,即可以允许数据在2个方向同时传输[12],数据传输距离为15 m。如图4给出的RS-232接口电路,单片机STM32F103C8T6通过应串口USART1与芯片SP3232EEN相连接,把TTL电平转化成RS-232电平。通讯用-3~-15 V的电压表示逻辑1,用+3~+15 V的电压表示逻辑0[13]。

3 程序设计

根据硬件结构完成对应功能的程序设计,最终达到系统设计的目的。程序设计从系统的总体结构和主要程序功能进行分析介绍。

3.1 程序设计总体结构

根据基于HDC1080传感器的高精度温湿度采集系统实现的温湿度采集、温湿度传输和数据显示等几个主要功能来进行程序开发。程序以芯片STM32为支持的模块化设计,增加了程序的通用性和二次开发的可行性。程序关键设计,结合硬件模块分类和作用不同可以分为3个重要部分:

(1)主程序设计模块。主程序的功能主要是对各模块进行功能调度,以完成系统的温湿度采集、近距离信息查询和上位机信息接收。在下位机中,主要建立时钟、串口USART、LED、按键等主要模块的函数库,完成初始化参数设置。根据外界输入信号,调用函数对功能流程进行推进。

(2)数据采集程序设计模块。在下位机中,此模块要实现的功能是单片机STM32F103C8T6将获取的温湿度保存为适合下个模块发送的数据格式。

(3)数据传输程序设计模块。在程序设计时,此部分将测试模块保存的温湿度数据由串口USART1经过RS-232接口总线发送给电脑端,实现系统最终功能。

3.2 温湿度采集程序设计

上电时,HDC1080进入低功耗睡眠模式,首先启动I2C,然后将数据传输方向设为写入,STM32接收应答信号。默认情况下,HDC1080将首先执行温度测量,然后进行湿度测量。HDC1080上电后等待STM32启动I2C总线,此时HDC1080处于休眠模式,无法主动测量。初始化HDC1080程序流程图如图5所示。

暂存于寄存器内温湿度值为16位二进制数据,需要通过温度与湿度的计算公式(1)、(2)转换为最终发送给上位机的数据格式。

3.3 数据传输程序设计

RS-232模块的程序设计部分,即温度与湿度数据由UART1发送主机,此模块主要是对USART1发送数据的程序设计。因为配置串口UART1,由时钟配置可得初始化的是固件库函数RCC_APB2PeriphClockCmd()。引脚配置中,将配置结构体GPIO_InitTypeDefGPIO的属性设置为复用推挽输出,切换速率设置为50 MHz,最后使能I/O口。USART1发送函数如下,通过该函数将温湿度数据发送到上位机。

void USART_SendData(USART_TypeDef* USARTx, uint16_t Data)

{

assert_param(IS_USART_ALL_PERIPH(USARTx));

assert_param(IS_USART_DATA(Data));

USARTx->DR=(Data & (uint16_t)0x01FF);

}

4 系统测试与分析

在室内环境下,13分钟下,每0.1分钟采集一次数据,采集温度和湿度数据曲线如图7所示。在前1分钟内,温度与湿度都有偏大的波动范围,温度的最大波动范围为0.15 ℃,相对湿度的最大波动范围为1.49%RH。已知HDC1080的温度测量精度为±0.2 ℃,相对湿度测量精度为±2%。测试结果表明,此系统可稳定且高精度地采集温湿度数据,符合系统的设计要求。

5 结束语

本文设计了一个由上位机控制下位机,实现实时、高精度的温湿度数据查询与检测系统。结合硬件与程序设计过程,搭建系统并完成测试。测试数据表明,此系统可实现采集高精度温湿度数据的功能,且具有一定的稳定性。此系统将高精度温湿度传感器应用于工业监测系统中,满足了应用的需求。同时,此系统具有很好的兼容性和可扩展性,可应用于多种工业现场中,为之后搭建更为复杂的系统打下了良好的基础。

猜你喜欢

下位高精度温湿度
一种智能化电热处理炉用温湿度传感器的变送器
关于高精度磁测在构造解释方面的应用分析
高精度在轨实时轨道机动决策
文物展柜内环境温湿度的调控与监测
蛋鸡育雏育成舍环境控制技术
温湿度独立控制空调系统在医院建筑中的应用研究
基于遗传算法的高精度事故重建与损伤分析
基于UDS协议的CAN BootLoader的开发与验证
某MT车型无法启动和怠速启停失效问题分析
发射机房监控系统之下位机