DHT11是一种低成本的温湿度传感器。它不是最快的传感器,但其便宜的价格对于小的实验或项目很有用。该设备只需要三个引脚连接到树莓派。+ 3.3v,接地和一个GPIO引脚。
DHT11规格
设备本身有四个引脚,但其中一个引脚不被使用。你可以自行购买4针设备或3针模块都行。
模块有三个引脚,可以方便地直接连接到Pi的GPIO引脚。
湿度:20-80%(精度5%)
温度:0-50°C(±2°C精度)
制造商建议您不要在每2秒钟内多次从该设备读取数据。这样做可能会读不正确
硬件设置
4引脚器件需要在引脚1(3.3V)和引脚2(data数据)之间放置一个电阻(4.7K-10K)。
3引脚模块通常会包含这个电阻,使布线更容易一些。因此,我拿起了一个模块,然后用一条3pin杜邦线连接到Pi上。
3个引脚应连接到Pi,如下表所示:
DHT针
信号
引脚Pin
1
3.3V
1
2
数据输入/输出
11(GPIO17)
3
不曾用过
–
4
地面
6或9
data引脚可以连接到任何GPIO引脚。在我的例子中,使用了GPIO 17即物理引脚11。这是一个4针温湿度传感器。引脚1(3.3V)和2(数据/输出)之间具有10K电阻。
Python库
DHT11需要将特定协议应用于数据引脚。为了节省时间尝试实现这一点,使用Adafruit DHT库更容易。软件设置
要开始更新软件包列表并安装几个Python库:
sudo apt-get update sudo apt-get install build-essential python-dev
然后从其存储库克隆Adafruit库:
git clone https ://github.com/adafruit/Adafruit_Python_DHT.git CD Adafruit_Python_DHT
然后安装Python 2和Python 3的库:
sudo python setup.py
install sudo python3 setup.py
install
执行完之后,该库已安装并可以在Python中使用。
Adafruit示例Python脚本
Adafruit提供了一个示例脚本,您可以使用它来检查传感器是否正常运行。
cd 〜 cd Adafruit_Python_DHT cd examples
然后 :
python AdafruitDHT.py
11 17
示例脚本需要两个参数。第一种是传感器类型,因此设置为“11”以表示DHT11。第二个是GPIO号,所以在我的例子中,我对GPIO17使用“17”。如果您使用不同的GPIO引脚进行数据/输出线,则可以进行更改。
您应该会看到类似的输出:
Temp= 22.0 *Humidity= 68.0%
在其他Python脚本中使用库
一旦安装了Adafruit库,并且您已经使用了示例脚本,您可以在自己的python脚本中使用。简单地导入模块,设置几个变量并调用“read_retry”函数:
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!')
此脚本可以直接下载到您的Pi使用:
wget https://bitbucket.org/MattHawkinsUK/rpispy-misc/raw/master/python/dht11.py
并运行使用:
python dht11.py
购买DHT11
DHT11可从许多电器组件销售商处获得。例如得芯电子