转载

将您的移动电话转变为 IoT 设备

嵌入的视频演示了这些教程步骤。要观看该视频并按照教程中的步骤操作,请在一个单独的浏览器窗口中打开该 视频 。

本教程展示了如何将您的移动电话生成的传感器数据发送到 IBM Internet of Things Foundation 云托管服务,然后创建 Bluemix™ 应用程序来处理、可视化和存储该数据。最后,还将展示如何为移动电话创建一个 Android 应用程序。

以下是解决方案架构的概述:

将您的移动电话转变为 IoT 设备

点击查看大图

关闭 [x]

将您的移动电话转变为 IoT 设备

构建您的应用程序所需的准备工作

  • 一个Bluemix 帐户。
  • 下载并安装 Cloud Foundry 命令行接口 。
  • 一部移动电话(Android 或 iOS 设备)

第 1 步. 在 Bluemix 中创建一个 IoT 应用程序

Internet of Things Foundation Starter 样板包含一个 Node-RED 引擎,您可在稍后使用它来处理 IoT 消息。现在您将创建一个 Internet of Things 服务来与云中的 IBM IoT 服务器来回传输消息。

  1. 登录到您的 Bluemix 帐户 (或注册一个免费试用帐户)。
  2. 单击 Catalog
  3. 单击 Internet of Things Foundation Starter将您的移动电话转变为 IoT 设备
  4. 为您的应用程序输入一个名称。因为此名称也会用作主机名,所以它必须在 Bluemix 中是唯一的,例如 "iot <yourname> "。例如,我可以使用 iotdemodaniel3将您的移动电话转变为 IoT 设备
  5. 单击 Create
  6. 单击工具栏中的 Dashboard 并单击您新创建的应用程序。
  7. 单击 Add a Service or API
  8. 在左侧导航区域中,选择 Internet of Things 来过滤可用服务列表。选择 Internet of Things Foundation 服务。 将您的移动电话转变为 IoT 设备

    点击查看大图

    关闭 [x]

    将您的移动电话转变为 IoT 设备

  9. 保留默认设置,单击 CREATE
  10. 单击显示的消息中的 Restage 。您的应用程序已重新暂存。

第 2 步. 添加将向 IoT 服务器发送 MQTT 消息的设备

  1. 从 Bluemix 的仪表板中,选择您的应用程序,然后单击该新服务。
  2. 从服务页面中,单击 Launch Dashboard 按钮。 将您的移动电话转变为 IoT 设备

    点击查看大图

    关闭 [x]

    将您的移动电话转变为 IoT 设备

    显示了 IBM Internet of Things 服务器仪表板,它是一个与 Bluemix 独立的服务。为您的应用程序分配了一个组织 ID,您稍后在开发移动应用程序时将需要这个 ID。

    将您的移动电话转变为 IoT 设备

    点击查看大图

    关闭 [x]

    将您的移动电话转变为 IoT 设备

  3. 单击 Add a device ,然后单击 Create a device type 。在您的组织中,您可拥有多个设备类型,每种类型可有多个设备。一个 设备类型 是一组具有相同特征的设备;例如,它们可能提供相同的传感器数据。在我们的例子中,设备类型名称 必须 是 " Android "(您稍后将使用的应用程序需要此设备类型名称)。 将您的移动电话转变为 IoT 设备

    点击查看大图

    关闭 [x]

    将您的移动电话转变为 IoT 设备

  4. 单击 Next 。显示了一个页面,您可在其中输入该设备的详细信息,比如序列号或型号。您不需要为此演示指定此信息;只需单击 Next 。您也不需要指定任何元信息。单击 Next ,直到返回到 Add Device 对话框。
  5. 单击 Next 。输入设备 ID。例如, device ID 可能是您的移动电话的 MAC 地址。但是,它必须在您的组织中是唯一的。因此,您可输入类似 "112233445566" 的信息,就像我这里所做的一样。
  6. 保留 Meta Data 字段空着,然后单击 Next 。保留 Authentication token 字段空着,然后单击 Next
  7. 单击 Add

    屏幕上显示了生成的设备。

    将您的移动电话转变为 IoT 设备

    点击查看大图

    关闭 [x]

    将您的移动电话转变为 IoT 设备

  8. 复制该身份验证令牌,将它保存在一个文本文件中。您稍后将在您的设备上使用此令牌,而且您无法还原它。关闭对话框窗口。

现在您已准好从一个设备向 IBM IoT 服务器发送 MQTT 消息。

第 3 步. 安装并配置 Android 应用程序

