嵌入的视频演示了这些教程步骤。要观看该视频并按照教程中的步骤操作,请在一个单独的浏览器窗口中打开该 视频 。
本教程展示了如何将您的移动电话生成的传感器数据发送到 IBM Internet of Things Foundation 云托管服务,然后创建 Bluemix™ 应用程序来处理、可视化和存储该数据。最后,还将展示如何为移动电话创建一个 Android 应用程序。
以下是解决方案架构的概述:
点击查看大图
关闭 [x]
Internet of Things Foundation Starter 样板包含一个 Node-RED 引擎,您可在稍后使用它来处理 IoT 消息。现在您将创建一个 Internet of Things 服务来与云中的 IBM IoT 服务器来回传输消息。
iotdemodaniel3
。 点击查看大图
关闭 [x]
点击查看大图
关闭 [x]
显示了 IBM Internet of Things 服务器仪表板,它是一个与 Bluemix 独立的服务。为您的应用程序分配了一个组织 ID,您稍后在开发移动应用程序时将需要这个 ID。
点击查看大图
关闭 [x]
Android
"(您稍后将使用的应用程序需要此设备类型名称)。 点击查看大图
关闭 [x]
。
屏幕上显示了生成的设备。
点击查看大图
关闭 [x]
现在您已准好从一个设备向 IBM IoT 服务器发送 MQTT 消息。
如果您拥有 iPhone 或 iPad,您可使用 IoT Foundation Starter for iOS 。本文未介绍 iPhone 上的安装,但是如果您自行操作,可在本教程的剩余部分中使用 iOS 应用程序。
您将使用 IoT Starter for Android 应用程序在您的移动电话上读取和发送传感器数据。该应用程序的源代码和文档位于 IoT Foundation Starter for Android GitHub 项目 中。
如果您拥有 Android 开发的经验,您可从 GitHub 下载该代码 ,将它导入到您的 Android 开发环境中,然后生成该 apk 文件。否则,要快速安装并运行该应用程序,请执行以下步骤。
获取代码
打开您电话上的浏览器,输入此 URL:
https://ibm.box.com/iotstarterapp
您会被重定向到 https://m.box.com 和 iot-starter_501.apk 文件。
IoT Starter 应用程序现在已安装在您的 Android 设备上。
注意:该 .apk 文件是针对 Android 5.0.1 版而编译的。
接下来,您需要配置您的 Android 应用程序。
y6spgy
。 112233445566
"。 点击查看大图
关闭 [x]
点击查看大图
关闭 [x]
从您的移动电话发送的消息为 JSON 格式。它们包含加速和位置数据。
现在您已准备好在 Bluemix 上处理该消息数据了。
在本部分中,您将增强您的 Bluemix IoT 应用程序,使用一个 Node-RED 流来处理来自您的移动电话的消息,然后将消息发送回您的移动电话。该电话将通过更改应用程序的背景颜色来对这些消息做出反应。
Node-RED 是一个可视工具,它使得连接和处理 Internet of Things 消息变得很简单。
运行应用程序
点击查看大图
关闭 [x]
点击查看大图
关闭 [x]
本教程中的视频演示了 Node-RED 流编辑器的拖放特性。本教程给出了自动为您创建该流的代码。
使用此编辑器的拖放特性,您可组装一个消息流。您可在这里创建自己的流,但我们将导入下面的代码。但是首先要选择所有现有的节点,按 Delete 键删除它们。
复制以下代码(一行很长的代码)并将其粘贴到文本编辑器中:
[{"id":"215c6601.12d32a","type":"ibmiot in","authentication":"boundService","apiKey":"","inputType":"evt","deviceId":"","applicationId":"","deviceType":"","eventType":"accel","commandType":"","format":"json","name":"IBM IoT App In","service":"registered","allDevices":true,"allApplications":"","allDeviceTypes":true,"allEvents":"","allCommands":"","allFormats":"","x":264.1999969482422,"y":434.1999969482422,"z":"dc6a0ca6.7993b","wires":[["ce21edbb.320628","fdfdaaa2.a45678"]]},{"id":"ce21edbb.320628","type":"function","name":"calc color","func":"var accelZ = msg.payload.d.acceleration_z;/nvar r = 0.0;/nvar b = 0.0;/nvar g = 0.0;/nif (accelZ > 0) {/n/tg = Math.round(accelZ * 25);/n} else if (accelZ < 0) {/n/tr = 255.0;/n} else {/n/tr = 104;/n/tg = 109;/n/tb = 115;/n}/na = 1.0;/n/nmsg.eventOrCommandType = /"color/";/nmsg.payload = JSON.stringify({/"d/":{/"r/":r,/"b/":b,/"g/":g,/"alpha/":a}});/n/nreturn msg;","outputs":1,"noerr":0,"x":437.1999969482422,"y":430.1999969482422,"z":"dc6a0ca6.7993b","wires":[["9df37edb.5d4588"]]},{"id":"9df37edb.5d4588","type":"ibmiot out","authentication":"boundService","apiKey":"","outputType":"cmd","deviceId":"112233445566","deviceType":"Android","eventCommandType":"text","format":"json","data":"{/"d/":{/"value/":/"text/"}}","name":"IBM IoT App Out","service":"registered","x":629.1999969482422,"y":443.1999969482422,"z":"dc6a0ca6.7993b","wires":[]},{"id":"fdfdaaa2.a45678","type":"debug","name":"","active":false,"console":"false","complete":"false","x":442.1999969482422,"y":364.1999969482422,"z":"dc6a0ca6.7993b","wires":[]}]
点击查看大图
关闭 [x]
112233445566
),然后单击 OK 。 点击查看大图
关闭 [x]
您现在已在您的移动电话与第一个 Bluemix 应用程序之间建立了双向通信。
注意:此应用程序已记录在 Bluemix IoT Samples 页面 上。
在这一步中,您在 Bluemix 上创建一个额外的应用程序,它从您的移动电话(现在是一个 IoT 设备)接收消息并可视化该数据。
运行应用程序
获取代码
Your app is running
。 cf api https://api.ng.bluemix.net
cf login -u <your_bluemix_login_id>
cf login
命令仅在您第一次使用 cloud foundry 命令行工具时需要。您可能还需要输入您的 Bluemix 密码。如果您拥有多个 Bluemix 组织(这不是默认情况),您会被要求从中选择一个。 输入以下命令来将该应用程序部署到 Bluemix:
cf push <em><your_application_name></em>
这个命令寻找文件 manifest.yml 并使用来自该文件的参数。然后,它将代码上传到 Bluemix。片刻之后,您应该看到一条类似下面这条消息的消息:
OK
App <your app name> was started using this command 'node app.js'
。
点击查看大图
关闭 [x]
点击查看大图
关闭 [x]
在本教程中,您学习了如何轻松地将您的移动电话转变为传感器设备,将它连接到 IBM Internet of Things 服务器,然后发送和接收数据。您还学习了如何在 Bluemix 上处理和可视化设备数据。借助这两个应用程序,您可实现 Bluemix 对于 Internet of Things 的价值,而您所需的只是一部移动电话。
更多高级教程可在 https://www.ng.bluemix.net/docs/services/IoT/index.html 上获得。它们展示了如何将其他传感器设备连接到 Bluemix,比如 Texas Instruments CC2541、Arduino Uno 或 Raspberry Pi。
BLUEMIX SERVICE USED IN THIS TUTORIAL: Internet of Things: 此服务为应用程序提供了访问 IoT 设备和数据的简单且强大的方法。
相关主题: Internet of Things 和 Bluemix