使用 MQTT 传递传感器数据的 Cylon

Cylon with MQTT Passing Sensor Data

这可能很简单,但我无法在线找到解决方案。我正在使用 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();

谢谢

JSON.stringify({msg:1}) 将生成如下所示的字符串:{'msg': 1}

您可能希望在您的发布行中 JSON.stringify(msg) 发送 msg 对象。