超过20小时的运行时间后,约翰尼5框架和DS18B20出现问题

时间:2019-04-04 11:20:13

标签: javascript node.js sensor johnny-five

我有一个DS18B20连接到Arduino Uno。 Arduino运行可配置的固件。 Node.js脚本console.log每3秒记录一次温度变化,并将温度值发送到t []数组。如果温度> 29°C,nodemailer将发送警告消息。 约翰尼五号温度读取和nodemailer都有各自的模块。 一切正常,但是在10到20个小时后发生了一些奇怪的事情。第三个值是正确的温度读数,其他值则为+ 21.125°C-+ 25°C(请参阅下面的图片链接,传感器在+ 60°C的水中)。我用热水测试了这个问题,发现了这个错误。 这是什么? 是Firmata还是Johnny-五个问题,还是什么?


let t = [];

board.on("ready", function() {

var thermometer = new five.Thermometer({
   controller: "DS18B20",
    pin: 3,
    freq: 100
});

thermometer.on("change", function() {
    var temp = this.celsius;
    t[0] = temp;  
});

setInterval(function() {console.log(t[0]);}, 3000);

这是用于读取温度并将值发送到数组的代码。如果我使用t.push(temp),node.js会给出一些time.out错误(下面的图片链接)。因此,这是我使程序正常运行而没有time.out错误的唯一方法,但是现在我遇到了这个奇怪的问题。

Temperature error Timeout event.js error

0 个答案:

没有答案