土壤湿度传感器介绍
提示:土壤湿度传感器,有很多种,我这里用的是电阻式土壤湿度传感器。其原理是,把传感器插入土壤中,不同湿度的土壤的电阻值不一样,通过检测两根电极之间的电流,来分析土壤的湿度。由于不同的土壤的成份不一样。电阻也就不一样,在使用这类传感器前要一定做标定。
一、连接传感器引脚
示例:土壤湿度传感器有5根引脚,名称与功能如下;
vcc 为外接供电电源输入端
GND 地线
DO 数字信号,连接ESP32的33引脚
AO 模拟信号,连接ESP35的33引脚
二、使用步骤
传感器有两种数据输出,一种是数字信号DO,另一是模拟信号AO。模拟信号需要连接到ADC引脚,用ADC库对模拟信号进行转换。
1.创建代码
代码如下(示例):
import time
from machine import Pin, ADC # 模数转换库
# 数字信号
p_in = Pin(33, Pin.IN)#, Pin.PULL_UP)
# soil_sensor 土壤传感器
# 模拟信号
adc = ADC(Pin(35))
def getMoisDo():
p_in_value = p_in.value()
return p_in_value
def getMoisAo():
#标定湿土壤实测最少值3100,空气中值4100,
return adc.read()
if __name__ == '__main__':
while True:
#print('DO数字信号 value:%s'% getMoisDo())
print('AO模拟信号 value:%s'% getMoisAo())
print('相对湿度值:',((4100-getMoisAo())/10),'%')
time.sleep(1)
break
2.保存运行
运行结果如下(示例):
>>> %Run -c $EDITOR_CONTENT
AO模拟信号 value:4095
相对湿度值: 0.5 %
总结
提示:这个传感器让我跳坑,很久才爬出来。
注意不同的标定,结果会不同,使用前一种要做标定。
模拟信号一定要连接到ADC引脚