W1Temp与ds18b20在Raspberry Pi上使用Javascript

时间:2018-01-14 22:21:41

标签: javascript raspberry-pi requirejs

我正在Raspberry Pi上制作一个基于js的时钟。它以铬和镍为主。显示时间和时间天气(使用simpleWeather)。我连接了ds18b20,我也希望显示温度。设备工作正常,我可以从命令行读取温度,但我想读取它并在我的js脚本中显示它。

我正在使用w1temp。我得到了需要部分错误而没有正确加载w1temp,但我不明白我哪里出错了。有人可以指出我正确的方向吗?

我正在使用这样的要求:

require(['../../node_modules/w1temp'], function (W1Temp) { 
});

然后

setInterval( function () {
     W1Temp.getSensor('28-0414609d26ff').then(function (sensor) {
        // get inside temperature
        var temp = sensor.getTemperature();
        $("#inside_temp").html(temp);
     });
},1000);

在执行此操作时,我在加载页面时出现js错误&我的温度没有显示出来。错误是:

  

不允许加载本地资源:home/pi/node_modules/w1temp.js

我想这是因为它们不是home/pi/node_modules/w1temp.js,但我需要从w1temp中获取温度?

我知道我基于一个简单的误解而犯了一个简单的错误,&我已经阅读了w1temp文档,但我无法看到我出错的地方。我希望有人能指出我正确的方向。

1 个答案:

答案 0 :(得分:0)

npm软件包 ds18x20 运作良好。您可以使用同步或异步加载:

var sensor = require('ds18x20');

  sensor.getAll(function (err, tempObj) {
  console.log(tempObj); // will display temperature using the asynchronous method
});

var tempObj = sensor.getAll();
  console.log(tempObj); // will display temperature using the synchronous method

我尝试了其他几个npm软件包,但这是最容易使用的软件包,它提供了极大的帮助。