首先要貼一張圖。這張圖很重要,一開始我犯錯就在這。。。
我畫紅框的部分,就是ESP8266與Nodemcu之間的引腳IO關系
這個列表詳細列示了。這之間的對應關系以及注意事項
基本上一看就能看明白,我一開始,鏈接D6的時候,在程序里邊直接寫的就是D6的IO號,所以讀不出數據來,因為D6的IO號讀取的事GPIO12的值,也就是說程序里應該填12而非6.這點是我犯得低級錯誤
OK。接溫度傳感器很簡單,網上標准說要用5v.其實直連esp8266。3.3v也是沒有任何問題的。按照標准圖例,需要接電阻,3。3K的電阻好像,我這也沒接也沒任何問題,網上有人說,在DH11傳感器上,已經接入了這個電阻,所以不需要再額外接電阻了。
程序引用了庫
#include <SimpleDHT.h>
關於引用該庫,只需要在arduino中搜索並安裝SimpleDHT即可
引用該庫之后,代碼就很簡單了。
int pinDHT11 = 2; //IO2
SimpleDHT11 dht11(pinDHT11);
void setup() {
Serial.begin(115200);
}
void loop() {
byte temperature = 0;
byte humidity = 0;
int err = SimpleDHTErrSuccess;
if ((err = dht11.read(&temperature, &humidity, NULL)) != SimpleDHTErrSuccess) {
Serial.print("Read DHT11 failed, err="); Serial.println(err);delay(1000);
return;
}
Serial.print((int)temperature); Serial.print(" *C, ");
Serial.print((int)humidity); Serial.println(" H");
delay(1500);
}
數值穩步讀出
我同時測試了繼電器。也OK。所以,只要插好IO口,寫好IO口號,基本上就很簡單的操作了。