你是不是也有过这样的烦恼:养的盆栽总因浇水不当烂根或旱死,家庭菜园也只能靠 “感觉” 判断浇水量?传统土壤含水率检测方案,要么是易腐蚀、数据漂移的针式电阻传感器,要么是成本高昂、需复杂校准的专业设备,很难在民用和小型场景普及。
敏源推出的低成本土壤温湿度传感器 MSE,正是为解决这些痛点而来的电容式智能检测模组 —— 它以高频电容感知技术,实现了低成本、高精度的土壤含水率与温度检测,为从家用盆栽到小型农业的各类场景,提供了可靠的土壤感知方案。
长期以来,土壤含水率检测一直面临 “不准、易坏、成本高” 的行业难题:
电阻式针状传感器:依靠土壤导电率判断含水率,极易受土壤盐分、温度影响,数据误差大;金属电极长期埋入土壤,还会被腐蚀氧化,用不了多久就会失灵。
专业电容式方案:虽精度较高,但成本高昂,且需复杂校准流程,不适合批量用于普通花盆、小型农场这类场景。
廉价非接触方案:大多只能做表面检测,无法穿透土壤感知内部真实湿度,数据参考价值极低。
而 MSE 的出现,正是用低成本的电容式感知技术,补上了这些方案的短板。
作为一款专为普及场景设计的土壤温湿度传感器,MSE 的优势完美匹配了民用与小型农业的需求:
高精度 + 强抗干扰,数据稳定可靠:
-
- 基于电容式高频介电常数测量原理,含水率与电容值成正比,电容分辨率高达 0.01pF;内置温度补偿算法,可抵消温度对电容测量的影响,搭配多种滤波算法,输出的含水率与温度数据不受土壤盐分、杂质干扰,还能根据不同土壤特性拟合转换,适配多种土壤类型。
低成本 + 易集成,适配多类设备:
宽温耐用 + 免维护,使用寿命更长:
- 工作温度范围 - 40℃~+85℃,能适应阳台、户外、大棚等不同环境;电容式非接触感知方式,避免了电极与土壤的直接接触,从根源上解决了腐蚀、氧化问题,无需频繁维护,使用寿命远超传统针式传感器。
很多人养不好绿植,核心问题就是无法准确判断土壤湿度。如图所示,MSE 可直接插入花盆土壤中,实时检测含水率与温度,通过设备或 APP 提醒用户浇水,精准匹配绿植需水需求;低成本的设计也支持批量用于多个花盆,是智能家居绿植养护设备的理想选择,彻底告别 “浇水玄学”。
在家庭菜园、小型农场或阳台菜园中,MSE 可批量部署在土壤中,实时监测含水率,配合自动灌溉系统实现按需浇水 —— 既避免了人工浇水的盲目性,又节约了水资源;非接触式的耐用设计,也能适应户外、大棚等复杂环境,无需频繁维护,让小型农业的精细化养护不再依赖人工经验。
在小区绿化、公园景观等场景中,MSE 可作为低成本土壤感知节点,批量部署在绿植土壤中,实时监测含水率,为园林养护提供数据支持,减少人工巡检成本;同时适配不同土壤类型与环境,实现从 “人工巡检” 到 “数据驱动” 的精细化养护升级。
一、模块简介
二、主要芯片介绍
2.1 芯片概述
传感器内嵌敏源高精度数字电容传感芯片、微处理器及算法,含水率 % 与电容值成正比,可以根据不同土壤特性 从电容值拟合转换。
2.2 引脚定义
2.4 性能参数
2.7 通信接口和相关协议
三、电路工程
3.1 电路源工程
获取电路源工程,请查看下面链接:
https://www.mysentech.com/productinfo/3096406.html
3.2 模块使用说明
3.2.1 模块测试环境搭建和注意事项
这里,我们需要先确认串口数据稳定无乱码,再将探头分别插入干土、湿土,观察含水率数值是否随土壤湿度线性变化;也可用手心 / 冰水测试温度读数变化,快速验证温湿度检测功能正常。
探头插入土壤时避免暴力硬插,防止损坏电极;供电电压严禁超过 5.5V;不要长期浸泡在水中,测试后擦干探头;需根据实际使用的土壤做校准,不同土壤的电容特性差异会影响读数准确性。
3.2.2 Modbus Poll 的使用
Modbus Poll 是一款通用型 Modbus 主站调试工具,适配本系列所有支持 Modbus-RTU 协议的电容式传感器,可快速实现传感器与电脑的串口通信调试、实时数据读取与日志导出,是验证传感器功能、采集测试数据的通用上位机工具。软件支持 Modbus RTU/ASCII/TCP/IP 协议,兼容多种寄存器类型与数据格式,操作流程对全系列传感器通用。
使用前需先完成软件安装与激活,可通过官方渠道下载安装包,首次打开可试用 30 天,也可输入注册码永久激活。硬件连接传感器与电脑后,打开软件点击「Connection」-「Connect」,在弹出窗口中配置串口参数(端口号、波特率、数据位 / 校验位 / 停止位,本系列传感器默认采用 9600 Baud、8N1 格式,具体以对应型号规格书为准),确认后即可建立通信连接。
以下为通用操作流程说明:
串口连接配置:
-
- 将传感器通过 USB 转串口模块接入电脑后,打开 Modbus Poll 软件,点击菜单栏「Connection」-「Connect」,在弹出窗口中选择传感器对应的 COM 端口号,并配置与传感器匹配的串口参数(波特率、数据位、校验方式、停止位,本系列传感器默认采用 9600 Baud、8N1 格式),确认后即可建立通信连接。
导入传感器配置文件:
软件支持导入各传感器型号对应的 .mbp 预配置文件,文件中已预设好寄存器地址、数据格式与别名定义,无需手动配置寄存器。直接在软件中打开对应传感器的 .mbp 文件,即可自动加载所有参数,连接成功后将直接显示传感器的实时检测数据(如尘 / 雨 / 霜厚度值、状态标志位等)。
数据日志记录(可选):
- 如需保存测试数据,可通过「Setup」-「Excel Log」功能配置日志记录规则,支持按固定周期或每次数据更新记录数据,并可设置记录条数上限,方便后续对传感器数据进行分析与验证。
以上为通用的上位机基础操作,不同传感器型号的 .mbp 预配置文件、具体寄存器定义、特殊配置细节,可参考「七、相关资料」中内容。
3.3 应用实验
这里,我们使用 GraftPort-RP2040 开发板进行测试,低成本土壤温湿度传感器 MSE 上使用 UART 接口与主控进行通信。
这里,我们首先使用 HY2.0-4P 连接线将模块通过 XH2.54-4P 转接 HY2.0-4P 接口模块连接到 GraftPort-RP2040 开发板的 UART0 接口:
该图展示了 MSE 土壤温湿度传感器与开发板的 UART 接线方式。
然后将该模块插入土壤中:
模块连线如下表所示:
| 开发板引脚 | 模块引脚 | 说明 |
|---|---|---|
| 引脚 16 | MTX |
UART 数据传输线,对应开发板的发送引脚 |
| 引脚 17 | MRX |
UART 数据传输线,对应开发板的接收引脚 |
这里,我们需要在 uPyPI 上搜索相关驱动包:https://upypi.net/zh/
该图演示了在 uPyPI 平台中查找 MSE 驱动包的操作过程。
输入 mse_soil_sensor_driver 进行搜索,显示如下:
该图展示了 mse_soil_sensor_driver 的搜索结果页面。
点击复制本地安装命令:
该图展示了复制 MSE 驱动安装命令的界面,便于完成本地导入。
通过 mip 工具导入模块驱动库代码,以下是 mpremote 工具使用指令:
mpremote mip install https://upypi.net/pkgs/mse_soil_sensor_driver/1.0.0
导入低成本土壤温湿度传感器 MSE-MicroPython 驱动代码后,将下面 main.py 代码复制到我们的工程中:
# Python env : MicroPython v1.23.0
# -*- coding: utf-8 -*-
# @Time : 2026/4/3 上午10:30
# @Author : hogeiha
# @File : main.py
# @Description : MSE土壤温湿度传感器数据读取与配置示例程序
# ======================================== 导入相关模块 =========================================
import time
from mse_soil_sensor import MSESoilSensor
# ======================================== 全局变量 ============================================
# ======================================== 功能函数 ============================================
def read_all():
"""
读取并打印传感器所有寄存器数据
Args:
无
Raises:
无
Notes:
调用驱动类中所有只读方法,并将结果格式化输出到控制台。
==========================================
Read and print all sensor register data
Args:
None
Raises:
None
Notes:
Call all read-only methods of driver class and format output to console.
"""
# 打印数据分隔线
print("=" * 50)
# 打印从机地址
print(f"Sensor data (Addr: {sensor.read_node_address()})")
# 打印温度值
print(f"Temperature : {sensor.read_temperature()} C")
# 打印电容值
print(f"Capacitance : {sensor.read_capacitance()} pF")
# 打印电容中心值
print(f"Capacitance center : {sensor.read_cap_center()} pF")
# 打印电容量程
print(f"Capacitance range : {sensor.read_cap_range()} pF")
# 打印滤波次数
print(f"Filter count : {sensor.read_filter_count()}")
# 打印平均窗口大小
print(f"Average window : {sensor.read_avg_window_size()}")
# 打印温补系数A
print(f"Temp comp A : {sensor.read_temp_comp_A()}")
# 打印温补系数B
print(f"Temp comp B : {sensor.read_temp_comp_B()}")
# 打印硬件版本
print(f"Hardware version : {sensor.read_hw_version()}")
# 打印固件版本
print(f"Firmware version : {sensor.read_firmware_version()}")
# 打印设备UID
print(f"Device UID : {sensor.read_device_uid()}")
# 打印结束分隔线
print("=" * 50)
# ======================================== 自定义类 ============================================
# ======================================== 初始化配置 ===========================================
# 等待3秒确保串口稳定
time.sleep(3)
# 打印启动提示信息
print("FreakStudio: MSE soil sensor test start")
# 创建传感器实例
sensor = MSESoilSensor(slave_addr=1, baudrate=9600, uart_id=0, tx_pin=16, rx_pin=17)
# ======================================== 主程序 ============================================
# 判断是否作为主程序运行
if __name__ == "__main__":
# sensor.write_filter_count(20) # 设置滤波次数
# sensor.write_temp_comp_A(0.5) # 设置温度补偿A
# 写入温度补偿系数B
sensor.write_temp_comp_B(0.5)
# 主循环:每隔2秒读取一次所有数据
whileTrue:
read_all()
time.sleep(2)
烧录代码,打开终端,输出如下:
该图展示了 MSE 模块的实时输出效果,可用于验证温湿度与电容等数据读取结果。
相关资料
获取相关资料,查看:https://f1829ryac0m.feishu.cn/wiki/space/7636611910099602383?ccm_open_type=lark_wiki_spaceLink&open_tab_from=wiki_home
92