Python 语言 用树莓派 + DHT11 传感器读取温湿度 实时显示 + 日志记录

Python阿木 发布于 23 小时前 2 次阅读


树莓派与DHT11传感器:Python实时温湿度读取与日志记录

树莓派因其低功耗、高性能和丰富的接口而成为物联网(IoT)项目中的热门选择。DHT11是一款常见的温湿度传感器,具有体积小、价格低、易于使用等特点。本文将介绍如何使用Python在树莓派上读取DHT11传感器的温湿度数据,并实现实时显示和日志记录功能。

硬件准备

1. 树莓派(推荐使用树莓派3B+)
2. DHT11传感器
3. 杜邦线
4. 电阻(10kΩ)
5. USB电源或树莓派电源
6. microSD卡(至少8GB,用于安装操作系统)

软件准备

1. 树莓派操作系统(推荐使用Raspbian)
2. Python 3.x

连接DHT11传感器

1. 将DHT11传感器的VCC引脚连接到树莓派的3.3V电源。
2. 将DHT11传感器的GND引脚连接到树莓派的GND。
3. 将DHT11传感器的DATA引脚连接到树莓派的一个GPIO引脚(例如GPIO4)。
4. 在DATA引脚上串联一个10kΩ电阻,以保护树莓派的GPIO引脚。

安装Python库

在树莓派上,使用以下命令安装DHT11传感器的Python库:

bash
sudo apt-get update
sudo apt-get install python3-dht

编写Python代码

以下是一个简单的Python脚本,用于读取DHT11传感器的温湿度数据,并实时显示和记录到日志文件中。

python
import dht
import time
import logging

设置日志记录
logging.basicConfig(filename='dht11_log.log', level=logging.INFO, format='%(asctime)s - %(message)s')

初始化DHT11传感器
dht_sensor = dht.DHT11(dht.DHT11_GPIO4)

while True:
try:
读取温湿度数据
temp, hum = dht_sensor.read()
if temp is not None and hum is not None:
实时显示
print(f"Temperature: {temp} C, Humidity: {hum} %")
记录到日志文件
logging.info(f"Temperature: {temp} C, Humidity: {hum} %")
else:
print("Failed to read data from DHT11 sensor.")
logging.error("Failed to read data from DHT11 sensor.")
except Exception as e:
print(f"An error occurred: {e}")
logging.error(f"An error occurred: {e}")

等待一段时间后再次读取
time.sleep(2)

运行脚本

将上述代码保存为`dht11.py`,然后在树莓派上运行:

bash
python3 dht11.py

树莓派将每隔2秒读取一次DHT11传感器的温湿度数据,并将结果显示在终端,同时将数据记录到`dht11_log.log`日志文件中。

总结

本文介绍了如何使用树莓派和DHT11传感器读取温湿度数据,并实现实时显示和日志记录功能。通过Python编程,我们可以轻松地控制树莓派,实现各种物联网项目。希望本文对您有所帮助。