DHT11 温湿度传感器

Arduino 安装库 DHT-sensor-library ( DHT11, DHT22)

代码示例

// dht11
#include "DHT.h"

#define DHTPIN 2   //IO02 
#define DHTTYPE DHT11   // DHT 11
DHT dht(DHTPIN, DHTTYPE);

void setup() {
   //波特率设置
  Serial.begin(115200);
  //dht11
  dht.begin();
}

void loop() {
  float h = dht.readHumidity();
  // 湿度
  float t = dht.readTemperature();
  // 温度
  float f = dht.readTemperature(true);

  // Check if any reads failed and exit early (to try again).
  if (isnan(h) || isnan(t) || isnan(f)) {
    Serial.println(F("DHT 传感器读取失败!"));
    return;
  }

  // Compute heat index in Fahrenheit (the default)
  float hif = dht.computeHeatIndex(f, h);
  // Compute heat index in Celsius (isFahreheit = false)
  float hic = dht.computeHeatIndex(t, h, false);

  Serial.print(F("湿度: "));
  Serial.print(h);
  Serial.print(F("%  温度: "));
  Serial.print(t);
  Serial.print(F("°C "));
  Serial.print(f);
  Serial.print(F("°F  健康指数: "));
  Serial.print(hic);
  Serial.print(F("°C "));
  Serial.print(hif);
  Serial.println(F("°F"));
  delay(1000);

}

DHT11 OLED 显示中文 采集温湿度数据

代码示例

// dht11
#include "DHT.h"
//DHT11数据引脚
#define DHTPIN 2     
#define DHTTYPE DHT11   // DHT 11
DHT dht(DHTPIN, DHTTYPE);

//U8g2
#include <U8g2lib.h>
//u8g2 代替屏幕 设置SCL 5  SDA 4
U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/U8X8_PIN_NONE, /* clock=*/5, /* data=*/4); 

void setup() {
    //波特率设置
  Serial.begin(115200);



   //dht11
  dht.begin();

  u8g2.begin();
  u8g2.enableUTF8Print(); 
  u8g2.setFont(u8g2_font_wqy12_t_gb2312); //此处建议用gb2312字库,完整支持所有中文编码
  u8g2.setCursor(0, 15);
  u8g2.print("正在加载........."); 
  u8g2.sendBuffer();

}

void loop() {

  u8g2.clearDisplay(); // 清除显示数据及屏幕

  float h = dht.readHumidity();
  // Read temperature as Celsius (the default)
  float t = dht.readTemperature();
  // Read temperature as Fahrenheit (isFahrenheit = true)
  float f = dht.readTemperature(true);

   // Check if any reads failed and exit early (to try again).
  if (isnan(h) || isnan(t) || isnan(f)) {
    Serial.println(F("Failed to read from DHT sensor!"));
    return;
  }

   // Compute heat index in Fahrenheit (the default)
   float hif = dht.computeHeatIndex(f, h);
  // Compute heat index in Celsius (isFahreheit = false)
   float hic = dht.computeHeatIndex(t, h, false);

    Serial.print(F("Humidity: "));
    Serial.print(h);
    Serial.print(F("%  Temperature: "));
    Serial.print(t);
    Serial.print(F("°C "));
    Serial.print(f);
    Serial.print(F("°F  Heat index: "));
    Serial.print(hic);
    Serial.print(F("°C "));
    Serial.print(hif);
    Serial.println(F("°F"));

    u8g2.setCursor(0, 12);
    u8g2.print("湿度:");
    u8g2.println(String(h) + "%"); 
    u8g2.setCursor(0, 26);
    u8g2.print("温度:");
    u8g2.println(String(t) + "°C");    
    u8g2.setCursor(84, 58);
    u8g2.println(millis()); 

    u8g2.sendBuffer();
    delay(10);

}