Я пытаюсь понять, как управлять несколькими датчиками температуры.
НАСТРОЙКА:
- 2 ESP8266 Микроконтроллеры
- 2 MCP9808 Температурные датчики
- 1 Машина, управляющая обоими ESP с помощью Johnny-Five.
ПРИМЕЧАНИЕ: Каждый микроконтроллер ESP8266 обрабатывает один MCP9808Датчик температуры.
ЦЕЛЬ: Центральный компьютер (MacOS под управлением Johnny-Five) обрабатывает оба микроконтроллера по одному сценарию Node JS.
ПРОБЛЕМА: Я могу управлять одним спариванием Микроконтроллер / Температура, но не обоими по одному сценарию.Очевидно, что ключ к обработке обоих заключается в знании того, как обрабатывать адресацию IC2.До сих пор я не смог найти ни одной страницы, форума, инструкции или их комбинации, которые бы четко объясняли логику в понятных мне терминах.
ВОПРОС: Как обращаться с I2Cиспользование Johnny-Five для управления несколькими устройствами
КОД: Работает только при работе с одним датчиком, а не с обоими. Другими словами, с закомментированной 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);
});
})
});
}