• 正文
  • 相关推荐
申请入驻 产业图谱

工业级温湿度传感器MHT04快速使用

08/27 08:07
947
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

原文链接/详细资料:https://f1829ryac0m.feishu.cn/wiki/ZIzEwqYH0iT7mbkV5opc6biunPe?from=from_copylink

引言

在粮仓、冷链仓储、温室大棚、养殖场、工业设备等应用场景中,温湿度数据的准确性与稳定性,直接影响物料安全、生产质量和设备运行。但普通温湿度传感器在高湿、凝露、粉尘和腐蚀性气体环境中,始终容易受到“探头污染、湿度漂移、线路受扰、长期稳定性下降”等问题影响,让环境监测系统频频“掉链子”。

传统温湿度检测方案各有局限:普通裸露式湿敏探头容易吸附粉尘和油污,长期使用后测量值可能发生漂移;在高湿或温度快速变化的环境中,探头表面容易形成凝露,造成湿度长时间满量程或恢复缓慢;模拟信号方案容易受到线缆压降和电磁干扰影响,不适合远距离、多节点部署;部分低成本数字传感器的防护和环境适应能力有限,难以长期工作在盐雾、腐蚀性气体及高低温交替环境中。

敏源传感 MHT04/MHT04H 温湿度传感器正是针对这些问题设计的工业级检测方案。产品采用铂金叠层湿敏探头与高精度电容调理芯片 MDC04,可同时采集温度和湿敏电容数据,并通过出厂校准系数完成湿度换算与温度补偿。传感器支持单总线或 I²C 数字通信,具有宽电压、低功耗、数字化传输和多节点部署等特点。MHT04H 在湿敏探头外增加防水透气膜,并对湿敏电容和芯片引脚进行保护涂覆,能够更好地应对高湿、凝露、盐雾和腐蚀性环境。

在粮仓、食品仓储和冷链运输场景中,温湿度变化会直接影响粮食、药品和食品的储存质量。湿度过高容易造成霉变、结露和包装受潮,湿度过低则可能引起物料失水或品质下降。MHT04/MHT04H 可部署在仓库、粮仓、冷柜和运输箱的不同位置,连续采集环境温湿度数据;单总线版本适合长距离、多节点组网,能够减少现场布线和采集节点数量,为仓储环境预警、通风除湿和冷链质量追溯提供可靠的数据依据。

建议展示大型粮仓或冷库内部,在不同高度标注多个温湿度采集点,并用连线表示多节点接入监控主机。

在温室大棚、育苗室和畜禽养殖场景中,温湿度是影响作物生长、病害发生和动物健康的重要环境参数。MHT04/MHT04H 可安装在种植区、通风口、育苗架或养殖舍内,实时反馈环境变化,并与风机、加湿器、除湿机、喷淋和温控设备联动。传感器低功耗、体积小,适合分布式布点;MHT04H 的防护结构还能降低高湿、喷雾和凝露对湿敏探头的影响,为农业环境控制提供稳定的感知基础。

在工业设备、机柜、管廊和腐蚀性环境中,设备运行产生的热量、潮气和温差可能引发凝露、绝缘下降、金属腐蚀甚至电气故障。MHT04H 可安装在控制柜、储能柜、仪器舱和工业管廊等关键位置,持续监测局部温湿度;对于需要将感知位置与控制电路分离的场景,还可以选用金属温湿度探头,通过定制线缆将探头布置在狭窄空间或高湿区域。其数字通信方式能够减少模拟信号在长线传输中的误差,为设备防凝露控制、故障预警和环境可靠性管理提供数据支持。

一、模块简介

