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

无接触式电子水尺液位传感器模组MER-MCP1081快速上手

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

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

引言

在蒸烤箱水箱、扫地机基站、咖啡机等消费场景,或是城市内涝、工业设备等户外场景,液位检测的稳定性与精准度,直接影响设备的使用体验与安全。但传统的浮子式、光电式液位方案,始终摆脱不了 “易卡滞、易误判、易腐蚀” 的痛点,让设备的液位控制频频 “掉链子”。

传统液位方案各有局限:浮子式易被水垢粘连卡滞,仅支持单点液位检测;光电式易被污渍、水汽遮挡,误判率高且成本较高;接触式电极易受水质影响,腐蚀后数据漂移严重。而电容式方案凭借非接触设计、连续液位检测、结构简单、成本低的核心优势,完美适配各类场景:无需接触液体,不会被水垢污染;可实现从空到满的连续液位监测,支持精细化水量控制;模组结构简单,可直接贴装在容器外壁,安装便捷,同时成本远低于光电式方案,是消费级与工业级液位检测的优选方案。

在城市内涝、隧道积水、地下水水位监测等户外场景中,该模组可作为非接触式液位检测单元,配合雨量计实现降雨 - 积水 - 排水的全流程监测。它不受水体杂质、光照变化影响,能在复杂的户外环境下稳定工作,输出精准的液位数据,为城市内涝预警、排水调度提供可靠的数据支持,助力提升城市防汛管理的智能化水平。

在家电水箱场景中,传感器可直接贴装在水箱外壁,隔着容器壁完成液位检测,无需与液体接触,彻底避免水垢、油污对传感器的腐蚀或粘连。在蒸烤箱、扫地机基站、咖啡机等设备的水箱中,它能稳定输出连续液位数据,让设备精准判断水量,避免干烧或溢水;即便隔着 3mm 左右的容器壁与空气间隙,也能保持高灵敏度,完美适配家电的防水结构设计,为设备提供可靠的水量控制依据。

在宠物智能设备场景中,它不仅能用于饮水机的水箱液位检测,还可拓展至猫砂盆的接近感知、喂食器的余量检测。非接触的安装方式不会被宠物饮水的污渍污染,连续液位检测能精准反馈水量变化,低功耗设计也适配宠物设备的长续航需求,为宠物智能设备提供稳定、可靠的感知方案,让宠物饮水与喂食更智能。

一、模块简介

敏源 MER-MCP1081-260-26 电子水尺液位传感器,是一款基于电容式非接触测量原理的智能液位检测模组。它搭载自研的 MCP1081S 十通道多模式宽频数字电容处理芯片,通过感知液体介电常数的变化实现液位检测,无需与液体直接接触,更可隔着塑料、玻璃等非金属容器壁完成测量,彻底解决了接触式传感器易腐蚀、浮子式易卡滞、光电式易遮挡的行业难题。内置的温度补偿与抗干扰算法,能有效滤除水垢、水汽、温差带来的干扰,输出稳定的连续液位数据,为各类场景提供可靠的液位感知方案。

该图展示了 MER 电子水尺液位传感器的产品简介、外观及核心特性说明。

    可测量连续/分段液位变化,传感器电极面外侧标有刻度,可随时与实测值比较;添加温度补偿,补偿范围 0℃~+50℃;一体化可级联、易于多节点组网;添加校准参数寄存器,方便用户自行校准;安装简便,成本低。

二、主要芯片介绍

2.1 芯片概述

MER-MCP1081-260-26 采用十通道多模式宽频数字电容处理器芯片 MCP1081S,集电容测量、采集、温度感知与补偿、微处理器算法和接口通信于一体,可对非金属容器内部液位进行非接触式连续检测。

2.2 引脚定义

该图给出了 MER 模组与传感器的接口定义,可用于区分 UARTRS485电源引脚

2.3 功能框图

无。

2.4 性能参数

该图列出了 MER 模块的技术参数,包括量程、精度、供电和接口形式等信息。

2.5 参考电路

无。

2.6 芯片配置

无。

2.7 通信接口和相关协议

该图展示了 MER 模块采用的 Modbus-RTU 通信协议及基本串口参数。

2.8 寄存器定义

展示寄存器与校准点配置内容,适合高精度液位标定时参考。

三、电路工程

3.1 电路源工程

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

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

3.2 模块使用说明

