带有MQTT传感器数据的赛隆

时间:2015-10-28 21:52:57

标签: mqtt iot intel-edison

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

谢谢

1 个答案:

答案 0 :(得分:2)

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

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