MHT04(H) 是工业级温湿度一体采集传感器。湿度通道以湿敏电容为感知元件,MDC04 完成电容与温度采集;上位机EEPROM 读取出厂校准系数,将电容值换算为相对湿度并进行温度补偿。

    MHT04:标准型,尺寸约 27mm × 7mm × 3.9mm,适合常规环境与板内集成。MHT04H:高可靠性,尺寸约 43.5mm × 10.0mm × 7.0mm,增加防水透气膜和保护涂覆。接口版本:单总线或 I²C;另有 -LT 低温版本与直径 14mm 的金属温湿度探头版本。单总线在 5V、1kΩ 上拉条件下可串联约 100 个节点,手册给出的最长线缆参考值为 500m;工程设计仍应结合线材、电磁环境和时序裕量验证。

二、主要芯片介绍

2.1 芯片概述

MDC04 是电容调理与温度采集芯片。它输出温度原始值和湿敏电容原始值,本身不直接输出最终相对湿度。MHT04(H) 出厂时已完成多点校准,斜率 HumA、偏置 HumB 等系数写入内部 EEPROM;主控按公式完成电容、湿度和温度补偿换算。

数据链 原始温度/电容 → 校准系数读取 → 电容换算 → 相对湿度计算 → 温度补偿 → 0~100%RH 限幅。

2.2 引脚定义

接口 符号 单总线版本 I²C 版本
通信 C 未使用 SCL 时钟线
通信 D DQ 数据线 SDA 数据线
电源 G GND GND
电源 V VCC(2.0V~5.5V) VCC(2.0V~5.5V)

I²C 版本的 SDA 与 SCL 均需上拉至 VCC;单总线版本只需 DQ 上拉。线缆版探头通常采用红色为电源、黑色为地、黄色为数据线,I²C 版本另有时钟线;最终以实物标签和订单配置为准。

2.3 功能框图

MHT04H 的防护结构位于湿敏探头一侧,不改变 MDC04 的数据处理流程。EEPROM 中的系数属于每个模组的个体校准数据,不应在不同器件之间复制。

2.4 性能参数

项目 典型/规定值 说明
供电范围 2.0V~5.5V 模组工作电压
平均功耗 4.5μA@3V 手册典型值
湿度范围 0~100%RH 推荐按 0~100%RH 限幅
湿度典型精度 ±2.0%RH MHT04:30~70%RH;MHT04H:50~95%RH
湿度分辨率 0.01%RH 换算输出分辨率
温度典型精度 ±0.2℃ +20℃~+35℃
温度典型精度 ±0.5℃ 0℃~+50℃
温度精度 ±1.5℃ -20℃~+85℃
低温精度 ±2℃ -55℃~-20℃,适用于 LT 型号
温度分辨率 0.004℃ 原始值 LSB 为 1/256℃
湿敏响应速度 t63 <5s Ta=25℃,除非特别说明
年漂移 <1%RH/year 手册典型指标

湿度电容特征参数(Ta=25℃):测量范围约 1~99%RH;中心容值(60%RH)典型 100pF,范围 60~140pF;30~80%RH 区间灵敏度典型 0.1pF/%RH;湿滞典型 ±1%RH。

2.5 参考电路

单总线连接

DQ 连接 MCU GPIO,并通过 Rp 上拉至 VCC。短线板级连接可从 4.7kΩ~10kΩ 试配;长线或多节点场景应根据电压、总线电容和时序要求降低上拉阻值并做现场验证。产品手册给出的远距示例为 5V、1kΩ 上拉。

I²C 连接

SDA、SCL 分别连接 MCU 对应端口并上拉到 VCC。上拉阻值取决于供电、电容和总线速率;板级短线通常可从 4.7kΩ 起步,长线不建议直接按标准板级 I²C 方式扩展。

2.6 芯片配置

    I²C 从机 7-bit 地址:0x44。温度 + 电容通道 1 转换完成时间:建议等待至少 30ms,再读取最新数据。CRC-8:示例代码初值 0xFF,多项式写法为 0x131(计算中使用低 8 位 0x31)。电容换算需要 Co(中心/偏置电容)和 Cr(电容量程);I²C 数据流中 Cr 典型为 15.492pF,Co 可在 0~103.5pF 范围配置。湿度系数 HumA、HumB 为无符号数:HumA = raw/100.0,HumB = raw/10.0。

