首页 > 解决方案 > 使用树莓派从土壤湿度传感器读取准确的湿度值

问题描述

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

这段代码只是告诉是否检测到水,但我需要水分的实际值。

标签: pythonraspberry-piiotsensors

解决方案


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


推荐阅读