本文將講述如何使用nodemcu開發板與DHT11溫濕度傳感器獲取當前環境溫濕度資料,并從串口列印出來,
硬體連接

硬體連接如圖所示,
黑線為地線,紅線為接3.3V,藍色的線為資料線,使用杜邦線進行連接,
軟體代碼
硬體連接好后就可以開始寫代碼了,首先打開arduino IDE軟體,
相關開發板設定與庫檔案下載不在這里進行詳細描述,

本次使用的是DHT sensor library庫,在管理庫界面搜索“DHT”即可找到該庫進行下載安裝,
這里附上該庫的倉庫GitHub地址
【https://github.com/adafruit/DHT-sensor-library】
定義庫的頭檔案
#include <DHT.h>//定義庫的頭檔案
設定相關引數
#define DHTTYPE DHT11//溫濕度傳感器型號
#define DHT11_PIN 2//溫濕度檢測引腳
這里注意一下就是引腳的問題,在官方庫里有說到可以使用3、4、5、13、14等GPIO,本人一開始使用16就沒有得到正確的輸出,
構造實體化
DHT dht(DHT11_PIN,DHTTYPE);//實體化
溫濕度資料獲取函式
void dht11(){
float tem;
float hum;
//讀取溫濕度資料
dht.begin();//本人也沒有弄懂這句是什么意思,請大佬指點一二!
tem=dht.readTemperature();//獲取溫度值,帶小數點
hum=dht.readHumidity();//獲取濕度值,帶小數點
delay(300);//讀取數值時需要250us,所以這里延時了300us
Serial.print("t=");
Serial.print(tem);
Serial.print("*C,h=");
Serial.print(hum);
Serial.print("%\n");
}
全部代碼
#include <DHT.h>//定義庫的頭檔案
#define DHTTYPE DHT11//溫濕度傳感器型號
#define DHT11_PIN 2//溫濕度檢測引腳
DHT dht(DHT11_PIN,DHTTYPE);//實體化
void dht11(){
float tem;
float hum;
//讀取溫濕度資料
dht.begin();//本人也沒有弄懂這句是什么意思,請大佬指點一二!
tem=dht.readTemperature();//獲取溫度值,帶小數點
hum=dht.readHumidity();//獲取濕度值,帶小數點
delay(300);//讀取數值時需要250us,所以這里延時了300us
Serial.print("t=");
Serial.print(tem);
Serial.print("*C,h=");
Serial.print(hum);
Serial.print("%\n");
}
void setup() {
pinMode(DHT11_PIN, INPUT);//對DHT資料埠進行埠設定
Serial.begin(115200);//設定串口波特率
}
void loop() {
delay(1000);//延時處理
dht11();//獲取資料并通過串口列印
}
重點難點
這里主要注意的是絲印上的引腳號與arduino里的數字標號不一樣的,像本人一開始使用的16,是在絲印D0的腳位,以下是絲印與GPIO的對應表
| nodemcu板上絲印 | 代碼對應編號 |
|---|---|
| D0 | 16 |
| D1 | 5 |
| D2 | 4 |
| D3 | 0 |
| D4 | 2 |
| D5 | 14 |
| D6 | 12 |
| D7 | 13 |
| D8 | 15 |
以上如有錯誤的地方,麻煩看官們指正!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/272314.html
標籤:其他
