零知开源分享 - 温湿度模块DHT11的使用-Arduino中文社区 - Powered by Discuz! Archiver

零知实验室-roc 发表于 2019-5-13 16:04

零知开源分享- 温湿度模块DHT11的使用

本帖最后由 零知实验室-roc 于 2019-5-13 16:06 编辑

1、说明MCU:零知开源开发板-标准板
https://www.amobbs.com/data/attachment/forum/201905/13/151704uws3p70j0p6lcc2j.jpg

模块:DHT11模块
https://www.amobbs.com/data/attachment/forum/201905/13/151111pkixnn28sjspjsi1.png


开发工具:零知开源开发工具
https://www.amobbs.com/data/attachment/forum/201905/13/151335qhjxv8777nv7nt2t.png

DHT11模块是单总线的接口,使用非常简单,供电3.3-5V,可以直接在零知实验室平台上使用。接线如下所示,把模块的OUT脚与零知标准板的A0引脚相连接即可。
https://www.amobbs.com/data/attachment/forum/201905/13/152105b27squ9mq2d2mmbq.jpg

2、测试
相应连线接好后,只需打开零知开源开发工具找到相应的代码,上传程序打开调试窗口即可看到调试结果。
https://www.amobbs.com/data/attachment/forum/201905/13/154309c71m7fqlrf8zclg8.png
https://www.amobbs.com/data/attachment/forum/201905/13/154446sv3adaqy0l0vceu3.png

3、核心代码
// DHT11温湿度传感器demo演示

#include "dht11.h"

//使用DHT11
DHT sensor;

void setup()
{
    Serial.begin(9600);

    //使用A0引脚连接到DHT11模块的输出脚
    sensor.attach(A0);

    delay(1000);
}

void loop()
{
    //开始获取温湿度数据
    sensor.update();

    switch (sensor.getLastError())
    {
      case DHT_ERROR_OK:
            char msg;
            // 格式化输出
            sprintf(msg, "Temperature = %dC, Humidity = %d%%",
                  sensor.getTemperatureInt(), sensor.getHumidityInt());
            Serial.println(msg);
            break;
      case DHT_ERROR_START_FAILED_1:
            Serial.println("Error: start failed (stage 1)");
            break;
      case DHT_ERROR_START_FAILED_2:
            Serial.println("Error: start failed (stage 2)");
            break;
      case DHT_ERROR_READ_TIMEOUT:
            Serial.println("Error: read timeout");
            break;
      case DHT_ERROR_CHECKSUM_FAILURE:
            Serial.println("Error: checksum error");
            break;
    }

    delay(2000);
}


完整工程代码可到零知实验室免费获取。
页: [1]
查看完整版本: 零知开源分享- 温湿度模块DHT11的使用