Javascript Maths节点红色热敏电阻功能

时间:2016-02-13 18:01:38

标签: javascript node.js node-red

节点红色运行,arduino模拟输出通过串口到pi,我在收集热敏电阻数据作为msg有效载荷。

尝试将Arduino信号转换为温度 - 这是adafruit出售的最常见的10K搪瓷热敏电阻。非常有用的代码。

问题在于我是JS的总菜鸟。

到目前为止,这是我的代码 - 使用函数节点 - 并尝试复制steinhart方程({{3}})

 var input = { payload: msg.payload };
var R0 = 10000;
var R = R0 / ((1023 / input)-1);
var T0 = 273 + 25;
var B = 3950;
var T =  1 / ( (1/T0) + (1/B) * Math.log(R/R0) );
return T;

1 个答案:

答案 0 :(得分:1)

我不确定msg.payload是否会返回实际数据类型中的数字" Number"意思或字符串将是一个数字,但这样的事情应该在尝试划分字符串时处理任何异常

var numInput = Number(msg.payload);
var R0 = 10000;
var R = R0 / ((1023 / input)-1);
var T0 = 273 + 25;
var B = 3950;
var T =  1 / ( (1/T0) + (1/B) * Math.log(R/R0) );
return T;

编辑:这应该可以解决错误:

var numInput = Number(msg.payload);
var R0 = 10000;
var R = R0 / ((1023 / numInput)-1);
var T0 = 273 + 25;
var B = 3950;
var T =  1 / ( (1/T0) + (1/B) * Math.log(R/R0) );
msg.payload = T;
return msg;