2

我对这一切还很陌生,但是我弄糊涂了让我的 Arduino 将值发布到我命名为“Lux and Temp”的 Xively 流中。三个值;计数、勒克斯和温度。

现在我想做的是获取这些值并使用 Node-Red 对它们做一些事情。 http://nodered.org

我已经启动并运行了 Node-Red,但如果我能弄清楚如何解析来自 Xively API 提要的数据,我会很危险。 https://api.xively.com/v2/feeds/1823833592

可悲的是,我没有足够的信誉点来实际将它返回的数据发布到这里,因为它在数据中嵌入了超过 3 个 URL。这也是一长串数据。;)

我只是对如何编写函数来提取我想要的部分感到困惑。

我最初的愿望是用它制作一个简单的 Twitter 提要。就像是;

“计数 40,勒克斯 30,温度 78.3”

我最终会想为其他事情回收代码,比如让我的 RasPi 做一些事情;可能是显示器或一些 LED。无论哪种情况,我都需要解析数据并用它构建各种消息。

有人对可以引导我完成解决方案的 Node-Red 功能有任何经验吗?Node-Red 网站非常棒,但我认为它假设我是一个比实际经验丰富得多的用户。它给出了提示,但坦率地说,我所知道的只是相当基本的 Arduino 和微不足道的 Python。

4

1 回答 1

0

好的,它不应该太棘手,但试着把它放在一个功能块中:

var newPayload = "";
var count, lux, temp;

var data = msg.payload.datastreams;

for (var i = 0 ; i< data.length; i++) {
  if (data[i].id === 'Count') {
    count = data[i].current_value;
  }else if (data[i].id === 'Lux') {
    lux = data[i].current_value;
  } else if (data[i].id === 'Temp') {
    temp = data[i].current_value;
  }
}

newPayload = util.format('Count: %s, Lux: %s, Temp: %s', count, lux, temp);

msg.payload = newPayload;

return msg;

您可能需要添加一个 msg.payload = JSON.parse(msg.payload); 但是,如果您从 xively 获取的提要尚未被视为 json。[编辑] 您也可以只通过 JSON 解析节点运行流程。(我总是忘记转换器节点)

您应该能够将其连接到 twitter 输出节点。

于 2014-06-12T15:41:29.643 回答