如果您拥有 iPhone 或 iPad,您可使用 IoT Foundation Starter for iOS 。本文未介绍 iPhone 上的安装,但是如果您自行操作,可在本教程的剩余部分中使用 iOS 应用程序。

您将使用 IoT Starter for Android 应用程序在您的移动电话上读取和发送传感器数据。该应用程序的源代码和文档位于 IoT Foundation Starter for Android GitHub 项目 中。

如果您拥有 Android 开发的经验,您可从 GitHub 下载该代码 ,将它导入到您的 Android 开发环境中,然后生成该 apk 文件。否则,要快速安装并运行该应用程序,请执行以下步骤。

获取代码

  1. 在您的电话上,转到 Settings > Security 。在 Device Administration 下,启用 Unknown sources 。现在您可安装来自 Google Play 外部的 .apk 文件了。
  2. 打开您电话上的浏览器,输入此 URL:

    https://ibm.box.com/iotstarterapp

    您会被重定向到 https://m.box.com 和 iot-starter_501.apk 文件。

    将您的移动电话转变为 IoT 设备
  3. 单击 Download
  4. 使用一个文件浏览器应用程序(例如 ES File explorer,可从 Google Play 下载它)来在 Downloads 文件夹中找到该文件。
  5. 在该文件夹中,单击 iot-starter_501.apk 。单击 Install将您的移动电话转变为 IoT 设备

    IoT Starter 应用程序现在已安装在您的 Android 设备上。

    注意:该 .apk 文件是针对 Android 5.0.1 版而编译的。

接下来,您需要配置您的 Android 应用程序。

  1. 启动该 IoT Starter 应用程序。
  2. 输入以下参数:
    • Organization :显示在 IBM IoT 服务器上(在 第 2 步. 添加将向 IoT 服务器发送 MQTT 消息的设备 开头)的组织 ID。例如,本教程中的 y6spgy
    • Device ID :您配置的设备 ID,在 第 2 步. 添加将向 IoT 服务器发送 MQTT 消息的设备 末尾。例如,本教程中的 " 112233445566 "。
    • Auth Token :您在 第 2 步. 添加将向 IoT 服务器发送 MQTT 消息的设备末尾保存的身份验证令牌。
    将您的移动电话转变为 IoT 设备
  3. 单击 Activate Sensor 。现在该应用程序正在从您的移动电话的加速传感器收集数据,并将该数据发送到 IBM IoT 服务器。该应用程序显示加速计数据和发布或接收的消息数量。 将您的移动电话转变为 IoT 设备

第 4 步. 确认消息正在从您的移动电话发送到 IoT 服务器

  1. 返回到您的计算机,再次打开您组织的 IBM IoT 服务器页面(参见 第 2 步. 添加将向 IoT 服务器发送 MQTT 消息的设备 的开头)。
  2. 在 Devices 选项卡上,显示了您的 Android 设备。 将您的移动电话转变为 IoT 设备

    点击查看大图

    关闭 [x]

    将您的移动电话转变为 IoT 设备

  3. 单击该设备 ID。将显示一个弹出窗口,其中显示了从您的设备传入的消息。 将您的移动电话转变为 IoT 设备

    点击查看大图

    关闭 [x]

    将您的移动电话转变为 IoT 设备

    从您的移动电话发送的消息为 JSON 格式。它们包含加速和位置数据。

现在您已准备好在 Bluemix 上处理该消息数据了。

第 5 步. 在一个 Node-RED 流中处理消息

在本部分中,您将增强您的 Bluemix IoT 应用程序,使用一个 Node-RED 流来处理来自您的移动电话的消息,然后将消息发送回您的移动电话。该电话将通过更改应用程序的背景颜色来对这些消息做出反应。

Node-RED 是一个可视工具,它使得连接和处理 Internet of Things 消息变得很简单。

