一、土壤传感器
传感器四个针脚:
针脚 | 含义 |
AO | 模拟信号输出 |
DO | 数字信号输出 |
GND | 电源负极 |
VCC | 电源正极 |
二、接线
YL-38和YL69 之间直接用2根母对母线连接。
YL-38和树莓派之间VCC接1号针脚,GND接6号针脚,DO接11号针脚。
我们把VCC接到树莓派的DC3.3v输出上,我用的是PIN 01,GND接在任何一个接地端口上,我用的是PIN 06,DO输出接任何一个空闲的GPIO端口,我用的是11。如果不清楚树莓派端口布局的朋友可以参考这张图:
电源连通之后,电源灯会亮起:
调节传感器上的十字旋钮,这个是灵敏度的校准,也是个阈值,直到在干燥空气中不让DO-LED亮起。
倒一杯水,或者没有水的话,舔一下传感器的触角,DO-LED应该会亮起,这时候就校准好了。
三、编写代码
这个传感器在干燥时候输出的是高电平,遇到水输出低电平。根据这个原理:
#!/usr/bin/python #coding=utf-8 import RPi.GPIO as GPIO import time #回调函数 def callback(channel): if GPIO.input(channel): print u'土壤有点干' else: print u'土壤太湿了' #定义针脚排序为BOARD形式 GPIO.setmode(GPIO.BOARD) #针脚 channel = 11 #定义针脚为input口 GPIO.setup(channel, GPIO.IN) #添加简单事件 GPIO.add_event_detect(channel, GPIO.BOTH, bouncetime=200) #添加时间触发的回调函数 GPIO.add_event_callback(channel, callback) #保持主进程不退出 while True: time.sleep(0.1)
运行结果: