“(SKU:SEN030000)DHT11数字温湿度传感器”的版本间的差异

来自YwRobot Studio Wiki
跳转至: 导航搜索
(创建页面,内容为“DHT11 ==简介== DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应...”)
 
更多
 
(未显示3个用户的5个中间版本)
第13行: 第13行:
 
*尺寸:30*21mm
 
*尺寸:30*21mm
 
*重量:4g
 
*重量:4g
 +
*固定孔:3mm
 +
*孔距:15mm
 
*电压:3.3V、5V
 
*电压:3.3V、5V
 
*端口:数字双向单总线
 
*端口:数字双向单总线
第18行: 第20行:
 
*湿度范围:20-90%RH  ±5%RH
 
*湿度范围:20-90%RH  ±5%RH
 
*平台:Arduino、单片机、ARM、树莓派
 
*平台:Arduino、单片机、ARM、树莓派
 
  
 
==使用教程==
 
==使用教程==
第24行: 第25行:
 
===连接图===
 
===连接图===
  
[[File:DHT11LINE.jpg|400px|]]
+
[[File:Dht11接线图-02.jpg |400px|]]
 +
[[File:Dht11接线图-03.jpg |400px|]]
  
 
===样例代码===
 
===样例代码===
第30行: 第32行:
 
<pre style="color:blue">
 
<pre style="color:blue">
  
#define DHT11_PIN 0      // ADC0
+
//
 +
//  FILE:  dht11_test1.pde
 +
// PURPOSE: DHT11 library test sketch for Arduino
 +
//
 +
#include <DHT11.h>
 +
DHT11 DHT;
 +
#define DHT11_PIN 4
  
byte read_dht11_dat()
+
void setup(){
{
+
   Serial.begin(9600);
   byte i = 0;
+
   Serial.println("DHT TEST PROGRAM ");
   byte result=0;
+
   Serial.print("LIBRARY VERSION: ");
   for(i=0; i< 8; i++)
+
   Serial.println(DHT11LIB_VERSION);
   {
+
  Serial.println();
    while(!(PINC & _BV(DHT11_PIN))); // wait for 50us
+
  Serial.println("Type,\tstatus,\tHumidity (%),\tTemperature (C)");
    delayMicroseconds(30);
+
    if(PINC & _BV(DHT11_PIN))
+
      result |=(1<<(7-i));
+
    while((PINC & _BV(DHT11_PIN)));  // wait '1' finish
+
    }
+
    return result;
+
 
}
 
}
  
 +
void loop(){
 +
  int chk;
 +
  Serial.print("DHT11, \t");
 +
  chk = DHT.read(DHT11_PIN);    // READ DATA
 +
  switch (chk){
 +
    case DHTLIB_OK: 
 +
                Serial.print("OK,\t");
 +
                break;
 +
    case DHTLIB_ERROR_CHECKSUM:
 +
                Serial.print("Checksum error,\t");
 +
                break;
 +
    case DHTLIB_ERROR_TIMEOUT:
 +
                Serial.print("Time out error,\t");
 +
                break;
 +
    default:
 +
                Serial.print("Unknown error,\t");
 +
                break;
 +
  }
 +
// DISPLAT DATA
 +
  Serial.print(DHT.humidity,1);
 +
  Serial.print(",\t");
 +
  Serial.println(DHT.temperature,1);
  
void setup()
 
{
 
  DDRC |= _BV(DHT11_PIN);
 
  PORTC |= _BV(DHT11_PIN);
 
  Serial.begin(9600);
 
  Serial.println("Ready");
 
}
 
 
void loop()
 
{
 
  byte dht11_dat[5];
 
  byte dht11_in;
 
  byte i;// start condition
 
// 1. pull-down i/o pin from 18ms
 
  PORTC &= ~_BV(DHT11_PIN);
 
  delay(18);
 
  PORTC |= _BV(DHT11_PIN);
 
  delayMicroseconds(40);
 
  DDRC &= ~_BV(DHT11_PIN);
 
  delayMicroseconds(40);
 
 
 
  dht11_in = PINC & _BV(DHT11_PIN);
 
  if(dht11_in)
 
  {
 
    Serial.println("dht11 start condition 1 not met");
 
    return;
 
  }
 
  delayMicroseconds(80);
 
  dht11_in = PINC & _BV(DHT11_PIN);
 
  if(!dht11_in)
 
  {
 
    Serial.println("dht11 start condition 2 not met");
 
    return;
 
  }
 
 
 
  delayMicroseconds(80);// now ready for data reception
 
  for (i=0; i<5; i++)
 
    dht11_dat[i] = read_dht11_dat();
 
  DDRC |= _BV(DHT11_PIN);
 
  PORTC |= _BV(DHT11_PIN);
 
  byte dht11_check_sum = dht11_dat[0]+dht11_dat[1]+dht11_dat[2]+dht11_dat[3];// check check_sum
 
  if(dht11_dat[4]!= dht11_check_sum)
 
  {
 
    Serial.println("DHT11 checksum error");
 
  }
 
  Serial.print("Current humdity = ");
 
  Serial.print(dht11_dat[0], DEC);
 
  Serial.print(".");
 
  Serial.print(dht11_dat[1], DEC);
 
  Serial.print("%  ");
 
  Serial.print("temperature = ");
 
  Serial.print(dht11_dat[2], DEC);
 
  Serial.print(".");
 
  Serial.print(dht11_dat[3], DEC);
 
  Serial.println("C  ");
 
 
   delay(2000);
 
   delay(2000);
 
}
 
}
第109行: 第78行:
  
 
==更多==
 
