5 分钟快速上手!MicroPython+MWFD 气泡探测器实现非接触识别管路空管 / 气泡

引言

image.pngimage.png在饮水机、咖啡机、医疗输液、工业流体输送等场景,管道内的气泡或断流检测是保障设备安全与稳定运行的关键环节。传统接触式气泡检测方案,不仅易被液体污染、腐蚀,还会因液体电导率差异、管壁厚度等因素出现误判,影响设备的正常工作。

传统接触式气泡检测方案,始终存在难以克服的行业难题:

  • 易污染、易腐蚀​:电极需直接与液体接触,长期使用会被水垢、杂质污染,或被腐蚀性液体腐蚀,导致检测失灵;
  • 受液体与管道影响大​:液体电导率差异、管壁材质与厚度变化,都会影响检测结果,误判率高;
  • 安装限制多​:需在管道上开孔安装电极,破坏管道完整性,且适配性差,难以兼容不同管径的管道;
  • 响应速度慢​:无法快速识别气泡,难以及时触发断流保护,存在安全隐患。

而 MWFD 水流气泡探测器,正是针对这些痛点设计的新一代非接触式检测方案。

image.png

MWFD 的核心优势—精准、快速、非接触的气泡检测:

  • ​非接触式检测,彻底杜绝污染与腐蚀:​MWFD 采用高频电容检测技术,无需与管道内的液体直接接触,从根源上避免了电极被污染、腐蚀的问题;探测器可穿透塑料、硅胶等非金属管壁检测,无需破坏管道结构,安装便捷,且适配不同材质的管道。
  • ​强穿透 + 高抗干扰,复杂场景也能稳定输出:​传感器穿透性强,可有效克服水管材质不同、管壁较厚、不同液体电导率差异等问题;内置微处理器与智能算法,支持参数校准、温度补偿和报警阈值配置,能有效滤除环境干扰,稳定区分管道内的空气与液体,不受水质、液体成分影响。
  • 超快响应速度,实时保护设备​安全:​测量响应速度最高可达 20ms 一次检测周期,配合微处理器算法可在 500ms 内快速区分管道内的状态,当检测到空气 / 气泡时,可输出高电平报警信号,及时触发断流保护,避免设备干烧、空转等风险,保障设备运行安全。
  • ​多管径适配 + 易集成,适配多类场景:​探测器提供多种弹簧内径规格,可适配 3.5mm~12.5mm 不同管径的管道;模组结构小巧,安装便捷,支持快速集成到各类流体输送设备中,是饮水机、咖啡机、医疗设备、工业流体系统的理想气泡检测方案。

可以用于:

  • 小家电场景:饮水机​​ / 咖啡机的断流 / 气泡防护:​在饮水机、咖啡机等设备中,MWFD 可安装在输水管道上,实时检测水流中的气泡与断流情况。当管道内出现气泡或断流时,探测器能快速识别并输出信号,触发设备的防干烧保护,避免加热管因无水空转损坏;非接触式设计不会被水垢污染,长期使用也能保持稳定的检测性能,为设备提供可靠的安全防护。
  • 医疗设备场景:输液 / ​流体​输送的气泡监测:​在医疗输液设备中,MWFD 可安装在输液管路上,非接触式检测管道内的气泡,避免气泡进入人体造成安全隐患;探测器适配不同管径的输液管,且不与药液接触,不会污染药液,同时快速的响应速度能及时识别气泡,为医疗设备的安全运行提供保障。
  • ​工业流体场景:管道流体的连续监测:​在工业流体输送系统中,MWFD 可用于检测管道内的断流、气泡情况,防止泵体空转、管道堵塞等问题;探测器不受液体电导率、杂质影响,能在复杂的工业环境中稳定工作,为流体系统的自动化控制与安全监测提供可靠的数据支持。

一、模块简介