校准数据保护 不要把某一模组的 HumA/HumB、Co/Cr 配置复制到另一模组。更换传感器后应重新读取该器件自身 EEPROM 中的参数。

2.7 通信接口和相关协议

单总线命令

I²C 命令与读时序

发送 0x2C10 后,器件执行温度和电容通道 1 转换。等待至少 30ms 后直接读取 6 字节:Temp_H、Temp_L、CRC、Cap_H、Cap_L、CRC。主控应分别校验两个 2 字节数据块的 CRC。

2.8 寄存器定义

位置/数据块 字节定义 换算或用途
转换结果 0~2 Temp_H, Temp_L, CRC T = signed16(raw)/256 + 40℃
转换结果 3~5 Cap_H, Cap_L, CRC CD = (Cap_H<<8)|Cap_L
0xD208~0xD20B HumA_H, HumA_L, HumB_H, HumB_L 湿度斜率/偏置系数
0xD21D Cos 电容中心/偏置配置
0xD222 Cfb 电容量程配置

核心换算公式

温度:T = signed16((Temp_H<<8)|Temp_L) / 256.0 + 40.0(℃)

电容:Cx = 2 × (CD/(2^16-1) - 1/2) × Cr + Co,其中 CD = (Cap_H<<8)|Cap_L。

湿度:RH = (HumA_raw/100.0) × Cx - (HumB_raw/10.0)。

温度补偿:RH = RH - 0.2 × (30.0 - Temp)。最后将 RH 限制在 0~100% 范围。

实现提醒 温度原始值为有符号 16 位;湿度系数为无符号 16 位。字节序、符号扩展和 CRC 是最常见的移植错误点。

三、电路工程

3.1 电路源工程

获取电路源工程,请查看下面链接:

https://mysentech.com/productinfo/506263.html

3.2 模块使用说明

3.2.1 硬件接入与上电检查

    核对器件版本:单总线与 I²C 版本接口不同;I²C 地址固定为 0x44。VCC 保持在 2.0V~5.5V,电源旁路电容靠近模组布置,地线回路尽量短。湿敏探头保持清洁和通风,禁止刷蹭、手触、胶封或被冷凝水长期覆盖。先验证原始温度、电容和 CRC,再引入 HumA/HumB 湿度换算,便于分层定位问题。高湿、盐雾、凝露或化学气体环境优先选用 MHT04H,并通过整机结构防护验证。扫描或访问 0x44,确认 ACK;读取 Co/Cr 和 HumA/HumB,检查数据不为全 0 或全 0xFF;发送 0x2C10,等待 30ms;读取 6 字节转换结果并分别验证两个 CRC;换算温度、电容、相对湿度并执行温度补偿与限幅;与可靠的温湿度基准仪在多个点进行对比,确认系统误差与响应时间。

3.2.2 Modbus Poll 的使用

Modbus Poll 是一款通用型 Modbus 主站调试工具,适配本系列所有支持 Modbus-RTU 协议的电容式传感器,可快速实现传感器与电脑的串口通信调试、实时数据读取与日志导出,是验证传感器功能、采集测试数据的通用上位机工具。软件支持 Modbus RTU/ASCII/TCP/IP 协议,兼容多种寄存器类型与数据格式,操作流程对全系列传感器通用。

使用前需先完成软件安装与激活,可通过官方渠道下载安装包,首次打开可试用 30 天,也可输入注册码永久激活。硬件连接传感器与电脑后,打开软件点击「Connection」-「Connect」,在弹出窗口中配置串口参数(端口号、波特率、数据位 / 校验位 / 停止位,本系列传感器默认采用 9600 Baud、8N1 格式,具体以对应型号规格书为准),确认后即可建立通信连接。

以下为通用操作流程说明:

