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

扫地机器人中的柔性湿度传感器HDS概述和快速应用

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

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

扫地机器人、洗地机、地毯清洗机等清洁设备中,滚刷、拖布、地毯等吸水材料的干湿状态,会直接影响清洁效果、烘干时间和设备使用体验。材料过湿,容易产生滴水、异味和霉变;烘干不足,会造成细菌滋生和二次污染;烘干时间过长,又会增加能耗、噪声及材料老化风险。然而,吸水材料内部的水分分布通常并不均匀,仅凭运行时间、表面温度或人工触摸,很难准确判断其真实干湿程度。

传统干湿判断方法各有局限:固定时间烘干无法适应材料厚度、初始含水量和环境温度的变化;通过电机负载或温度间接推算,容易受到摩擦力、结构差异及环境变化干扰;接触式电极长期处于潮湿、污渍环境中,可能出现腐蚀、污染和数据漂移;普通空气湿度传感器测量的是周围空气相对湿度,无法直接反映滚刷、拖布等材料内部的含水变化。HDS 采用电容式非接触检测方案,可隔着塑料等非金属介质感知材料介电特性的变化,连续输出电容数据,并结合差分参比、温度补偿和软件算法,为材料干湿分档、趋势判断及烘干控制提供可靠依据。

在扫地机器人和洗地机的滚刷检测场景中,HDS 可贴装在滚刷附近的非金属壳体内侧,利用柔性 FPC 结构适配圆柱曲面,在不直接接触污水和刷毛的情况下感知滚刷干湿变化。设备可根据连续电容数据判断滚刷由湿到干的变化趋势,并结合实际样机标定建立干、微湿、中湿、较湿、湿等档位,为清洁过程监测、烘干启停和异常状态识别提供数据支持,减少固定时间控制带来的烘干不足或能源浪费。

建议绘制剖面图:外层为滚刷,中间为 0~5 mm 的塑料壳体或空气间隙,内侧贴装 HDS 柔性传感器;用电场线表示传感器隔着壳体感知滚刷含水变化,并标出 VDD、GND、TX、RX 四线接口。

在拖布、清洁布和地毯等平面或柔性吸水材料的检测场景中,HDS 可安装在承托板、清洁通道或检测工位的非金属结构背面,对材料吸水、挤水和烘干过程中的电容变化进行连续采集。针对不同材质、厚度和密度,可分别建立干燥基线与湿度档位,使设备能够识别材料状态变化,而不必让传感器直接接触污水、清洁剂或纤维表面。这种安装方式结构简单,也便于在不同清洁耗材和设备平台上进行适配。

在烘干基站和产品测试场景中,HDS 还可用于记录材料完整的吸水—挤水—烘干变化过程。传感器通过 UART 接口和 Modbus-RTU 协议输出电容值、通道计数值、差值及温度等数据,上位机可使用 Modbus Poll 进行实时观察和日志保存。研发人员可据此分析材料、安装间隙、结构曲率、环境温度及电机运行干扰对检测结果的影响,建立更适合实际产品的校准参数和控制阈值,从而提升干湿判断的一致性与可重复性。

一、模块简介

HDS 是敏源传感面向清洁行业开发的湿度检测传感器,核心采用十通道多模式宽频数字电容处理器 MCP1081S,集成电容测量、信号采集、微处理器算法、温度补偿及接口通信等功能。传感器采用 FPC 柔性结构,可适配不同弧度的圆柱曲面安装,并可穿透塑料等非金属介质完成非接触式干湿检测。

    可量化不同材质的干湿程度变化,对含水量变化具有较高灵敏度;采用差分电容检测原理,并设置环境参比通道,抗干扰能力较强;内置 MCU 处理功能,支持校准、平均次数和通道参数配置;芯片集成温度检测,可用于温度补偿;供电和通信接口简单,适合嵌入设备进行连续检测。

二、主要芯片介绍

2.1 芯片概述