水流气泡探测器 MWFD(Minyuan Water Flow Detector)通过高频电容检测芯片测量管内液体介电常数的变化:不同电容值反映管内是空气还是液体,当检测到空气时,输出高电平进行报警。传感器穿透性强,可以有效克服水管材质不同、管壁较厚、不同液体电导率差异等问题。传感器测量响应快,最高可达 20ms 一次检测周期,配合微处理器算法可在 500ms 内区分出当前状态。内置的微处理器芯片,可进行参数校准,温度补偿,检测算法,报警阈值配置等。
image.png

image.png

image.png

该图展示了 MWFD 的产品简介、模块外观和主要应用场景。

  • 通过高频电容检测管内介电常数变化,区分空气与液体状态;
  • 检测到空气、气泡或缺液时输出高电平报警;
  • 穿透性强,可适配不同管材、较厚管壁及不同液体电导率场景;
  • 适用于净饮机、咖啡机、奶茶机、输液管路、水泵抽液等场景。

二、主要芯片介绍

2.1 芯片概述

模块整体基于高频电容检测原理工作,通过测量管内介电常数变化识别水流、气泡和缺液状态,并输出对应的数字电平信号。

2.2 引脚定义

image.png

image.png

2.3 功能框图

无。

2.4 性能参数

image.png

image.png

image.png

2.5 参考电路

无。

2.6 芯片配置

无。

2.7 通信接口和相关协议

该模块采用 DIO 高低电平输出,不涉及 UART / I2C / SPI 等串行通信协议。输出高电平表示检测到气泡或缺液报警,输出低电平表示液体状态正常。

三、电路工程

3.1 电路源工程

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

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

3.2 模块使用说明

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

将被测管路同时穿过模块的两个弹簧电极,为保证检测灵敏度,需满足:

  • 弹簧内径与管路外径尽量匹配,避免两者间存在过大间隙,间隙过大会降低检测精度
  • 弹簧电极不可直接接触桌面、金属等导电物体,防止引入干扰
  • 安装时避免管路与弹簧发生相对位移,减少机械振动带来的检测波动

image.png

模块支持两种使用场景的连接:

  • 开发板调试​:将 MWFD 接入 MCSK-MWFD 校准开发板的 3pin 插座,开发板通过 USB 连接 PC 端,用于校准与数据调试
  • 主控集成​:模块可直接接入用户主控 IO 口,通过输出电平判断检测状态,核心接口定义:

image.png

首次使用、更换管路 / 液体、检测出现偏差时,需执行空载校准消除系统误差,步骤如下:
image.png

image.png

image.png

完成空载校准后,查看下面章节的内容,进入正常使用模式。

在使用时,还需要注意:

  • ​干扰源防护:​人体或金属物体触碰 / 接近传感器 1cm 以内时,会对电容检测造成干扰,导致误判,安装时需预留足够的无干扰空间。
  • ​校准维护:​更换管路、液体类型,或检测环境(温度、湿度)发生较大变化时,需重新执行空载校准,保证检测精度。
  • ​安装稳定性:​弹簧与管路需保持贴合状态,避免长期使用中出现松动、位移,影响检测灵敏度。
  • ​环境适配:​避免在高温、强电磁干扰环境中使用模块,防止高频检测信号受到影响,导致检测异常。

常见问题排查:

image.png

3.2.2 Modbus Poll 的使用

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

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

image.png

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

  1. ​串口连接配置:​将传感器通过 USB 转串口模块接入电脑后,打开 Modbus Poll 软件,点击菜单栏「Connection」-「Connect」,在弹出窗口中选择传感器对应的 COM 端口号,并配置与传感器匹配的串口参数(波特率、数据位、校验方式、停止位,本系列传感器默认采用 9600 Baud、8N1 格式),确认后即可建立通信连接。
  2. ​导入传感器配置文件:​软件支持导入各传感器型号对应的 .mbp 预配置文件,文件中已预设好寄存器地址、数据格式与别名定义,无需手动配置寄存器。直接在软件中打开对应传感器的 .mbp 文件,即可自动加载所有参数,连接成功后将直接显示传感器的实时检测数据(如尘 / 雨 / 霜厚度值、状态标志位等)。
  3. ​数据日志记录(可选):​如需保存测试数据,可通过「Setup」-「Excel Log」功能配置日志记录规则,支持按固定周期或每次数据更新记录数据,并可设置记录条数上限,方便后续对传感器数据进行分析与验证。

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

