树莓派资料
显示屏资料
系统下载
树莓派Pico
首页 动态 发帖 版块 我的
 退出
游客  
等级:
金币:
经验值:

树莓派使用YL-69土壤传感器教程

  2959 
 0
 3
RASPI   RASPI 

AO模拟量信号

当你想用树莓派(Raspberry Pi)连接PCF8591模拟输入/输出扩展器和土壤湿度传感器来测量土壤湿度时,可以按照以下步骤进行:

  1. 硬件准备:

    • 树莓派:作为主控制器
    • PCF8591模块:提供模拟I/O接口,可连接多个传感器
    • 土壤湿度传感器:通常为电容式或电阻式,模块得有AO模拟量针脚才能测量土壤湿度变化
    • 杜邦线母-母:用于树莓派连接传感器和PCF8591模块
  2. 软件安装:

    • 在树莓派上安装必要的库,如wiringPiAdafruit_Python_PCF8591,以便控制PCF8591模块。
  3. 电路连接:

    • 将土壤湿度传感器的信号线连接到PCF8591的模拟输入端口,通常是AIN0到AIN7中的某一个。
    • PCF8591的VCC和GND分别连接到树莓派的5V和GND。
    • 通常PCF8591模块的SCL和SDA引脚直接连接到树莓派的I2C端口SCL和SDA。

Image

树莓派主板的GPIO引脚定义图:

Image

  1. 编写代码:

    • 使用Python编写代码,通过I2C或GPIO库读取PCF8591模块的数据,然后解析湿度值。例如,如果是I2C,代码会调用pcf8591.readAD()方法。
    • 土壤湿度传感器通常返回电压值,需要进行模数转换(ADC),根据具体传感器的规格计算湿度百分比。
  2. 数据处理:

    • 处理传感器返回的湿度值,并可能添加校准或滤波算法,以提高数据的准确性。
  3. 显示和记录:

    • 可能的话,可以在树莓派的屏幕上显示实时湿度或通过网络将数据发送到服务器。
    • 你可以使用日志文件记录湿度读数,便于分析和远程监控。


当你想要使用树莓派(Raspberry Pi)连接PCF8591模拟接口扩展器,并通过土壤湿度传感器测量环境湿度时,你可以遵循以下步骤编写Python代码:


首先,确保你已经安装了必要的库,如RPi.GPIO(用于GPIO操作)和pcf8591(处理PCF8591模块)。如果尚未安装,可以通过以下命令安装:

pip install RPi.GPIO pcf8591


接下来,基本的Python脚本示例,说明如何连接、读取湿度传感器数据:

import RPi.GPIO as GPIO
import pcf8591

# 设置PCF8591的I2C地址(通常为0x48或0x49)
i2c_address = 0x48

# 初始化PCF8591模块
adc = pcf8591.PCF8591(i2c_address)

# 设置土壤湿度传感器的A0通道为输入
soil_humidity_pin = 0
GPIO.setup(soil_humidity_pin, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)

try:
    while True:
        # 读取土壤湿度传感器值(0-1023范围)
        humidity_value = adc.read_adc(soil_humidity_pin, gain=1)
        
        # 将模拟值转换为百分比(假设0-1023对应0%-100%湿度)
        humidity_percentage = (humidity_value / 1023.0) * 100
        
        print(f"当前土壤湿度: {humidity_percentage:.2f}%")

        # 延迟一段时间再次读取(例如每秒一次)
        time.sleep(1)

except KeyboardInterrupt:
    print("程序中断")
finally:
    # 关闭GPIO资源,释放PCF8591模块
    GPIO.cleanup()
Image


DO开关数字量信号

按下图接好连接线, 需轻微调节传感器的电位器,(调节效果:在干燥无水的情况下传感器信号不亮, 若将探头放入水中传感器信号灯常亮即可)


传感器VCC—— 树莓派5V

传感器GND—— 树莓派GND

传感器DO—— 树莓派GPIO29

Image

新建py文件

sudo nano raspi.py

复制粘贴下列程序

import RPi.GPIO as GPIO
import time

# 设置 GPIO 模式为 BCM
GPIO.setmode(GPIO.BCM)

# 定义 GPIO29 引脚
pin = 21

# 设置引脚为输入模式
GPIO.setup(pin, GPIO.IN)

try:
    while True:
        # 读取引脚状态
        state = GPIO.input(pin)
        if state == GPIO.HIGH:
            print("非常干燥")
        elif state == GPIO.LOW:
            print("水分适宜")
        time.sleep(0.5)  # 每隔 0.5 秒检测一次
except KeyboardInterrupt:
    GPIO.cleanup()  # 捕获键盘中断,进行清理操作

运行程序

sudo python raspi.py

显示效果如下:

Image


Image


更多资源下载

YL-69土壤传感器电路图5.1测试测试程序土壤传感器产品资料



标签:
作者签名: raspi.cc   楼主  2024-06-17 17:37:02
回复列表
Powered by RASPI _VERSION
© 2017-2024 树莓派极客版权
您的IP: 18.220.75.97 , 2024-07-27 14:52:48
Powered by RASPI _VERSION
© 2017-2024 树莓派极客版权