我准备使用dht11模块在树莓派4B上完成测量温度和湿度的功能,请你为我提供这段代码,我的dht11模块有三个引脚,其中dat引脚接在了树莓派的21引脚,请为我提供代码和详细的操作步骤
时间: 2024-11-06 08:20:23 浏览: 11
DHT11传感器树莓派测温度和湿度教程.rar-综合文档
在树莓派(Raspberry Pi) 4B上通过DHT11模块测量温度和湿度,你可以使用Python的`RPi.GPIO`库以及第三方库`Adafruit_DHT`。以下是基本的代码示例和操作步骤:
首先,确保安装必要的库。在终端中运行以下命令:
```bash
pip install RPi.GPIO Adafruit_DHT
```
接下来,编写Python代码:
```python
# 导入所需库
import RPi.GPIO as GPIO
from time import sleep
# 设置GPIO模式为BCM
GPIO.setmode(GPIO.BCM)
# 将DHT11的数据引脚(通常为数据线)设置为输入,这里我们假设是21引脚
data_pin = 21
GPIO.setup(data_pin, GPIO.IN)
# 定义DHT11相关的函数
def read_dht11(pin):
# DHT11读取周期大约需要20ms
humidity, temperature = Adafruit_DHT.read_retry(11, pin)
if humidity is not None and temperature is not None:
return True, humidity, temperature
else:
return False, None, None
# 主循环开始测量并打印结果
while True:
result, humidity, temperature = read_dht11(data_pin)
if result:
print(f"Temperature: {temperature:.1f}°C, Humidity: {humidity:.1f}%")
else:
print("Failed to read data from DHT11.")
sleep(5) # 每隔5秒读一次数据
# 清理GPIO资源
GPIO.cleanup()
```
操作步骤:
1. 确保DHT11模块已连接到树莓派的21引脚(数据引脚)。
2. 使用GPIO库将21引脚配置为输入。
3. 运行上述Python脚本。
4. 脚本会每隔5秒钟尝试读取一次DHT11的数据,并打印温度和湿度值。
注意事项:
- 根据实际硬件布局调整数据引脚 `data_pin` 的设置。
- 如果DHT11模块无法正常工作,检查电源、数据线连接是否正确,以及环境是否有干扰信号。
阅读全文