运行应用程序

  1. 打开 Bluemix,单击 Dashboard ,然后在您的 Bluemix 仪表板中,确认(您在第 1 步中创建的)您的 Bluemix IoT 应用程序在正常运行。
  2. 在浏览器中打开 <yourappname> .mybluemix.net,其中 <yourappname> 是您在第 1 步中创建的 Bluemix IoT 应用程序的名称。在您的 Bluemix 应用程序的 Node-RED 编辑器中,单击 Go to your Node-RED flow editor将您的移动电话转变为 IoT 设备

    点击查看大图

    关闭 [x]

    将您的移动电话转变为 IoT 设备

  3. 该编辑器将打开,其中包含一个示例流。 将您的移动电话转变为 IoT 设备

    点击查看大图

    关闭 [x]

    将您的移动电话转变为 IoT 设备

    本教程中的视频演示了 Node-RED 流编辑器的拖放特性。本教程给出了自动为您创建该流的代码。

    使用此编辑器的拖放特性,您可组装一个消息流。您可在这里创建自己的流,但我们将导入下面的代码。但是首先要选择所有现有的节点,按 Delete 键删除它们。

  4. 复制以下代码(一行很长的代码)并将其粘贴到文本编辑器中:

    [{&quot;id&quot;:&quot;215c6601.12d32a&quot;,&quot;type&quot;:&quot;ibmiot in&quot;,&quot;authentication&quot;:&quot;boundService&quot;,&quot;apiKey&quot;:&quot;&quot;,&quot;inputType&quot;:&quot;evt&quot;,&quot;deviceId&quot;:&quot;&quot;,&quot;applicationId&quot;:&quot;&quot;,&quot;deviceType&quot;:&quot;&quot;,&quot;eventType&quot;:&quot;accel&quot;,&quot;commandType&quot;:&quot;&quot;,&quot;format&quot;:&quot;json&quot;,&quot;name&quot;:&quot;IBM IoT App In&quot;,&quot;service&quot;:&quot;registered&quot;,&quot;allDevices&quot;:true,&quot;allApplications&quot;:&quot;&quot;,&quot;allDeviceTypes&quot;:true,&quot;allEvents&quot;:&quot;&quot;,&quot;allCommands&quot;:&quot;&quot;,&quot;allFormats&quot;:&quot;&quot;,&quot;x&quot;:264.1999969482422,&quot;y&quot;:434.1999969482422,&quot;z&quot;:&quot;dc6a0ca6.7993b&quot;,&quot;wires&quot;:[[&quot;ce21edbb.320628&quot;,&quot;fdfdaaa2.a45678&quot;]]},{&quot;id&quot;:&quot;ce21edbb.320628&quot;,&quot;type&quot;:&quot;function&quot;,&quot;name&quot;:&quot;calc color&quot;,&quot;func&quot;:&quot;var accelZ = msg.payload.d.acceleration_z;/nvar r = 0.0;/nvar b = 0.0;/nvar g = 0.0;/nif (accelZ &gt; 0) {/n/tg = Math.round(accelZ * 25);/n} else if (accelZ &lt; 0) {/n/tr = 255.0;/n} else {/n/tr = 104;/n/tg = 109;/n/tb = 115;/n}/na = 1.0;/n/nmsg.eventOrCommandType = /&quot;color/&quot;;/nmsg.payload = JSON.stringify({/&quot;d/&quot;:{/&quot;r/&quot;:r,/&quot;b/&quot;:b,/&quot;g/&quot;:g,/&quot;alpha/&quot;:a}});/n/nreturn msg;&quot;,&quot;outputs&quot;:1,&quot;noerr&quot;:0,&quot;x&quot;:437.1999969482422,&quot;y&quot;:430.1999969482422,&quot;z&quot;:&quot;dc6a0ca6.7993b&quot;,&quot;wires&quot;:[[&quot;9df37edb.5d4588&quot;]]},{&quot;id&quot;:&quot;9df37edb.5d4588&quot;,&quot;type&quot;:&quot;ibmiot out&quot;,&quot;authentication&quot;:&quot;boundService&quot;,&quot;apiKey&quot;:&quot;&quot;,&quot;outputType&quot;:&quot;cmd&quot;,&quot;deviceId&quot;:&quot;112233445566&quot;,&quot;deviceType&quot;:&quot;Android&quot;,&quot;eventCommandType&quot;:&quot;text&quot;,&quot;format&quot;:&quot;json&quot;,&quot;data&quot;:&quot;{/&quot;d/&quot;:{/&quot;value/&quot;:/&quot;text/&quot;}}&quot;,&quot;name&quot;:&quot;IBM IoT App Out&quot;,&quot;service&quot;:&quot;registered&quot;,&quot;x&quot;:629.1999969482422,&quot;y&quot;:443.1999969482422,&quot;z&quot;:&quot;dc6a0ca6.7993b&quot;,&quot;wires&quot;:[]},{&quot;id&quot;:&quot;fdfdaaa2.a45678&quot;,&quot;type&quot;:&quot;debug&quot;,&quot;name&quot;:&quot;&quot;,&quot;active&quot;:false,&quot;console&quot;:&quot;false&quot;,&quot;complete&quot;:&quot;false&quot;,&quot;x&quot;:442.1999969482422,&quot;y&quot;:364.1999969482422,&quot;z&quot;:&quot;dc6a0ca6.7993b&quot;,&quot;wires&quot;:[]}]

  5. 在文本编辑器中,确保所有代码都在一行上。删除所有换行符。复制这行代码。
  6. 在 Node-RED 编辑器中,按 Ctrl-I 打开 Import Nodes 对话框。粘贴该代码,然后单击 OK将您的移动电话转变为 IoT 设备

    点击查看大图

    关闭 [x]

    将您的移动电话转变为 IoT 设备

  7. 现在您需要调整该流来适合您的特定参数。唯一相关的参数是设备 ID。双击节点 IBM IoT App out 。在弹出窗口中,输入您之前使用的设备 ID(例如 112233445566 ),然后单击 OK
  8. 单击流编辑器中的 Deploy 。将部署流并立即激活它。
  9. 四处移动您的移动电话;轻击和倾斜它。依据 z 轴的朝向,电话上的应用程序的背景颜色现在应改变了颜色。
  10. 在 Node-RED 编辑器中,单击 msg.payload 节点旁边的矩形,然后单击 debug 选项卡启用调试。您应看到从您的电话发送的消息。该数据为 JSON 格式。 将您的移动电话转变为 IoT 设备

    点击查看大图

    关闭 [x]

    将您的移动电话转变为 IoT 设备

  11. 检查该流:双击 calc color 节点。它基于传入的 z-acceleration 值计算红色、绿色和蓝色值,并将它们作为 JSON 数据进行传递。 将您的移动电话转变为 IoT 设备