3.3 应用实验

这里,我们使用 GraftPort-RP2040 开发板进行测试,水流气泡探测器 MWFD 上使用 DIO 接口与主控进行通信。

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

ae86fd9b027983eb37d52db510efecfe.png

模块连线如下表所示:

开发板引脚 模块引脚 说明
引脚 16 MTX UART 数据传输线,对应开发板的发送引脚
GND GND 地线
VCC VCC
电源线,PH2.0-3P 转 Grove 转接板带 5V 转 3.3V 电路,
水流气泡探测器 MWFD 需要 3.3V 供电

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

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

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

image.png

该图展示了 mwfd_driver 的搜索结果,可用于确认驱动名称。

点击复制本地安装命令:
image.png

该图展示了 MWFD 驱动安装命令的复制界面,便于本地快速安装。

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

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

导入水流气泡探测器 MWFD-MicroPython 驱动代码后,将下面 main.py 代码复制到我们的工程中:

# Python env   : MicroPython v1.23.0
# -*- coding: utf-8 -*-
# @Time    : 2026/4/3 下午2:30
# @Author  : hogeiha
# @File    : main.py
# @Description : MWFD水流气泡探测器中断与轮询示例程序

# ======================================== 导入相关模块 =========================================
from machine import Pin
from mwfd import MWFD
import time

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

# ======================================== 功能函数 ============================================
def on_state_change(state):
​    """
​    中断回调函数,当传感器状态变化时自动触发
​    Args:
​        state (bool): True表示气泡/缺液,False表示正常液体

​    Raises:
​        无

​    Notes:
​        该函数由中断服务程序调用,应保持简洁快速

​    ==========================================
​    Interrupt callback function, automatically triggered when sensor state changes
​    Args:
​        state (bool): True for bubble/lack of liquid, False for normal liquid

​    Raises:
​        None

​    Notes:
​        This function is called by interrupt service routine, keep it short and fast
​    """
​    # 根据状态打印不同信息
​    if state:
​        print("[Interrupt] Warning: Bubble or lack of liquid")
​    else:
​        print("[Interrupt] Normal liquid")

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

# ======================================== 初始化配置 ===========================================
# 等待3秒让系统稳定
time.sleep(3)
# 打印启动标识
print("FreakStudio: MWFD sensor demo started")

# 初始化传感器引脚(GPIO15,输入模式,内部下拉)
sensor_pin = Pin(15, Pin.IN, Pin.PULL_DOWN)

# 创建MWFD驱动实例
sensor = MWFD(sensor_pin)

# 启用中断,绑定回调函数
sensor.irq(callback=on_state_change)

# ========================================  主程序  ============================================
# 主循环:主动轮询读取传感器状态并打印
while True:
​    # 读取当前状态
​    state = sensor.read()
​    # 根据状态输出信息
​    if state:
​        print("[Polling] Warning: Bubble or lack of liquid")
​    else:
​        print("[Polling] Normal liquid")
​    # 延时200毫秒
​    time.sleep(0.2)

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

image.png

该图展示了 MWFD 示例程序的中断与轮询输出效果,可直观看到状态变化反馈。

相关资料

获取相关资料,查看:https://f1829ryac0m.feishu.cn/wiki/space/7636611910099602383?ccm_open_type=lark_wiki_spaceLink&open_tab_from=wiki_home

faeb2ed0175f5244b49e3550fc37b303.png

eb6b459ccb3f99726a2fd06d98170352.png

e56a916b375ed771aab3187baee81773.png

posted @ 2026-06-05 19:58  FreakStudio  阅读(0)  评论(0)    收藏  举报