MCP1081S 是 HDS 的电容测量与数据处理核心。其多通道宽频电容测量能力配合专用感知电极和软件算法,可降低塑料壁、空气间隙、电机驱动噪声及湿度分布不均等因素的影响。HDS 对外提供电容值、通道计数值、频率、温度、差值及版本信息等寄存器数据,便于上位机或主控进行趋势分析和分档判断。

2.2 引脚定义

2.3 功能框图

HDS 的信号链可概括为:FPC 差分感知电极与环境参比通道感知介电特性变化,MCP1081S 完成多通道电容采样与频率测量,片内 MCU 进行校准、平均、差值计算和温度补偿,最终通过 UART/Modbus-RTU 向主控输出连续数据。当前产品手册未提供独立的图形化功能框图,本节依据手册所述功能整理。

2.4 性能参数

项目 规格
典型精度 分 5 档检测,针对滚刷、拖布等清洁耗材的典型吸水状态
检测分辨率 1% 湿度变化可引起连续电容变化
感应距离 0mm~5mm 非金属介质
通信接口 UART,Modbus 协议数据输出
供电电压 2V~5V
峰值工作功耗 4.12mA@5V
工作温度范围 -40℃~+85℃
产品尺寸 80mm × 30mm × 1mm(长 × 宽 × 高)

2.5 参考电路

基础接线为 VDD、GND、TX、RX 四线:VDD 接 2V~5V 电源,GND 共地,HDS 的 TX 接主控 RX,HDS 的 RX 接主控 TX。实际产品设计应结合主控 IO 电平线缆长度和电源噪声完成接口兼容性验证;完整电气设计以敏源传感后续提供的硬件资料为准。

2.6 芯片配置

HDS 可通过 Modbus 寄存器配置设备地址、平均次数、校准指令和两路通道校准参数。设备出厂默认地址为 0x01;平均次数范围为 0~30。写配置前应先读取原值并留存,写入后重新读取确认。校准操作应在安装位置固定、被测材料状态明确且环境稳定后进行,避免把结构装配变化误当作湿度基线。

2.7 通信接口和相关协议

通信采用 UART 上承载 Modbus-RTU。基本参数为 9600bps、8 数据位、无奇偶校验、1 停止位(8N1),错误校验采用 CRC-16/MODBUS。设备地址在同一通信网络中必须唯一,出厂默认 0x01。支持功能码 0x03 读取保持寄存器、0x06 写单个寄存器;16 位寄存器数据高字节在前,CRC 低字节在前、高字节在后。

读取温度示例:向地址 0x01 查询起始地址 0x0007 的 1 个寄存器,请求帧为 01 03 00 07 00 01 35 CB。温度寄存器为有符号数并放大 10 倍,例如原始值 287 对应 28.7℃。

读取电容示例:查询起始地址 0x0008 的 2 个寄存器,请求帧为 01 03 00 08 00 02 45 C9。C1、C2 电容值均放大 1000 倍,例如原始值 7704 对应 7.704pF。

2.8 寄存器定义

三、电路工程

3.1 电路源工程

获取电路源工程,请查看下面链接:
https://mysentech.com/productinfo/5921748.html

3.2 模块使用说明

3.2.1 安装、接线与初始检查

    将 FPC 感知区域紧贴被测位置或隔着 0mm~5mm 非金属介质固定,避免金属遮挡、松动和气隙变化;按 VDD、GND、TX、RX 接线,确认主控与 HDS 共地并交叉连接收发线;以 2V~5V 供电,上电后先读取设备地址、软件版本、硬件版本和温度,确认通信与数据缩放正确;在明确的干基准状态下完成校准,再用代表性湿度样品验证 C1、C2、计数值和差值随含水状态变化的方向与重复性;不同材料、厚度和安装曲率应分别建立基线与档位阈值,避免直接套用其他结构的参数。

3.2.2 Modbus Poll 的使用

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

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

