node-dht-sensor及dht11在树莓派上检测温湿度

自从在树莓派上实现了点亮LED灯,访问网页使LED闪烁之后,迫不及待地想玩传感器。所以我们找到简单的温湿度检测,相信选择nodejs在树莓派上开发的小伙伴很快就找到node-dht-sensor,于是乎我们打开它的github地址。在树莓派上接好DHT11之后,发现要写的代码很简单,就3步:

1.装包

$ npm install node-dht-sensor

2.新建一个dht.js文件

把代码复制过来

//dht.js
var sensor = require("node-dht-sensor");

//第一个参数 11 指dht的型号dht11; 
//第二个参数 4 指将信号输出接GPIO4,即引脚7。
sensor.read(11, 4, function(err, temperature, humidity) {
  if (!err) {
    console.log(`temp: ${temperature}°C, humidity: ${humidity}%`);
  }
});

3.编译执行

node dht.js

---------------------------如果控制台成功输出了温湿度,那么请忽略以下内容。----------------------------

如果你的控制台像直接回车一样没输出,或者err的内容如下:{ humidity: 0, temperature: 0, isValid: false, errors: 4 },而且你是是按照这个图来接。

image.png

那么下面让我救你于水火之中。我也折腾许久实在是没辙,翻遍某搜索引擎找不到解决方法,幸好在一位外国朋友提的问题里面得到了解决。附上原文。原来这个DHT11还有多种不一样的,这里需要特别注意一下。真的接错了!!!
image.png

image.png

最后成功输出了
temp: 20°C, humidity: 79%

顺便提一下,发现大多数网友在以前都提到了安装 BCM2835,但是现在node-dht-sensor官方明确指出


image.png

意思是,与版本0.0.x不同,当前0.4.1,无需预安装BCM2835库。

悄悄说一下,某度很有局限。

你可能感兴趣的:(node-dht-sensor及dht11在树莓派上检测温湿度)