将传感器数据格式化为IBM Watson

时间:2018-04-09 06:55:27

标签: raspberry-pi iot cloudant node-red

我还是IBM Watson的新手。有什么办法可以格式化IBM Watson的传感器数据吗?我现在面临的问题是时间戳将日期和时间结合在一起,当我尝试在任何数据分析和可视化软件中创建某些数据可视化时,它会带来问题。我会更容易从时间戳中分割日期和时间。我知道数据是json格式的。

另外,我使用的是node-red,如果数据的格式化应该在节点红色处完成,请告诉我。

以下是我的样本传感器数据:

{
   "_id": "04691370-387e-11e8-8cd5-8b3f61628d0d",
   "_rev": "1-a4328ecd41d03b8e4ac86de06baf03d2",
   "deviceType": "RaspberryPi",
   "deviceId": "9074bd",
   "eventType": "event",
   "format": "json",
   "timestamp": "2018-04-05T11:04:12.583+08:00",
   "data": {
     "d": {
       "temperature": 19.5,
       "humidity": 44,
       "heatIndex": 18.65
     }
   }
 }

我正在使用的东西:

  • Raspberry Pi 3 Model B
  • Raspbian for Robots(德克斯特工业公司)
  • GrovePi +
  • GrovePi DHT 11,光传感器,声音传感器,紫外线传感器
  • Node Red,包含所有grovepi +节点,包括IBM Watson的节点
  • IBM Watson,IBM Waston Iot
  • Cloudant NoSQL DB
  • Cloudant的CData ODBC驱动程序
  • Microsoft Power Bi(可能会有所变化,取决于哪种软件更容易采用)

1 个答案:

答案 0 :(得分:1)

这只是JSON数据,没有什么可以阻止你向对象添加2个新字段(例如datetime)。

使用类似以下内容的函数节点在Node-RED中执行此操作可能是最简单的:

var timestamp = msg.payload.timestamp;

msg.payload.date = timestamp.substring(0,timestamp.indexOf('T'));
msg.payload.time = timestamp.substring(timestamp.indexOf('T') + 1);
return msg;