【问题标题】:Read exact moisture values from soil moisture sensor using raspberry Pi使用树莓派从土壤湿度传感器读取准确的湿度值
【发布时间】:2019-08-27 16:45:28
【问题描述】:

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

这段代码只是说明是否检测到水,但我需要实际的湿度值。

【问题讨论】:

  • GPIO.input(channel) 返回什么?
  • 1 或 0 @Nick Brady

标签: python raspberry-pi iot sensors


【解决方案1】:

这取决于您的传感器可以提供的输出类型以及控制器 I/O 通道的配置。 数字传感器和 IO 引脚只能提供 0 或 1 个输入,即您目前使用的 0V 或 3/5V。 对于您指定的要求,传感器和 IO 必须是模拟类型,根据湿度水平给出不同的 0-3/5V。浏览传感器规格并找出它是否可以提供模拟输出,然后进行相同的编程。 从您共享的链接看来,传感器输出是数字(DO),不适合您的要求。从市场上寻找可以提供 AO(模拟输出)的传感器。

【讨论】:

  • 当我为 arduino-UNO 使用相同的传感器时,它为我提供了准确的湿度水平。但是我不确定如何使用 Raspberry-Pi 使其工作,并且我不知道要在此代码中进行哪些更改以获得确切的值
  • 由于树莓派 GPIO 是数字的,因此您需要使用 ADC。
猜你喜欢
  • 2019-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多