您现在已在您的移动电话与第一个 Bluemix 应用程序之间建立了双向通信。

第 6 步. 创建一个 Bluemix 应用程序来可视化传感器数据

注意:此应用程序已记录在 Bluemix IoT Samples 页面 上。

在这一步中,您在 Bluemix 上创建一个额外的应用程序,它从您的移动电话(现在是一个 IoT 设备)接收消息并可视化该数据。

运行应用程序

获取代码

  1. 下载 iot-visualization-0.1.0.zip 。解压其中的文件。
  2. 打开 Bluemix,然后单击 Dashboard
  3. 单击 Create App
  4. 选择 WEB 作为应用程序类型。
  5. 选择 SDK for Node.js
  6. 单击 Continue ,输入一个应用程序名称。与之前一样,该名称必须在 Bluemix 中是唯一的,因为它会用作主机名。输入类似 "iotvisualizer <yourname> " 的名称并单击 Finish
  7. 片刻之后,您应获得反馈 Your app is running
  8. 从您解压文件 iot-visualization-0.1.0.zip 的文件夹中,在文本编辑器中打开 manifest.yml 文件。将 hostname 参数更改为您选择的应用程序名称。保存文件。 将您的移动电话转变为 IoT 设备
  9. 打开一个命令窗口,更改到您解压文件 iot-visualization-0.1.0.zip 的目录。
  10. 输入以下 Cloud Foundry 命令:
    cf api https://api.ng.bluemix.net
    cf login -u <your_bluemix_login_id>

    cf login 命令仅在您第一次使用 cloud foundry 命令行工具时需要。您可能还需要输入您的 Bluemix 密码。如果您拥有多个 Bluemix 组织(这不是默认情况),您会被要求从中选择一个。
  11. 输入以下命令来将该应用程序部署到 Bluemix:

    cf push <em>&lt;your_application_name&gt;</em>

    这个命令寻找文件 manifest.yml 并使用来自该文件的参数。然后,它将代码上传到 Bluemix。片刻之后,您应该看到一条类似下面这条消息的消息:

    OK

    App <your app name> was started using this command 'node app.js'

  12. 在 Bluemix 仪表板中,打开您的应用程序的 Overview 页面。单击 Bind a service or API将您的移动电话转变为 IoT 设备

    点击查看大图

    关闭 [x]

    将您的移动电话转变为 IoT 设备

  13. 选择您在 第 1 步. 在 Bluemix 中创建一个 IoT 应用程序 中定义的 Internet of Things 服务。单击 Restage 重新暂存该应用程序。现在该应用程序可从 IBM IoT 服务器接收消息了。
  14. 要验证这个可视化应用程序,可在浏览器中打开 http:// <your app name> .mybluemix.net
  15. Device 下拉框中,选择您的设备 ID。 将您的移动电话转变为 IoT 设备

    点击查看大图

    关闭 [x]

    将您的移动电话转变为 IoT 设备

结束语

在本教程中,您学习了如何轻松地将您的移动电话转变为传感器设备,将它连接到 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

正文到此结束
Loading...