串口连接配置:

    1. 将传感器通过 USB 转串口模块接入电脑后,打开 Modbus Poll 软件,点击菜单栏「Connection」-「Connect」,在弹出窗口中选择传感器对应的 COM 端口号,并配置与传感器匹配的串口参数(波特率、数据位、校验方式、停止位,本系列传感器默认采用 9600 Baud、8N1 格式),确认后即可建立通信连接。

导入传感器配置文件:

    1. 软件支持导入各传感器型号对应的

.mbp

    1.  预配置文件,文件中已预设好寄存器地址、数据格式与别名定义,无需手动配置寄存器。直接在软件中打开对应传感器的

.mbp

    1.  文件,即可自动加载所有参数,连接成功后将直接显示传感器的实时检测数据(如尘 / 雨 / 霜厚度值、状态标志位等)。

数据日志记录(可选):

    如需保存测试数据,可通过「Setup」-「Excel Log」功能配置日志记录规则,支持按固定周期或每次数据更新记录数据,并可设置记录条数上限,方便后续对传感器数据进行分析与验证。

3.3 应用实验

这里,我们使用 GraftPort-RP2040 开发板进行测试,MHT04 温湿度传感器上使用 I2C 接口与主控进行通信。

该图展示了 MHT04 模块与 GraftPort-RP2040 开发板的 I2C 接线方式。

模块连线如下表所示:

开发板引脚 模块引脚 说明
引脚 4 SDA I2C 数据传输线,对应开发板的数据引脚
引脚 5 SCL I2C 时许传输线,对应开发板的时许引脚

M 这里,我们需要在 uPyPI 上搜索相关驱动包:https://upypi.net/zh/

该图演示了在 uPyPI 中搜索 WS61 驱动包的过程。

输入 mht04iic_driver 进行搜索,显示如下:

该图展示了 mht04iic_driver 搜索结果,用于确认对应驱动包。

点击复制本地安装命令:

该图展示了复制 WS61 驱动安装命令的界面,方便完成环境准备。

通过 mip 工具导入模块驱动库代码,以下是 mpremote 工具使用指令:

mpremote mip install https://upypi.net/pkgs/mht04iic_driver/1.0.0

导入后,将下面 main.py 代码复制到我们的工程中:

# Python env   : MicroPython v1.23.0
# -*- coding: utf-8 -*-
# @Time    : 2026/08/21 16:44
# @Author  : December
# @File    : main.py
# @Description : 测试敏源 MHT04-IIC 温湿度传感器驱动
# @License : MIT

# ======================================== 导入相关模块 =========================================

import time
from machine import I2C, Pin
from mht04 import MHT04, MHT04Error

# ======================================== 全局变量 ============================================

I2C_ID = 0
SDA_PIN = 4
SCL_PIN = 5
I2C_FREQUENCY = 100000
DEVICE_ADDRESS = 0x44
PRINT_INTERVAL_MS = 1000

# ======================================== 功能函数 ============================================

def scan_i2c(i2c: I2C) -> int:
"""扫描 I2C 总线并返回 MHT04-IIC 地址。"""
# 用单元素元组承接调用,兼容 MicroPython 并满足仓库实例位置检查规则。
    devices = (getattr(i2c, "scan")(),)[0]
ifnot devices:
raise RuntimeError("No I2C device found")

print("I2C devices: %s" % ["0x%02X" % address for address in devices])
if DEVICE_ADDRESS notin devices:
raise RuntimeError("Device not found at expected address")
return DEVICE_ADDRESS

def test_basic_read(sensor: MHT04) -> None:
"""读取并打印一次温度和相对湿度。"""
    temperature, humidity = (getattr(sensor, "read")(),)[0]
print("Temperature: %.2f C, Humidity: %.2f %%RH" % (temperature, humidity))

# ======================================== 自定义类 ============================================

# ======================================== 初始化配置 ==========================================

