老式雨滴传感器怕灰误报?使用MicroPython+ CDS1081快速实现尘雨霜检测

引言

你有没有过这样的经历:智能浇灌系统误判小雨白跑一趟,自动关窗器被灰尘干扰失灵,外卖平台的降雨数据只能靠骑手肉眼判断?

长期以来,户外智能设备的 “环境感知” 一直是个老大难问题。传统的雨滴方案普遍存在明显短板:

image.png

  • “娇贵易损” 的电阻式传感器​:靠雨水导电判断 “是否下雨”,但金属电极长期暴露在户外,极易被灰尘、腐蚀、凝露影响,用久了就会失灵;且只能简单判断 “有雨 / 无雨”,无法区分雨量大小,更别说检测灰尘和结霜。

image.png

  • “成本高昂” 的光学式方案​:虽然精度稍高,但安装复杂、价格昂贵,还容易被遮挡物干扰,很难在消费级设备中普及。
  • 普遍抗干扰能力弱​:温度变化、电磁干扰都会导致误触发,让设备 “乱报天气”。

image.png

敏源推出的​电容式尘雨霜传感器 CDS1081​,正是为解决这些痛点而来的 “全能感知选手”。它是一款基于电容式感知的智能传感器,核心搭载自研的 MCP1081S 数字电容处理芯片 —— 简单来说,它靠 “物质介电常数变化” 来感知环境:当灰尘、雨水或霜覆盖在表面时,不同物质会改变电容数值,传感器就能通过这种变化,精准算出尘雨霜的厚度,相当于给设备装了一双 “会感知厚度的眼睛”。

其核心优势在于:

  • ​一芯测三态:尘、雨、霜全能感知:​它不仅能检测 0~10mm 高度的雨量,还能精准区分零星小雨、小雨、中雨、大雨、大暴雨多档雨位;同时可检测 0~5mm 的灰尘厚度,甚至识别结霜状态,一颗传感器搞定多种环境监测需求。
  • ​高精度 + 强抗干扰,告别 “乱报天气”:​电容分辨率高达 0.001pF,搭配内置 MCU 处理器,能有效滤除温度、凝露、电磁等干扰,哪怕是潮湿的回南天、温差大的户外环境,也能稳定输出数据,不会误触发设备动作。
  • ​穿透安装 + 低成本,集成超灵活:​支持穿透 0~3mm 的非金属介质安装,不用直接暴露在户外,搭配塑料外壳就能用,既保护传感器,又降低了防水设计难度;同时模组成本低,UART 接口简单易集成,消费级产品和工业设备都能轻松适配。
  • ​低功耗 + 宽温,户外环境也耐用:​工作电压 2V~5.5V,5V 下功耗仅 4mA,还支持 - 40℃~+85℃ 的宽温工作范围,从炎热的户外到寒冷的北方都能稳定运行。

可以用于以下场景:

image.png

  • 🏠 智能家居:让控制更 “懂天气”

    • 自动关窗器​:不用再担心出门下雨忘关窗,传感器检测到降雨就能自动联动关窗,还能根据雨量大小调整逻辑 —— 比如零星小雨不触发,大雨才执行动作。
    • 智能浇灌系统​:根据实时雨量调整浇灌计划,雨天自动暂停,晴天按需补水,既节水又省心,告别 “固定时间浇水” 的粗放模式。
  • 🛵 户外出行:让调度更智能

    • 外卖 / 快递电瓶车​:安装传感器后,能回传不同区域的降雨数据,平台可据此优化配送调度,骑手也能提前预判路况,减少雨天配送风险。

image.png

  • 🏭 工业与设备:让维护更省心
    • 户外工业设备 / 空调外机​:传感器检测到灰尘厚度超标时,可自动联动清洗模式,减少设备故障概率,降低人工维护成本。
    • 清洁设备尘盒​:扫地机器人搭配这款传感器,能实时检测灰尘厚度,提醒用户及时清理,甚至自动调整清扫模式,避免尘盒堵塞影响清洁效果。

从智能家居到户外出行,从工业设备到清洁电器,电容式尘雨霜传感器 CDS1081 用一颗小小的电容式传感器,解决了户外设备 “感知环境” 的大难题,让智能设备不再靠 “猜” 工作,而是真正读懂雨、尘、霜的变化,为各种场景提供可靠的智能控制方案。

一、模块简介

