如何使用Adafruit读取DHT11温湿度传感器

这篇文章主要为大家展示了“如何使用Adafruit读取DHT11温湿度传感器”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用Adafruit读取DHT11温湿度传感器”这篇文章吧。

公司主营业务:成都网站设计、成都网站制作、外贸网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联公司推出蓬江免费做网站回馈大家。

DHT11 温湿度传感器尽管不是使用效率最高的温湿度传感器,但价格便宜被广泛应用。下面我们介绍基于Adafruit DHT 库读取 DHT11 数据的方法。

DHT11 规格

DHT11 有四个引脚,但是其中一个没有被使用到。所有有的模块会简化成3个引脚。

  • 湿度检测范围 : 20-80% (5% 精度)

  • 温度检测范围 : 0-50°C (±2°C 精度)

该厂商不建议读取频率小于2秒,如果这么做数据可能会有误。

硬件连接

如何使用Adafruit读取DHT11温湿度传感器需要在电源和数据脚之间串联一个上拉电阻(4.7K-10K),通常情况下,购买DHT11模块的话都自带了这个电阻。不同的模块型号引脚位置略有不同,下面以图上模块为说明:

DHT PinSignalPi Pin
13.3V1
2Data/Out11 (GPIO17)
3not used
4Ground6 or 9

数据引脚可以根据你的需要自行修改。

如何使用Adafruit读取DHT11温湿度传感器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温湿度传感器”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


文章标题:如何使用Adafruit读取DHT11温湿度传感器
分享地址:http://scyanting.com/article/jipshc.html