==更多==
[http://playground.arduino.cc/Main/DHTLib DTH库的来源链接]<br>
+
[[YWRobot产品资料下载]https://pan.baidu.com/s/15sh0Mo8ItsDCzvnBqWLiiw ]
 +
提取码:x47q
 +
 
 +
<br>
  
 
购买 [https://item.taobao.com/item.htm?spm=a1z10.3-c.w4002-11865958756.12.2skwzy&id=13920481742 YWRobot商城购买链接]
 
购买 [https://item.taobao.com/item.htm?spm=a1z10.3-c.w4002-11865958756.12.2skwzy&id=13920481742 YWRobot商城购买链接]
 
<br><br>
 
<br><br>

2019年1月30日 (三) 15:55的最新版本

DHT11

简介

DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。

传感器通过3P数字线直插Arduino。单线制串行接口,使系统集成变得简易快捷。配合控制器及代码,可以快速搭建产品。超小的体积、极低的功耗。


产品参数

  • 尺寸:30*21mm
  • 重量:4g
  • 固定孔:3mm
  • 孔距:15mm
  • 电压:3.3V、5V
  • 端口:数字双向单总线
  • 温度范围:0-50℃ ±2℃
  • 湿度范围:20-90%RH ±5%RH
  • 平台:Arduino、单片机、ARM、树莓派

使用教程

连接图

Dht11接线图-02.jpg Dht11接线图-03.jpg

样例代码


// 
//   FILE:  dht11_test1.pde
// PURPOSE: DHT11 library test sketch for Arduino
//
#include <DHT11.h>
DHT11 DHT;
#define DHT11_PIN 4

void setup(){
  Serial.begin(9600);
  Serial.println("DHT TEST PROGRAM ");
  Serial.print("LIBRARY VERSION: ");
  Serial.println(DHT11LIB_VERSION);
  Serial.println();
  Serial.println("Type,\tstatus,\tHumidity (%),\tTemperature (C)");
}

void loop(){
  int chk;
  Serial.print("DHT11, \t");
  chk = DHT.read(DHT11_PIN);    // READ DATA
  switch (chk){
    case DHTLIB_OK:  
                Serial.print("OK,\t"); 
                break;
    case DHTLIB_ERROR_CHECKSUM: 
                Serial.print("Checksum error,\t"); 
                break;
    case DHTLIB_ERROR_TIMEOUT: 
                Serial.print("Time out error,\t"); 
                break;
    default: 
                Serial.print("Unknown error,\t"); 
                break;
  }
 // DISPLAT DATA
  Serial.print(DHT.humidity,1);
  Serial.print(",\t");
  Serial.println(DHT.temperature,1);

  delay(2000);
}

更多

[[YWRobot产品资料下载]https://pan.baidu.com/s/15sh0Mo8ItsDCzvnBqWLiiw ] 提取码:x47q


购买 YWRobot商城购买链接