概述
DHT11是一个数字传感器,由两个不同的传感器组成一个封装。该传感器包含一个NTC(负温度系数)温度传感器,一个电阻型湿度传感器和一个8位微控制器,用于转换来自这些传感器的模拟信号并产生数字输出。
我已经在我的 DHT11湿度传感器Arduino 项目中使用了DHT11传感器。在该项目中,我提到了DHT11传感器的引脚配置,如何将其与微控制器连接以及如何解码DHT11传感器的数字输出。
所以,我建议您参考该项目一次,以获取有关DHT11湿度和温度传感器的更多信息。我将解释一下我在Arduino项目中遗漏的一些事情。
我们知道输出来自DHT11传感器是数字的。但我们究竟能读取这些数字数据?
从DHT11读取数字输出
DHT11使用单总线数据格式进行通信。只有像Arduino或Raspberry Pi这样的MCU与DHT11传感器之间的单条数据线足以交换信息。
在此设置中,微控制器充当主设备和DHT11传感器充当从站。 DHT11传感器的数据输出采用漏极开路配置,因此必须在5.1KΩ电阻的帮助下将其拉高。
此上拉将确保当Master没有请求数据时,数据的状态为HIGH(除非Master请求,否则DHT11不会发送数据)。
现在,我们将如何传输数据和DHT11传感器的数据格式。每当微控制器想要从DHT11传感器获取信息时,
微控制器的引脚被配置为OUTPUT,它将使数据线保持低电平至少18ms并释放线路。在此之后,微控制器引脚设为INPUT。
DHT11传感器的数据引脚,即INPUT引脚,读取微控制器产生的低电平,并充当输出引脚,在数据线上发送低信号响应约80μs,然后再将该线路上拉80μs。
此后,DHT11传感器发送40逻辑‘0’的位数据是50μs的低电平和26到28μs的高电平的组合,逻辑‘1’是50μs的低电平和70到80μ的高电平。
发送40位数据后,DHT11数据引脚保持低电平再持续50μs,最后将其状态更改为输入以接受来自微控制器的请求。
注意:我们在编写Arduino时实现了这个逻辑。但是对于Raspberry Pi,我们使用了一个处理所有这些事情的库。
Raspberry Pi DTH11湿度和温度传感器接口
通过将DHT11传感器与Raspberry Pi连接,您可以构建自己的物联网气象站。实现此类物联网天气所需的只是Raspberry Pi,DHT11湿度和温度传感器以及具有互联网连接功能的计算机。
电路图
以下是DHT11和Raspberry Pi接口的电路图。
所需组件
Raspberry Pi 3型号B
DHT11温度和湿度传感器
连接电线
计算机
如果你观察电路图,那么连接方面就没有很多东西了。您需要做的就是将DHT11传感器的VCC和GND引脚连接到Raspberry Pi的+ 5V和GND,然后将传感器的数据输出连接到GPIO4,即Raspberry Pi的物理引脚7。
安装DTH11库
由于我们使用Adafruit为此项目提供的名为Adafruit_DHT的库,我们需要先将此库安装到Raspberry Pi中。
第一步是从GitHub下载库。但在此之前,我在Raspberry Pi的桌面上创建了一个名为“library”的文件夹来放置下载的文件。您不必这样做。
现在,输入以下命令以下载与Adafruit_DHT库相关的文件。
git clone https://github.com/adafruit/Adafruit_Python_DHT.git
所有内容都将下载到名为“Adafruit_Python_DHT”的文件夹中。使用cd Adafruit_Python_DHT打开此目录。要查看此文件夹的内容,请使用“ls”命令。
在该文件夹中,有一个名为“setup.py”的文件。我们需要使用以下命令安装此文件。
sudo python setup.py install
代码
我们正在使用该库对于这个项目的Adafruit_DHT,Python编程部分没什么可做的。您需要做的就是使用传感器和GPIO引脚调用库并打印温度和湿度值。
工作
按照电路图进行连接并安装库。使用上面的python程序查看结果。
应用程序
DHT11温度和湿度传感器是业余爱好者在许多物联网项目中实施的流行传感器模块之一。此传感器与Raspberry Pi一起也可用于:
HVAC Systems
恒温器
家庭和办公室气候控制
气象站
-
传感器
+关注
关注
2550文章
51000浏览量
752960 -
树莓派
+关注
关注
116文章
1705浏览量
105599
发布评论请先 登录
相关推荐
评论