前言
本文旨在完成通过外接温湿度传感器至树莓派使得树莓派不断记录并存储温湿度数据
这个领域有很多文章,但是部分文章已经缺乏了时效性,在最新系统不适用,本文目前适用
硬件
硬件连接
温湿度传感器常选用DHT11和DHT22,淘宝很多商家,一般买了传感器还会另外送杜邦线,不用另外买线
网上找DHT11和DHT22的区别,搜到的尽是从底层架构有什么区别之类的,而我觉得很多人最关心的是参数区别
如下为两者参数,图片取自淘宝telesky店铺,侵权联系作者删除
DHT11信息 DHT22信息
首先就是要连接杜邦线,杜邦线是可以插的很紧不掉的,如果插不进,可以看这个视频
杜邦线插不紧怎么办?_哔哩哔哩_bilibili
硬件连接
dht22有三根要连接的线,vnc电源,连接3.3v或者5v都可,
data线,随便连接在一个GPIO接口,
gnd接地线,
具体可以参照这个网站进行连接
GPIO 25 at Raspberry Pi GPIO Pinout
软件
基于debian12的树莓派系统不能直接全局安装python库,所以我们采用虚拟环境
sudo apt-get update
sudo apt-get install python3-venv python3-pip
然后创建虚拟环境并且激活
python3 -m venv ~/dht_env
source ~/dht_env/bin/activate
然后就可以安装python库,具体等会儿缺啥安装啥,理论上要安装如下库
pip install RPI.GPIO
pip install adafruit-blinka
pip install adafruit-circuitpython-dht
代码层面
import board
import adafruit_dht
dht_device = adafruit_dht.DHT22(board.D25)
try:
temperature = dht_device.temperature
humidity = dht_device.humidity
print("temperature: {:.1f}C humidity: {}%".format(temperature, humidity))
except RuntimeError as e:
print("something wrong:", e)
dht_device.exit()
至此,已经可以读出数据~