我正在尝试弄清楚如何控制多个温度传感器。
设置:
注意:每个 ESP8266 微控制器处理一个 MCP9808 温度传感器。
目标: 中央机器(运行 Johnny-Five 的 MacOS)在一个 Node JS 脚本下处理两个微控制器。
问题: 我可以控制一个微控制器/温度配对,但不能在同一个脚本下同时控制。显然,同时处理两者的关键在于知道如何处理 IC2 寻址。到目前为止,我还没有找到任何可以用我能理解的术语清楚地解释逻辑的页面、论坛、说明或其组合。
问题: 如何使用 Johnny-5 处理 I2C 来控制多个设备
代码: 它仅在处理一个传感器时有效,而不是同时处理两个传感器。换句话说,第 4 行注释掉它有效。未注释,它没有。
var five = require("johnny-five");
var {EtherPortClient}=require("etherport-client");
var Thermometers=[
//{Name:"Thermometer1", Ip:"192.168.1.101"}, //Uncommenting causes fail.
{Name:"Thermometer2", Ip:"192.168.1.102"}
];
TrackThermometers();
function TrackThermometers(){
Thermometers.forEach(function(ThisThermometer, ThermometerCount){
ThisThermometer.Board=new five.Board({
port: new EtherPortClient({
host: ThisThermometer.Ip,
port: 3030
}),
repl: false
});
ThisThermometer.Board.on("ready", function(){
ThisThermometer.Controller=new five.Thermometer({ //This cmd triggers the error
controller:"MCP9808"
});
ThisThermometer.Controller.on("change", function(){
console.log(this.id, this.fahrenheit);
});
})
});
}