这篇文章主要为大家展示了“如何使用Adafruit读取DHT11温湿度传感器”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用Adafruit读取DHT11温湿度传感器”这篇文章吧。
DHT11 温湿度传感器尽管不是使用效率最高的温湿度传感器,但价格便宜被广泛应用。下面我们介绍基于Adafruit DHT 库读取 DHT11 数据的方法。
DHT11 规格
DHT11 有四个引脚,但是其中一个没有被使用到。所有有的模块会简化成3个引脚。
该厂商不建议读取频率小于2秒,如果这么做数据可能会有误。
硬件连接
需要在电源和数据脚之间串联一个上拉电阻(4.7K-10K),通常情况下,购买DHT11模块的话都自带了这个电阻。不同的模块型号引脚位置略有不同,下面以图上模块为说明:
DHT Pin | Signal | Pi Pin |
1 | 3.3V | 1 |
2 | Data/Out | 11 (GPIO17) |
3 | not used | – |
4 | Ground | 6 or 9 |
数据引脚可以根据你的需要自行修改。
Python 库
DHT11 的读取需要遵循特定的信号协议完成,为了方便我们使用Adafruit DHT 库。
软件安装
开始之前需要更新软件包:
1 2 | sudo apt-get update
sudo apt-get install build-essential python-dev
|
从 GitHub 获取 Adafruit 库:
1 2 | sudo git clone https: //github .com /adafruit/Adafruit_Python_DHT .git
cd Adafruit_Python_DHT
|
给 Python 2 和 Python 3 安装该库:
1 2 | sudo python setup.py install
sudo python3 setup.py install
|
示例程序
Adafruit 提供了示例程序,运行下面的命令测试。
1 2 3 4 | cd ~
cd Adafruit_Python_DHT
cd examples
python AdafruitDHT.py 11 17
|
这两个参数分别表示 DHT11 和数据引脚所接的树莓派 GPIO 编号。成功的话会输出:
Temp=22.0* Humidity=68.0%
如何在其他 Python 程序中使用这个库
参照下面的方法引入 Adafruit 库,然后就可以使用 “read_retry” 方法来读取 DHT11 的数据了:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | import Adafruit_DHT
# Set sensor type : Options are DHT11,DHT22 or AM2302
sensor = Adafruit_DHT.DHT11
# Set GPIO sensor is connected to
gpio = 17
# Use read_retry method. This will retry up to 15 times to
# get a sensor reading (waiting 2 seconds between each retry).
humidity, temperature = Adafruit_DHT.read_retry(sensor, gpio)
# Reading the DHT11 is very sensitive to timings and occasionally
# the Pi might fail to get a valid reading. So check if readings are valid.
if humidity is not None and temperature is not None :
print ( 'Temp={0:0.1f}*C Humidity={1:0.1f}%' . format (temperature, humidity))
else :
print ( 'Failed to get reading. Try again!' )
|
以上是“如何使用Adafruit读取DHT11温湿度传感器”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注天达云行业资讯频道!