弘毅 发表于 2014-4-25 16:11:16

OCROBOT入门教程017--温湿度监控

本帖最后由 董董soul 于 2016-10-27 11:07 编辑

DHT11是温湿度检测中非常常用的一款处理器。这节课我们学习一下怎样驱动它,然后通过串口输出当前环境的温湿度数据。

驱动DHT11我们会使用一个专门用于驱动它的库,什么是库呢?简单一点可以这么理解。库就是一个过程的集合。。。。貌似说的木有那么通俗。。。就用DHT11打比方,DHT11是单总线传感器,驱动他的时候我们需要写很多驱动代码,1,2,3,4步骤等等。。。。如果我们调用DHT11的库,在库中有一个函数叫做“启动”。当你运行“启动”函数时,就相当于运行了1,2,3,4这些步骤。代码结构就会更合理简洁易懂。

看一下硬件连接。



库文件有两种安装方法,首先介绍一下第一种。

我们打开IDE的目录,在里面可以找到libraries这个文件夹,该文件夹就是用来存放库文件的。



我们打开libraries,会看到各种库文件目录,我们把解压缩后的dht_sensor目录放在该文件夹下。



我们进一步打开dht_sensor文件夹,可以看到DHT.cpp和DHT.h。如果文件夹下不是.cpp和.h文件,又有一层dht_sensor那就会导致库无法使用,这点需要切记。



// 这个例子用来驱动各款DHT温湿度传感器
// Written by ladyada, public domain

#include "DHT.h"

#define DHTPIN 2   // 定义DHT温湿度传感器连接到的引脚

// Uncomment whatever type you're using!
#define DHTTYPE DHT11   // DHT 11
//#define DHTTYPE DHT22   // DHT 22(AM2302)
//#define DHTTYPE DHT21   // DHT 21 (AM2301)

// 传感器的1号引脚(在最左边)连接到+5V
// 传感器的2号引脚连接到DHTPIN所定义的引脚
// 传感器的4号引脚(在最右边)连接到GND
// 在传感器的2号引脚(data)和1号引脚(vcc)之间连接一个10K电阻

DHT dht(DHTPIN, DHTTYPE);

void setup() {
Serial.begin(9600);
Serial.println("DHTxx test!");

dht.begin();
}

void loop() {
// 读取温度或者湿度大约需要250毫秒时间
// 传感器读取数据也可能超过2秒(它是一个反应速度很慢的传感器)
float h = dht.readHumidity();
float t = dht.readTemperature();

// 检查返回的数据是否是幼小的,如果是非数字数据,那么就说明出错了。
if (isnan(t) || isnan(h)) {
    Serial.println("Failed to read from DHT");
} else {
    Serial.print("Humidity: ");
    Serial.print(h);
    Serial.print(" %\t");
    Serial.print("Temperature: ");
    Serial.print(t);
    Serial.println(" *C");
}
}

http://player.youku.com/player.php/sid/XNzE3ODIwMzYw/v.swf

aamike 发表于 2014-5-14 22:41:47

:):):):):):):)

cddxwfl 发表于 2015-2-25 23:54:51

电阻是多大的啊?

弘毅 发表于 2015-3-6 09:54:20

cddxwfl 发表于 2015-2-25 23:54 static/image/common/back.gif
电阻是多大的啊?

用10K即可

Aceb1shmael 发表于 2016-1-27 13:19:33

有没有什么方法可以把测到的数据写到电脑的硬盘上啊

lglfa 发表于 2016-4-25 10:10:31

想问下这些pin我可以随便指定么,有什么说法么:)

弘毅 发表于 2016-4-25 14:46:58

lglfa 发表于 2016-4-25 10:10 static/image/common/back.gif
想问下这些pin我可以随便指定么,有什么说法么

DHT11是任意IO就可以,随便指定。

mlyl 发表于 2017-2-22 09:47:38

:):):):):):):)
页: [1]
查看完整版本: OCROBOT入门教程017--温湿度监控