3.2.1 模块测试环境搭建和注意事项

拿到模块时候,我们首先需要按照下面要求搭建测试环境:

可直接隔着透明塑料杯装水模拟液位场景,同时验证它的非接触穿透能力。

需要注意:

    传感器必须竖直安装,0 刻度对齐容器底部,背面要远离金属物体;安装时尽量贴紧非金属侧壁,防水款需做好线缆接头防护,供电电压严禁超过 5.5V,避免损坏模块。

接着,按照下面步骤进行校准:

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」功能配置日志记录规则,支持按固定周期或每次数据更新记录数据,并可设置记录条数上限,方便后续对传感器数据进行分析与验证。

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

3.3 应用实验

这里,我们使用 GraftPort-RP2040 开发板进行测试,MER-MCP1081-260-26 电子水尺液位上使用 UART 接口与主控进行通信。

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

模块连线如下表所示:

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

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

该图演示了在 uPyPI 中搜索 MER 驱动包的操作界面。

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

该图展示了 mcp_driver 搜索结果,便于确认安装目标驱动包。

点击复制本地安装命令:

该图展示了复制 MER 驱动安装命令的界面,方便快速部署测试环境。

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

mpremote mip install https://upypi.net/pkgs/mcp1081_driver/2.1.0

导入 MER-MCP1081-260-26 电子水尺液位传感器 -MicroPython 驱动代码后,将下面 main.py 代码复制到我们的工程中:

# Python env   : MicroPython v1.23.0
# -*- coding: utf-8 -*-
# @Time    : 2026/08/21
# @Author  : hogeiha
# @File    : main.py
# @Description : MER-MCP1081-260-26 electronic water-level sensor example
# @License : MIT

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

import time
from mer import MER
from umodbus.serial import Serial as ModbusRTUMaster

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

SLAVE_ADDR = 1
UART_ID = 0
TX_PIN = 16
RX_PIN = 17
BAUDRATE = 9600
PRINT_INTERVAL_MS = 1000
READ_ERROR_DELAY_MS = 500
STARTUP_RETRY_DELAY_MS = 1000

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

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

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

time.sleep(3)
print("FreakStudio: MER-MCP1081-260-26 water level sensor running")

host = ModbusRTUMaster(
    pins=(TX_PIN, RX_PIN),
    baudrate=BAUDRATE,
    data_bits=8,
    stop_bits=1,
    parity=None,
    uart_id=UART_ID,
)
sensor = MER(host, slave_addr=SLAVE_ADDR)

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

whileTrue:
try:
        node_address = sensor.read_node_address()
break
except RuntimeError as error:
print("Sensor not responding: %s" % error)
print("Retrying sensor startup...")
        time.sleep_ms(STARTUP_RETRY_DELAY_MS)

print("Node address: %d" % node_address)
print("Hardware version: %s" % sensor.read_hw_version())
print("Firmware version (raw): %d" % sensor.read_fw_version())
print("Device UID: %s" % sensor.read_device_uid())
print("Filter window: %d" % sensor.read_filter_count())
print("Fit mode: %d" % sensor.read_fit_mode())
print("Alarm levels (low, overflow): %s" % (sensor.read_alarm_levels(),))
print("Full level: %d mm" % sensor.read_full_level())
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:
try:
                data = sensor.read_measurements()
except RuntimeError as error:
print("Transient communication error: %s" % error)
                last_print_time = current_time
                time.sleep_ms(READ_ERROR_DELAY_MS)
continue
print(
"Level: %(level_mm)d mm | Temperature: %(temperature_c).1f C | "
"CAP: %(capacitance_pf).3f pF | SF: %(sf).3f | "
"Low: %(low_alarm)s | Overflow: %(overflow_alarm)s" % data
            )
            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 RuntimeError as error:
print("Driver error: %s" % error)
except Exception as error:
print("Unknown error: %s" % error)
finally:
print("Cleaning up resources...")
    sensor.deinit()
ifhasattr(host._uart, "deinit"):
        host._uart.deinit()
del sensor
del host
print("Program exited")

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

该图展示了 MER 示例程序的串口输出结果,可验证液位、温度、电容等参数读取正常。

这里,注意唤醒操作已经在我们的驱动库内置,开发者无需二次操作。

敏源传感

敏源传感

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

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

查看更多

相关推荐

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

微信公众号