5 分钟快速实操!MER-MCP1081 非接触液位+MicroPython 隔着桶壁读取连续水位
2026/6/6 9:36:29 网站建设 项目流程

引言

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

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

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

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

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

一、模块简介

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

简短来说,MER 电子水尺液位传感器:

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

二、主要芯片介绍

2.1 芯片概述

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

2.2 引脚定义

2.3 功能框图

无。

2.4 性能参数

2.5 参考电路

无。

2.6 芯片配置

无。

2.7 通信接口和相关协议

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 格式),确认后即可建立通信连接。
  2. ​导入传感器配置文件:​软件支持导入各传感器型号对应的.mbp预配置文件,文件中已预设好寄存器地址、数据格式与别名定义,无需手动配置寄存器。直接在软件中打开对应传感器的.mbp文件,即可自动加载所有参数,连接成功后将直接显示传感器的实时检测数据(如尘 / 雨 / 霜厚度值、状态标志位等)。
  3. ​数据日志记录(可选):​如需保存测试数据,可通过「Setup」-「Excel Log」功能配置日志记录规则,支持按固定周期或每次数据更新记录数据,并可设置记录条数上限,方便后续对传感器数据进行分析与验证。

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

3.3 应用实验

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

这里,我们首先使用HY2.0-4P连接线将模块通过XH2.54-4P 转接 HY2.0-4P 接口模块连接到GraftPort-RP2040开发板的UART0接口:

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

模块连线如下表所示:

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

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

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

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

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

点击复制本地安装命令:

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

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

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

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

# Python env : MicroPython v1.23.0 # -*- coding: utf-8 -*- # @Time : 2026/4/9 下午6:02 # @Author : hogeiha # @File : main.py # @Description : MER电子水尺传感器初始化、参数读取与实时数据循环采集程序 # ======================================== 导入相关模块 ========================================= # 导入MER电子水尺传感器驱动类 from mer import MER # 导入时间模块,用于延时控制 import time # ======================================== 全局变量 ============================================ # 传感器Modbus从机地址 SLAVE_ADDR = 1 # 使用的UART端口编号 UART_ID = 0 # UART发送引脚 TX_PIN = 16 # UART接收引脚 RX_PIN = 17 # ======================================== 功能函数 ============================================ # ======================================== 自定义类 ============================================ # ======================================== 初始化配置 =========================================== time.sleep(3) print("FreakStudio: MER Water Level Sensor Running") # 实例化MER电子水尺传感器对象 sensor = MER(SLAVE_ADDR, UART_ID, TX_PIN, RX_PIN) # 打印传感器初始化完成信息 print("=" * 50) print("MER Electronic Water Level Sensor Initialized") print("=" * 50) # ======================================== 主程序 ============================================ # 读取并打印设备基础只读信息 print("\n【Device Basic Info】") # 读取传感器节点地址 print(f"Current Node Address: {sensor.read_node_address()}") # 读取硬件版本号 print(f"Hardware Version: {sensor.read_hw_version()}") # 读取固件版本号 print(f"Firmware Version: {sensor.read_fw_version()}") # 读取设备唯一识别码 print(f"Device UID: {sensor.read_device_uid()}") # 读取并打印传感器可读写配置参数 print("\n【Configuration Parameters】") # 读取滤波次数参数 print(f"Filter Count: {sensor.read_filter_count()}") # 读取低功耗模式使能状态 print(f"Low Power Enable: {sensor.read_low_power_enable()}") # 读取参考液位1数值 print(f"Reference Level 1: {sensor.read_ref_level1()} mm") # 读取参考液位2数值 print(f"Reference Level 2: {sensor.read_ref_level2()} mm") # 读取参考液位3数值 print(f"Reference Level 3: {sensor.read_ref_level3()} mm") # 修改配置参数示例代码,按需启用 # 修改滤波次数为10次 # sensor.write_filter_count(10) # 开启低功耗工作模式 # sensor.write_low_power_enable(1) # 修改传感器节点地址为2 # sensor.write_node_address(2) # 传感器校准操作示例代码,按需启用 # print("\n【Start Calibration】") # sensor.write_ref_level1(30) # sensor.write_calib_switch(1) # time.sleep(1) # sensor.write_ref_level2(70) # sensor.write_calib_switch(2) # time.sleep(1) # sensor.write_ref_level3(100) # sensor.write_calib_switch(3) # print("Calibration Completed") # 循环读取传感器实时采集数据 print("\n【Real-time Data Reading Loop】") while True: ​ # 读取液位数据 ​ level = sensor.read_level() ​ # 读取温度数据 ​ temp = sensor.read_temp() ​ # 读取电容数据 ​ cap = sensor.read_capacitance() ​ # 读取比值数据 ​ ratio = sensor.read_ratio() ​ # 读取频率数据 ​ freq = sensor.read_frequency() ​ # 打印实时采集的各类数据 ​ print(f"Level: {level} mm | Temperature: {temp} ℃ | Capacitance: {cap} pF | Ratio: {ratio} | Frequency: {freq} MHz") ​ # 每隔1秒读取一次数据 ​ time.sleep(1)

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

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

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询