这可能很简单但我找不到在线解决方案。我正在使用Cylon和MQTT进行气象站项目,并尝试将变量传递到MQTT推送,但它正在传递文字文本。发布成功但它只有“msg”而不是传感器数据。这是片段..
Cylon.robot({
connections: {
edison: { adaptor: 'intel-iot' }
},
devices: {
bmp180: { driver: 'bmp180' }
},
work: function(my) {
my.bmp180.getTemperature(function(err, val) {
if (err) {
console.log(err);
return;
}
console.log("\tTemp: " + val.temp + " C");
var msg = { "temperature" : val.temp,
"pressure" : val.press,
"altitude" : val.alt
};
var msgPressure = { "pressure" : val.press };
var msgAltitude = { "altitude" : val.alt };
device
.on('connect', function() {
console.log('connect');
device.subscribe('weather/push');
device.publish('weather/push', JSON.stringify({ msg: 1}));
});
device
.on('message', function(topic, payload) {
console.log('message', topic, payload.toString());
});
});
}
}).start();
谢谢
答案 0 :(得分:2)
JSON.stringify({msg:1})
会生成一个如下所示的字符串:{'msg': 1}
您可能希望发布行中的JSON.stringify(msg)
发送msg对象。