通过 USB 转 UART 模块连接电脑后,在 Modbus Poll 中选择「Connection」-「Connect」,选择对应串口,并配置为 9600 Baud、8 Data Bits、None Parity、1 Stop Bit、RTU。连接成功后,可按寄存器表读取实时数据。

如需保存测试数据,依次选择「Setup」-「Excel Log」。选择 Each read 可记录每次更新;选择 Select 并将 Rate 设为 1s,可每秒记录一次。手册示例将 Stop after 设为 1048570 条,确认后点击「OK」开始记录。

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

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

导入传感器配置文件:软件支持导入各传感器型号对应的 .mbp 预配置文件,文件中已预设好寄存器地址、数据格式与别名定义,无需手动配置寄存器。直接在软件中打开对应传感器的 .mbp 文件,即可自动加载所有参数,连接成功后将直接显示传感器的实时检测数据(如尘 / 雨 / 霜厚度值、状态标志位等)。

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

以上为通用的上位机基础操作,不同传感器型号的 .mbp 预配置文件、具体寄存器定义、特殊配置细节,可参考「七、相关资料」中内容。

3.3 应用实验

建议以目标清洁耗材和真实装配结构开展五档湿度标定实验:先记录完全干燥状态的 C1、C2、两通道计数值、差值与温度,再按预设含水梯度逐级加湿并稳定后采样;每个档位进行多次干湿循环,统计均值、波动和档位间隔。随后加入电机运行、结构振动、不同环境温度以及 0mm~5mm 非金属隔离层等工况,验证算法的抗干扰能力和温度补偿效果。量产阈值应以目标材料、装配公差和实际工况数据为依据。

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

该图展示了 HDS 温湿度检测 模块与 GraftPort-RP2040 开发板的 UART 接线方式。

模块连线如下表所示:

开发板引脚 模块引脚 说明
引脚 16 MTX UART 数据传输线,对应开发板的发送引脚
引脚 17 MRX UART 数据传输线,对应开发板的接收引脚

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

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

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

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

点击复制本地安装命令:

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

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

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

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

# Python env   : MicroPython v1.23.0
# -*- coding: utf-8 -*-
# @Time    : 2026/08/21 16:00
# @Author  : December
# @File    : main.py
# @Description : 敏源 HDS 湿度检测传感器数据采集示例
# @License : MIT

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

import time
from machine import Pin
from umodbus.serial import Serial as ModbusRTUMaster
from hds import HDS

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

PRINT_INTERVAL_MS = 1000

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

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

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

time.sleep(3)
print("FreakStudio: HDS Humidity Detection Sensor Initialization")

# RP2040 UART0:GP16 为 TX,GP17 为 RX。
modbus = ModbusRTUMaster(
    uart_id=0,
    baudrate=9600,
    data_bits=8,
    stop_bits=1,
    parity=None,
    pins=(Pin(16), Pin(17)),
)

# HDS 默认 Modbus 地址为 0x01,失败后重试两次。
sensor = HDS(
    host=modbus,
    address=0x01,
    retries=2,
    retry_delay_ms=50,
)

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

last_print_time = time.ticks_ms() - PRINT_INTERVAL_MS

try:
    print("Device: %s" % sensor.read_device_info())
    while True:
        current_time = time.ticks_ms()
        if time.ticks_diff(current_time, last_print_time) >= PRINT_INTERVAL_MS:
            data = sensor.read_basic_measurements()
            print(
                "T={:.1f} C, C1={:.3f} pF, C2={:.3f} pF".format(
                    data["temperature_c"],
                    data["c1_pf"],
                    data["c2_pf"],
                )
            )
            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" % str(error))
except Exception as error:
    print("Unknown error: %s" % str(error))
finally:
    print("Cleaning up resources...")
    sensor.deinit()
    if hasattr(modbus, "_uart") and hasattr(modbus._uart, "deinit"):
        modbus._uart.deinit()
    del sensor
    del modbus
    print("Program exited")

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

该图展示了 HDS 示例程序输出部分,包含电容、湿度和压力电容状态信息

相关推荐

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

微信公众号