【问题标题】:How to publish sensor data to Bluemix via Beaglebone ZigBee Gateway如何通过 Beaglebone ZigBee 网关将传感器数据发布到 Bluemix
【发布时间】:2015-08-08 20:38:31
【问题描述】:

我有三个运行 ZigBee(不是 BLE)的 TI CC2650 SensorTag,它们连接到运行 Zstack 网关的 Beaglebone Black。我希望将传感器数据发布到 Bluemix,但找不到配方。

我已经看到通过 BBB 网关连接到 Bluemix 的 BLE 传感器示例,就像这样

https://github.com/ibm-messaging/iot-beaglebone

但我找不到任何基于 ZigBee 的传感器。

我需要一些帮助来完成这项工作,因为我不确定我是否可以从头开始。

任何指导将不胜感激。是否可以使用这个 BLE 示例并对 json 代码进行一些编辑?

谢谢! 约翰

【问题讨论】:

  • 嗨,Ben,我对这一切都很陌生,并且偶然发现了这一点。到目前为止,我在这里和那里找到了一些文档来使硬件通信正常工作。至于接下来的步骤,我不知道从哪里开始……关于从 BBB ZigBee 网关到 Bluemix 的发布的文档或类似示例,我几乎找不到。我希望找到一个类似的用例示例或就所需步骤获得一些建议……基本上是一个起点。

标签: sensors ibm-cloud gateway iot zigbee


【解决方案1】:

请看一下: https://git.ti.com/zigbee-iot-agent/zigbee-iot-agent

这是一个节点 js 应用程序,它连接到 ZStack Linux 网关(在 BBB 上运行)并提供以下功能:

  • 将 ZigBee 设备(灯、温度传感器、光传感器、开关)抽象为 JSON 对象。这已通过 Philips Hue Lights、TI ZLights (https://store.ti.com/cc2530zdk-zll-cc-debugger.aspx) 和 ZigBee 传感器标签(运行可从 BLE iOS 应用下载的 ZigBee 固件)进行测试。

  • 提供一个网页,让您可以控制 ZigBee 网络和设备。

  • 将设备数据转发到 QuickStart 服务,无需 Bluemix 帐户即可访问。

  • Web 界面可用于供应设备,以便它们可以连接到供应的 Bluemix 服务。这是控制设备所必需的,但确实需要一个 Bluemix 帐户。

这是一个示例节点红色流程,用于根据传感器标签光传感器报告的发光度控制灯光级别:

[{"id":"12345678.abcde","type":"ibmiot","name":"a-4sogfzc9cogqrg7d"},{"id":"12345678.abcde","type":"ibmiotin","authentication":"apiKey","apiKey":"12345678.abcde","inputType":"evt","deviceId":"001289ec0b10","applicationId":"","deviceType":"","eventType":"","commandType":"","format":"","name":"IBM IoT AppIn","service":"registered","allDevices":false,"allApplications":"","allDeviceTypes":true,"allEvents":true,"allCommands":"","allFormats":true,"x":434,"y":260,"z":"6581e5ae.9a7e1c","wires":[["fbbb817e.04448"]]},{"id":"12345678.abcde","type":"ibmiotout","authentication":"apiKey","apiKey":"12345678.abcde","outputType":"cmd","deviceId":"0012dc63f111","deviceType":"zbdevice","eventCommandType":"blink","format":"json","data":"{\"a\":\"on\":1}","name":"Light0012dc63f111Out","service":"registered","x":1026,"y":260,"z":"6581e5ae.9a7e1c","wires":[]},{"id":"fbbb817e.04448","type":"function","name":"LuminToLevel","func":"var lightMsg ={\n\t\"payload\": {\n\t \"a\": {\n\t\t \"on\":1,\n\t\t \"level\":255,\n\t}\n\t}\n};\n\t\n//light sensor Lumin is 0-0xFFFF, may this to 0xFF-0 light level\nlightMsg.payload.a.level= 0xFF -msg.payload.d.lumin / 0x100;\n\n//bound check\nif(lightMsg.payload.a.level > 0xFF)lightMsg.payload.a.level = 0xFF;\n//if(lightMsg.payload.a.level < 0)lightMsg.payload.a.level = 0;\n\nreturnlightMsg;\n","outputs":1,"valid":true,"x":639,"y":260,"z":"6581e5ae.9a7e1c","wires":[["cebf6c53.31409"]]},{"id":"cebf6c53.31409","type":"json","name":"","x":807,"y":260,"z":"6581e5ae.9a7e1c","wires":[["a9314c4.f56ceb"]]}]

问候, TC。

【讨论】:

  • TC,这是一个巨大的飞跃,谢谢!!!我现在在网络服务器中显示了所有三个传感器标签,但只有一个光和温度传感器以及每个传感器标签的开关,而不是 CC2650 传感器标签上的各种传感器。这也与我在网关控制台中看到的一致。在网络服务器和网关中,数据都没有更新,但可以清楚地找到设备……假设这是由于映射错误。您能否提供一些关于需要更改以从 cc2650 传感器标签中获取完整传感器详细信息的建议?感谢您的帮助,显然向前迈出了一大步。
【解决方案2】:

您可以使用 python 的Requests framework,它可以通过 url 发布您的数据。 (REST 方法)您可以使用 post、get、put、delete 等。

【讨论】:

    猜你喜欢
    • 2023-04-03
    • 2016-09-14
    • 1970-01-01
    • 2012-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-04
    • 1970-01-01
    相关资源
    最近更新 更多