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

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

编写代码:
pcf8591.readAD()方法。数据处理:
显示和记录:
当你想要使用树莓派(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()
按下图接好连接线, 需轻微调节传感器的电位器,(调节效果:在干燥无水的情况下传感器信号不亮, 若将探头放入水中传感器信号灯常亮即可)
传感器VCC—— 树莓派5V
传感器GND—— 树莓派GND
传感器DO—— 树莓派GPIO29

新建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
显示效果如下:


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