使用树莓派

时间:2019-08-27 16:45:28

标签: python raspberry-pi iot sensor

我是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)

此代码仅告诉您是否检测到水,但我需要水分的实际值。

1 个答案:

答案 0 :(得分:1)

它基于传感器可以提供的输出类型以及控制器I / O通道的配置。 数字传感器和IO引脚只能提供0或1输入,即您当前正在使用的0V或3 / 5V。  对于您指定的要求,传感器和IO必须为模拟类型,该类型根据湿度级别提供0-3 / 5V的变化。浏览传感器规格,找出它是否可以提供模拟输出,然后再编程。 从您共享的链接来看,传感器输出似乎是数字(DO),不适合您的要求。在市场上找到可以提供AO(模拟输出)的传感器。