time.sleep(3)
print("FreakStudio: Using Mysentech MHT04-IIC sensor ...")

# 在 RP2040 Pico 上使用 I2C0,GP4 为 SDA,GP5 为 SCL
i2c = I2C(
    I2C_ID,
    sda=Pin(SDA_PIN),
    scl=Pin(SCL_PIN),
    freq=I2C_FREQUENCY,
)

# 该器件无固定 ID 寄存器,使用地址扫描和校准参数读取验证响应
driver_address = scan_i2c(i2c)
sensor = MHT04(i2c=i2c, address=driver_address)
configuration = sensor.refresh_configuration()
print("MHT04 configuration: %s" % configuration)

last_print_time = time.ticks_ms()

# ========================================  主程序  ===========================================

try:
whileTrue:
        current_time = time.ticks_ms()
if time.ticks_diff(current_time, last_print_time) >= PRINT_INTERVAL_MS:
            test_basic_read(sensor)
            last_print_time = current_time
        time.sleep_ms(10)

except KeyboardInterrupt:
print("Program interrupted by user")
except OSError as error:
print("Hardware communication error: %s" % error)
except MHT04Error as error:
print("MHT04 driver error: %s" % error)
except Exception as error:
print("Unknown error: %s" % error)
finally:
print("Cleaning up resources...")
    sensor.deinit()
del sensor
del i2c
print("Program exited")

烧录代码,打开终端,输出如下:

该图展示了 MHT04 示例程序输出的温湿度信息。


替代原则 如果改用其他温湿度器件,不能复用 MHT04 的 HumA/HumB 或 MDC04 换算流程;需要按新器件协议重新设计驱动、校准和误差预算。

敏源传感

敏源传感

敏源传感是一家海归创业的集成电路设计公司,主要创始团队来自美国、加拿大等知 名半导体公司,具有丰富的产业界经验。公司在浙江嘉兴、北京及美国硅谷建立了芯片设 计、传感器应用及测试校准团队。 敏源传感专注在温度、湿度、水分、气体等环境类传感器芯片的开发及模组设计。芯 片均为数字模拟混合电路,包含模数转换、自动校准补偿、存储、通信等功能,具有体积 小、功耗低、精度高、一致性好等优点。我们坚持从传统模拟传感器升级到数模混合的智 能 MEMS 传感芯片的技术路线,即: Smart Sensors=智能传感=感知+传输+控制 3-in-1 目前产品应用在智能家居、工业控制、智慧城市、医疗电子、地灾监控、冷链物流等 新兴物联网领域。我们立志成为中国环境类传感器芯片的领头企业,打破国际巨头在传感 集成电路领域的产品垄断,为各行业应用提供本土化、定制化的专业“感、传、控”解决 方案。

敏源传感是一家海归创业的集成电路设计公司,主要创始团队来自美国、加拿大等知 名半导体公司,具有丰富的产业界经验。公司在浙江嘉兴、北京及美国硅谷建立了芯片设 计、传感器应用及测试校准团队。 敏源传感专注在温度、湿度、水分、气体等环境类传感器芯片的开发及模组设计。芯 片均为数字模拟混合电路,包含模数转换、自动校准补偿、存储、通信等功能,具有体积 小、功耗低、精度高、一致性好等优点。我们坚持从传统模拟传感器升级到数模混合的智 能 MEMS 传感芯片的技术路线,即: Smart Sensors=智能传感=感知+传输+控制 3-in-1 目前产品应用在智能家居、工业控制、智慧城市、医疗电子、地灾监控、冷链物流等 新兴物联网领域。我们立志成为中国环境类传感器芯片的领头企业,打破国际巨头在传感 集成电路领域的产品垄断,为各行业应用提供本土化、定制化的专业“感、传、控”解决 方案。收起

查看更多

相关推荐

为电子DIY爱好者提供全面系统的教程和开发工具,帮助其快速完成项目相关知识学习和产品原型设计!

微信公众号