GPIO - 测量温湿度DHT测试仪
材料准备
- AmebaPro2 [ AMB82 MINI ] x 1
- DHT11 or DHT22 or DHT21
范例说明
DHT11结合温度与湿度的传感器,工作电压在3.3V~5V,在常温下可量测湿度20% ~ 90%RH,精准度±5%RH,温度可量测0 ~ 50℃,精准度±2 ℃。
DHT22则精准度较高, 湿度可量测0%~100%RH,精准度±5%RH,温度可量测-40 ~ 125 ℃,精准度±0.2℃。
两者的pin脚都是一样的,总共有4只脚:
其中有一只脚目前没有作用,所以市面上也看的到重新包装成3只脚的版本:
上电之后,平常DHT都处于睡眠模式,要从DHT取得温湿度,需要以下步骤:
- 唤醒DHT:Ameba将DATA pin 这根GPIO toggle low,此时DATA GPIO对AMEBA来说是digital out
- 等待DHT回应:DHT也将DATA pin这根GPIO toggle low,此时DATA GPIO对AMEBA来说是digital in
- DHT将温湿度资料送出:DHT将5 bytes的温湿度资料送出,此时DATA GPIO对AMEBA来说是digital in。 DHT会将5 bytes = 40 bits,以每个bit的方式送出,每个bit的表示方式是,DHT会先将DATA GPIO pull low 一段时间,再pull high,如果pull high的时间小于pull low的时间就是bit 0, 如果pull high的时间大于pull high的时间就是bit 1
请注意,如果您使用未安装在 PCB 上的 DHT 传感器,则必须添加一个 10K Ohm 上拉电阻。 您可以参考接线图。
AMB82 接线图:
DHT 传感器未安装在 PCB 板上
DHT 传感器安装在 PCB 板上
打开范例程式, “Files” -> “Examples” -> “AmebaGPIO” -> “DHT_Tester”,编译并上传到Ameba,完成之后按Reset按钮。
测量结果会显示在Serial Monitor上
程式码说明
dht.readHumidity()
可以读取湿度,dht.readTemperature()
可以读取温度。每次读值的时候,都直接拿现有的数据使用。如果发现暂存的温湿度数据已经两秒没更新,才会主动向DHT要数据。
Copyrights ©瑞晟微电子(苏州)有限公司 2021. All rights reserved. 使用条款