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);
}