专注电子技术学习与研究
当前位置:单片机教程网 >> STM32 >> 浏览文章

使用DHT11温湿度传感器测量温湿度

作者:huqin   来源:本站原创   点击数:  更新时间:2014年04月19日   【字体:

   DHT11是一款常用的温湿度传感器,用它可以非常方便测出环境的温度和湿度。DHT11采用单线通信方式,因此我们只需要使用Rainbow一个GPIO即可以进行温湿度测量。在Rainbow中,使用的是PC3来向DHT11发送温湿度测量指令,并读取结果的,在类库开发包中,我们定义了一个宏DHT11_DATA_PIN来表示DHT11所使用的GPIO管脚。

    Rainbow对DHT11的通信协议进行了封装,使用起来非常简单,一两行代码即可完成测温湿度的功能。为了快速体验DHT11的效果,在软件包的“Projects\DHT11”文件夹包含了本文的完整工程,可以直接编译、烧写和调试。来看看main.cpp的代码:
#include "WProgram.h"
#include "Dht11.h"

int main(void)
{
    //定义Dth11对象,需要指定DHT11数据管脚对应的GPIO管脚,DHT11_DATA_PIN在这里代表PC3
    Dht11 dht11(DHT11_DATA_PIN);

    //初始化开发板
    boardInit();
    //启用默认串口,波特率9600
    Serial.start();

    while(1)
    {
        //判断数据采集是否成功
        if(dht11.read() == Dht11::OK)
        {
            Serial.print("Temperature:");
            Serial.println(dht11.getTemperature());

           Serial.print("Humidity:");
           Serial.println(dht11.getHumidity());
        }
        delay(5000);
    }
}

    程序非常简单,有下面几点需要注意:
    1、使用DHT11类库,需要#include "Dht11.h"
    2、只有dht11.read()返回的结果是Dht11::OK才表示本次温湿度采集成功,方能读取温湿度

    上面的程序编译无误后,将程序烧写到Rainbow中,并将DHT11温湿度传感器插入到Rainbow中专为DHT11设计的接口中,然后在电脑上运行串口调试工具并和Rainbow连接成功,此时在串口调试工具中将每隔5秒钟看到DHT11采集的最新温度和湿度。

关闭窗口

相关文章