DHT11數字溫濕度傳感器是一款含有已校準數字信號輸出的溫濕度綜合傳感器,在Arduino提高篇中已對其進行了介紹,本篇使用ESP8266來驅動IOT Kit板載DHT11溫濕度傳感器,并通過OLED進行顯示。
1. DHT11介紹
DHT11是一款溫濕度一體的數字傳感器,內部包括一個電阻式測濕元件和一個NTC測溫元件,并與一個高性能8位單片機連接。外部只需要簡單的電路連接,就能實時采集本地溫濕度。DHT11與單片機等控制器采用簡單的單總線進行通訊,只需要一個I/O口。傳感器內部溫濕度數據40Bit一次性傳給單片機,數據采用校驗和的方式進行校驗,有效地保證數據傳輸的準確性。
DHT11技術參數如下:
DHT11的管腳排列,窗孔朝上,從左到右依次為VCC、Dout、NC、GND。
2. 安裝驅動庫
在Arduino IDE中點擊「項目」—「加載庫」—「管理庫」,輸入"dht11",選擇「DHT sensor library」進行安裝。
查找庫
在彈出的對話框中選擇Install all,安裝全部的關聯庫。
安裝關聯庫
3. 硬件連接及程序下載
在IOT Kit上,DHT11溫濕度傳感器通過跳線帽連接到ESP8266的GPIO14。
電路連接
在Arduino IDE中新建sketch,拷貝如下代碼保存并下載到開發板。
/*
* dht11
* ESP8266驅動DHT11溫濕度傳感器
* OLED顯示
*/
#include
#include
#include
#include "DHT.h"
#define DHT_Pin 14 //控制引腳
#define DHTTYPE DHT11 //傳感器類型 DHT11 DHT21 DHT22
DHT dht(DHT_Pin, DHTTYPE);
Adafruit_SSD1306 oled(128, 64, &Wire,-1);
void setup() {
oled.begin(SSD1306_SWITCHCAPVCC,0x3C);
oled.setTextColor(WHITE);//開像素點發光
oled.clearDisplay();//清屏
oled.setTextSize(2); //設置字體大小
oled.display(); // 開顯示
dht.begin();
}
void loop() {
float h = dht.readHumidity();
float t = dht.readTemperature();
oled.clearDisplay();//清屏
oled.setCursor(10, 10);//設置顯示位置
oled.print("T:");
oled.print(t);
oled.println(" C");
oled.setCursor(10, 40);//設置顯示位置
oled.print("H:");
oled.print(h);
oled.println(" %");
oled.display(); // 開顯示
delay(1000);
}
上傳成功后,OLED將顯示當前環境溫濕度數據。
實驗現象
-
OLED
+關注
關注
119文章
6200瀏覽量
224198 -
溫濕度傳感器
+關注
關注
5文章
579瀏覽量
35721 -
Arduino
+關注
關注
188文章
6469瀏覽量
187056 -
DHT11
+關注
關注
19文章
277瀏覽量
57592 -
ESP8266
+關注
關注
50文章
962瀏覽量
45001
發布評論請先 登錄
相關推薦
評論