image.png

该图展示了 CDS 模块的实物外观,可直观看到传感区域、板形尺寸和整体结构形式。

二、主要芯片介绍

2.1 芯片概述

敏源十通道多模式宽频数字电容处理器芯片 MCP1081S 利用有尘雨霜时介电常数的变化检测尘雨霜厚度变化,尘雨霜厚度与电容数值成正比。

2.2 引脚定义

image.png

该图给出了模块引脚定义,可用于确认电源与串口信号的连接关系。

2.3 功能框图

无。

2.4 性能参数

image.png

image.png

2.5 参考电路

2.6 芯片配置

无。

2.7 通信接口和相关协议

image.png

image.png

2.6 寄存器定义

image.png

2.8 PCB 布线注意事项

无。

三、电路工程

3.1 电路源工程

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

https://www.mysentech.com/productinfo/3168524.html

3.2 模块使用说明

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

该模块使用前,按照需要搭建测试环境:

  • 常规测试:室温 25℃±5℃,湿度 40%~60%,无强电磁干扰、无振动的室内环境
  • 环境测试:高低温箱,可模拟 - 40℃~+85℃ 温度环境

这里,在测试时,我们利用普通纸片、清水就能模拟灰尘、结露、雨水场景:简单来说,就是用不同厚度纸片覆盖感应面模拟积尘,滴加少量清水模拟雨霜凝露,观察数值是否随遮挡、水层厚度平稳线性变化。

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 开发板进行测试,电容式尘雨霜传感器 CDS 上使用 UART 接口与主控进行通信。

这里,我们首先使用 HY2.0-4P 连接线将电容式尘雨霜传感器 CDS 通过 XH2.54-4P 转接 HY2.0-4P 接口模块连接到 GraftPort-RP2040 开发板的 UART0 接口:

5303f05211ab1affec52e0268a5bed1d.png

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

模块连线如下表所示:

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

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

image.png

该图演示了在 uPyPI 平台中查找传感器驱动包的操作入口。

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

image.png

该图展示了 cds1081_driver 的搜索结果,用于确认驱动包名称与版本。

点击复制本地安装命令:

image.png

该图展示了复制本地安装命令的界面,方便快速完成驱动部署。

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

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

导入电容式尘雨霜传感器 CDS-MicroPython 驱动代码后,将下面 main.py 代码复制到我们的工程中:

# Python env   : MicroPython v1.23.0
# -*- coding: utf-8 -*-
# @Time    : 2025/9/8 下午4:52
# @Author  : hogeiha
# @File    : main.py
# @Description : CDS1081雨量传感器数据读取与阈值配置

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

import time
from cds1081 import CDS1081

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

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

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

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

# 等待系统稳定
time.sleep(3)
# 输出初始化完成提示
print("FreakStudio: CDS1081 sensor initialized")

# 创建CDS1081传感器对象,指定从机地址、UART ID、TX引脚和RX引脚
sensor = CDS1081(slave_addr=1, uart_id=0, tx_pin=16, rx_pin=17)

# 设置电容校准值,扩大1000倍,对应6pF
sensor.set_calibration(6000)
# 设置报警阈值
sensor.set_alarm_threshold(40000)
# 设置清除阈值
sensor.set_clear_threshold(20000)

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

# 无限循环读取传感器数据
while True :
​    # 打印节点地址
​    print("Node address:", sensor.get_node_address())
​    # 打印雨量状态
​    print("Rain status:", sensor.get_rain_status())
​    # 打印温度值
​    print("Temperature:", sensor.get_temperature(), "C")
​    # 打印电容值
​    print("Capacitance:", sensor.get_capacitance(), "pF")
​    # 打印Count0值
​    print("Count0 value:", sensor.get_count0())
​    # 打印校准理想值
​    print("Calibration ideal value:", sensor.get_calibration_value(), "pF")
​    # 打印报警阈值
​    print("Alarm threshold:", sensor.get_alarm_threshold())
​    # 打印清除阈值
​    print("Clear threshold:", sensor.get_clear_threshold())

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

image.png

该图展示了程序运行后的串口输出结果,可看到节点地址、状态和温度等信息。

image.png

我们可以看到,对 CDS 多次喷水后状态梯度呈现明显变化:

image.png

相关资料

获取相关资料,查看: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 15:29  FreakStudio  阅读(2)  评论(0)    收藏  举报