用料
示例
DHT11 是一款温湿度传感器,工作电压为 3.3V 至 5V。 在室温下,湿度的可测量范围为 20% ~ 90%RH,精度为 ±5%RH;温度的可测量范围为 0 ~ 50℃,精度为 ±2℃。
另一种温湿度传感器是 DHT22 传感器,其精度更高。 其湿度测量范围为 0%~100%RH,精度为 ±5%RH;温度测量范围为 -40~125 ℃,精度为 ±0.2℃。
传感器上有 4 个引脚:
由于 4 个引脚中有一个没有功能,因此市场上出现了只有 3 个引脚的温度/湿度传感器:
DHT 通常处于休眠状态。 请按照以下步骤获取温湿度数据:
- 唤醒 DHT:BW21-CBV-Kit 将其 GPIO 的 DATA 引脚置低。
- 现在,GPIO 的 DATA 引脚用作 BW21-CBV-Kit 的数字输出。
- DHT 响应: DHT 也将其 GPIO 的 DATA 引脚拨至低电平。 现在,GPIO 的 DATA 引脚作为 BW21-CBV-Kit 的数字输入。
- DHT 发送数据: DHT 以逐位方式发送温湿度数据(大小为 5 个字节)。
- 为了表示每一位,DHT 首先将 GPIO 的 DATA 引脚拉低一段时间,然后拉高。 如果高电平的持续时间小于低电平的持续时间,则代表第 0 位。 否则代表第 1 位。
请注意,如果使用的 DHT 传感器没有安装在 PCB 上,则必须添加一个 10K 欧姆的上拉电阻。 您可以参考接线图。
BW21-CBV-Kit 接线图: 没有底板的 DHT 传感器
装有 PCB 底板的 DHT 传感器:
在 "Files" -> "Examples" -> "AmebaGPIO" -> "DHT_Tester "中打开示例代码。 编译并上传到 BW21-CBV-Kit,然后按下重置按钮。 结果将显示在串行监视器上。
代码参考
使用 dht.readHumidity() 读取湿度值,使用 dht.readTemperature() 读取温度值。 每次读取温度/湿度数据时,BW21-CBV-Kit 都会使用缓冲的温度/湿度数据,除非发现数据已过期(即超过 2 秒未更新)。 如果数据过期,BW21-CBV-Kit 会向 DHT 发出请求,读取最新数据。 |