我是IoT的新手,我正在尝试使用Raspberry Pi读取土壤湿度传感器的读数。我需要精确的水分值,而不仅仅是是否存在水中的布尔值。
我尝试使用Arduino-UNO读取确切的值,但是不确定如何在python中使用Raspberry Pi。 我有在Intructables上找到的这段代码。 https://www.instructables.com/id/Soil-Moisture-Sensor-Raspberry-Pi/
#!/usr/bin/python
import RPi.GPIO as GPIO
import time
#GPIO SETUP
channel = 21
GPIO.setmode(GPIO.BCM)
GPIO.setup(channel, GPIO.IN)
def callback(channel):
if GPIO.input(channel):
print "no Water Detected!"
else:
print "Water Detected!"
GPIO.add_event_detect(channel, GPIO.BOTH, bouncetime=300) # let us know when the pin goes HIGH or LOW
GPIO.add_event_callback(channel, callback) # assign function to GPIO PIN, Run function on change
# infinite loop
while True:
time.sleep(1)
此代码仅告诉您是否检测到水,但我需要水分的实际值。
答案 0 :(得分:1)
它基于传感器可以提供的输出类型以及控制器I / O通道的配置。 数字传感器和IO引脚只能提供0或1输入,即您当前正在使用的0V或3 / 5V。 对于您指定的要求,传感器和IO必须为模拟类型,该类型根据湿度级别提供0-3 / 5V的变化。浏览传感器规格,找出它是否可以提供模拟输出,然后再编程。 从您共享的链接来看,传感器输出似乎是数字(DO),不适合您的要求。在市场上找到可以提供AO(模拟输出)的传感器。