📖 第 33 章:DHT11数字温湿度传感器(DHT11)

🔧 正点原子《DMF407 开发指南》V1.0 · Chapter 33
🗨️ 「DHT11:温湿度合一的便宜传感器。」
这一章在干嘛? DHT11 实验:单总线协议(与 DS18B20 类似但格式不同)、40 bit 数据帧、温度+湿度一次性读取。
33.1 DHT11 及时序简介33.2 硬件设计33.3 程序设计33.4 下载验证

33.1 DHT11 及时序简介

DHT11 = 温湿度复合传感器:

原书图 33.1.1:DHT11 实物
原书图 33.1.1:DHT11 实物

数据帧 40 bit:

字节内容
0湿度整数
1湿度小数(常为 0)
2温度整数
3温度小数(常为 0)
4校验和(前 4 字节相加末 8 位)

原书图 33.1.2:DHT11 数据格式
原书图 33.1.2:DHT11 数据格式

33.2 硬件设计

PG11 接 DQ,外接 4.7kΩ 上拉。

原书图 33.2.1:DHT11 接线图
原书图 33.2.1:DHT11 接线图

33.3 程序设计

33.3.1 关键代码

uint8_t dht11_read(uint8_t *temp, uint8_t *humi) {
    dht11_init();                     // 复位
    for (int i = 0; i < 5; i++) {
        dht11_buf[i] = dht11_read_byte();
    }
    if (dht11_buf[4] == (dht11_buf[0]+dht11_buf[1]+dht11_buf[2]+dht11_buf[3]) & 0xFF) {
        *humi = dht11_buf[0];
        *temp = dht11_buf[2];
        return 0;
    }
    return 1;   // 校验失败
}

33.4 下载验证

串口每秒打印温度和湿度,呼吸产生的水汽看湿度变化。

进阶:DHT22 是 DHT11 升级版,温度 -40~80℃、湿度 0~100%、精度更高。

🧠 小测验
DHT11 数据帧多少 bit?
40 bit。
DHT11 默认分辨率多少?
8 位。
校验和计算方式?
前 4 字节相加取低 8 位。
← 上一篇🏠 顶层目录下一篇 →