自從在樹莓派上實(shí)現(xiàn)了點(diǎn)亮LED燈,訪問網(wǎng)頁使LED閃爍之后,迫不及待地想玩?zhèn)鞲衅?。所以我們找到簡單的溫濕度檢測,相信選擇nodejs在樹莓派上開發(fā)的小伙伴很快就找到node-dht-sensor,于是乎我們打開它的github地址。在樹莓派上接好DHT11之后,發(fā)現(xiàn)要寫的代碼很簡單,就3步:
1.裝包
$ npm install node-dht-sensor
2.新建一個dht.js文件
把代碼復(fù)制過來
//dht.js
var sensor = require("node-dht-sensor");
//第一個參數(shù) 11 指dht的型號dht11;
//第二個參數(shù) 4 指將信號輸出接GPIO4,即引腳7。
sensor.read(11, 4, function(err, temperature, humidity) {
if (!err) {
console.log(`temp: ${temperature}°C, humidity: ${humidity}%`);
}
});
3.編譯執(zhí)行
node dht.js
---------------------------如果控制臺成功輸出了溫濕度,那么請忽略以下內(nèi)容。----------------------------
如果你的控制臺像直接回車一樣沒輸出,或者err的內(nèi)容如下:{ humidity: 0, temperature: 0, isValid: false, errors: 4 },而且你是是按照這個圖來接。
image.png
那么下面讓我救你于水火之中。我也折騰許久實(shí)在是沒轍,翻遍某搜索引擎找不到解決方法,幸好在一位外國朋友提的問題里面得到了解決。附上原文。原來這個DHT11還有多種不一樣的,這里需要特別注意一下。真的接錯了?。?!
image.png
image.png
最后成功輸出了
temp: 20°C, humidity: 79%
順便提一下,發(fā)現(xiàn)大多數(shù)網(wǎng)友在以前都提到了安裝 BCM2835,但是現(xiàn)在node-dht-sensor官方明確指出

image.png
意思是,與版本0.0.x不同,當(dāng)前0.4.1,無需預(yù)安裝BCM2835庫。
悄悄說一下,某度很有局限。


