在土壤湿度传感器中,AO(Analog Output)模拟量信号输出引脚是核心信号输出端,其输出的模拟电压信号会随土壤湿度变化而连续波动,这也是我们能通过树莓派 Pico 等设备实现 “湿度百分比量化” 的核心依据。下面从信号本质、变化逻辑、影响因素三方面详细解析:
AO 模拟量是连续变化的电压信号,而非数字量(高低电平)的 “非 0 即 1” 的状态。对于常见的土壤湿度传感器(如基于电阻式或电容式原理的模块),其 AO 端输出电压通常在0V~ 输入电压之间波动(例如 3.3V 供电时,输出范围 0~3.3V;5V 供电时,输出范围 0~5V)。
这种 “连续变化” 的特性,使得 AO 信号能精准反映土壤湿度的 “渐变过程”—— 比如从 “微干” 到 “湿润” 的过渡状态,而非仅能判断 “干 / 湿” 两个极端,这也是模拟量传感器比单纯数字量传感器(仅 DO 引脚)测量更精细的关键。简单理解:DO开关量读取的是湿润或干燥两种状态。而DO模拟量信号读取的则是湿度不同输出的电压不同。这样我们就能对电压进行分析编程转换成更精细的湿度值百分比数据。
AO 模拟量的变化核心遵循 “湿度与输出电压负相关” 的逻辑(针对绝大多数土壤湿度传感器,需注意部分特殊型号可能相反,需以实际测试为准),具体变化曲线可分为三个阶段:
| 土壤湿度状态 | AO 输出电压变化 | ADC 读数变化(以3.3V供电、16位ADC为例) | 实际场景参考 |
| 完全干燥(如传感器置于空气中 | 接近电源电压(如 3.2V~3.3V) | 接近最大值 65535(因 16 位 ADC 范围 0~65535) | 沙漠、干旱土壤,植物缺水萎蔫 |
| 中度湿润(如正常灌溉后土壤) | 中等电压(如 1.5V~2.5V) | 中间值(约 30000~48000) | 蔬菜大棚、家庭花盆的适宜湿度 |
| 完全湿润(如传感器浸入水中) | 接近 0V(如 0.1V~0.5V) | 接近最小值(约 1000~5000) | 水田、洪涝后的土壤,水分饱和 |
变化逻辑拆解:以最常见的 “电阻式土壤湿度传感器” 为例
传感器探头(两个金属电极)插入土壤时,土壤中的水分会形成 “导电介质”:湿度越高,土壤导电性越强,电极间的电阻越小;此时传感器内部的分压电路中,AO 端的输出电压会随电阻减小而降低(类似 “分压原理”:电源电压固定时,串联电阻越小,其两端电压越小)。
简单来说:土壤越湿 → 电极电阻越小 → AO 输出电压越低 → ADC 读数越小 → 换算的湿度百分比越高(这也和上一轮 Pico 代码中 “反转计算百分比” 的逻辑完全一致)。
AO 模拟量的变化并非仅由土壤湿度决定,实际使用中需注意以下干扰因素,避免测量偏差:
供电电压稳定性:AO 输出电压以电源电压为 “基准”,若供电电压波动(如 3.3V 降至 3.0V),即使土壤湿度不变,AO 电压也会同步降低,导致 ADC 读数偏小(误判为 “更湿”)。因此建议使用稳压电源或 Pico 的 3.3V 稳压引脚供电。
探头接触面积:传感器探头插入土壤的深度、松紧度不同,电极与土壤的接触面积会变化 —— 接触越充分,电阻测量越准确,AO 信号越稳定;若探头仅浅插或接触松散,可能出现 “AO 电压忽高忽低” 的波动。
土壤盐分与 pH 值:土壤中的盐分(如盐碱地)、pH 值(酸性 / 碱性)会影响土壤导电性 —— 相同湿度下,盐分越高的土壤导电性越强,AO 电压会比普通土壤更低(可能误判为 “更湿”)。因此这类场景需选择 “抗盐分干扰” 的专用传感器,并重新校准干湿值。
环境温度:温度每变化 10℃,土壤导电性可能变化 5%~10%,间接导致 AO 电压偏移。例如冬季低温时,相同湿度下 AO 电压会略高于夏季,需根据季节微调校准值。
| YL-69土壤传感器电路图 | 🛒土壤传感器产品链接 | 土壤传感器产品资料 |

| 土壤传感器 | 树莓派Pico |
| VCC | 3.3V |
| GND | GND |
| AO | GP26 |

1.下载源代码后,上传至树莓派Pico内,直接运行代码查看结果。 此时可以给传感器的两个探头插入不用湿度土壤里来观察数据的变化~(如下)
2.参数的校准值 请根据自己实际情况进行调整

结果:土壤湿度越大数值会百分比发生变化。以上具体参数可以在代码通过wet_value 进行调节。
以下接线是在上面的基础上增加了控制继电器开合的接线方式,用来控制继电器打开关闭,从而实现控制水泵抽水或停止
| 树莓派Pico | 升级版继电器 |
| 5V | + |
| GND | - |
| GP0 | H |
注意:如果你的继电器如果不是新款升级版新款,如果按下图接水泵无法直接抽水,(查看:升级版新款继电器产品链接)

1.下载源代码后,上传至树莓派Pico内,直接运行代码查看结果。 此时可以将传感器探头插入不同湿度的土壤里来观察湿度值的数据变化
2.以下代码设置了湿度值低于20%时锁定此时打开继电器,直到湿度恢复到70%才解锁此时继电器关闭(继电器接水泵就能实现湿度低于20%水泵开始抽水,直到土壤水份湿度被浇灌到70%后才会停止抽水)这就是一个简易的自动浇花系统。
3.参数的校准值 请根据自己实际情况进行调整

说明:土壤湿度越大数值会百分比发生变化。以上具体参数可以在代码通过wet_value 进行调节。湿度阈值对应继电器开启与关闭可在LOW_THRESHOLD和HIGH_THRESHOLD自定义进行设定。
该代码实现了基于树莓派 Pico 的土壤湿度监测与自动控制功能,核心逻辑如下:
1.通过 GP26 引脚(ADC0)读取土壤湿度传感器的模拟信号将 ADC 值转换为 0-100% 的湿度百分比(基于干湿状态校准值)
2实现 "锁定式" 电平控制:当湿度低于 20% 时,GP0 引脚输出高电平并保持(锁定状态)仅当湿度达到或超过 70% 时,GP0 引脚才恢复低电平(解锁)
3.代码包含异常处理,确保程序退出时 GP0 引脚复位为低电平
核心知识点:
1. 硬件相关
树莓派 Pico ADC 功能:Pico 的 ADC(模数转换器)支持 16 位精度(0-65535),GP26/GP27/GP28 为专用 ADC 引脚,可读取 0-3.3V 模拟信号
GPIO 输出控制:通过Pin类初始化输出引脚,使用value(1)输出高电平,value(0)输出低电平
传感器特性:土壤湿度传感器的模拟输出与湿度成反比(湿度越高,输出电压越低,ADC 值越小)
2. 软件逻辑
模拟量到百分比转换:通过线性映射公式将 ADC 值转换为直观的百分比,需通过实际测试获取dry_value(干燥)和wet_value(湿润)校准点
状态锁定机制:使用is_high变量跟踪当前状态,避免在 20%-70% 区间内出现电平频繁切换,确保控制稳定性
阈值控制策略:采用滞后阈值(20% 触发,70% 恢复),适合需要保持状态的场景(如灌溉控制)
3. 应用场景
自动灌溉系统:高电平时触发水泵工作,直到土壤达到适宜湿度
植物生长监测:实时跟踪土壤湿度变化,为植物生长提供数据参考
环境控制:可扩展用于温室、花盆等场景的自动湿度调节
使用时需注意:实际部署前必须根据传感器特性校准dry_value和wet_value,否则会导致测量偏差;电源电压需与传感器规格匹配(通常 3.3V 或 5V)。
联系人:张工
电话:0755-32914578
QQ:2251000002
微信:扫下方二维码添加,请备注来意
提供:人工智能,IOT物联网,工控数显,嵌入式软硬件开发,科创教育,产品定制,生产,方案解决...