使用 Node-RED 连接到 Microsoft Azure
本指南将引导您将 IoT Cloud 存储库添加到您的 Intel® IoT Gateway,并添加对 Microsoft Azure 的支持,以便您可以使用您选择的编程语言为该平台开发应用程序。
获取新的 Intel® IoT Developer Kit,这是一个完整的硬件和软件解决方案,可让开发人员使用 Intel® Galileo 和 Intel® Edison 板创建激动人心的新解决方案。请访问 Intel® IoT 开发人员中心。
本指南将引导您将 IoT Cloud 存储库添加到您的 Intel® IoT Gateway,并添加对 Microsoft Azure 的支持,以便您可以使用您选择的编程语言为该平台开发应用程序。
必备组件
- 运行 IDP 3.1 或更高版本的 Intel® IoT Gateway 技术,并具有互联网访问权限
- 一台与 Intel® IoT Gateway 在同一网络中的开发设备(例如笔记本电脑)
- 从您的开发设备访问 Intel® IoT Gateway 的终端权限
- Microsoft Azure 帐户: https://portal.azure.com/
有关设置您的 Intel® IoT Gateway 的信息,请参阅以下文档: https://software.intel.com/en-us/node/633284
将 IoT Cloud 仓库添加到您的 Intel® IoT Gateway
- 通过直接连接的显示器和键盘或 SSH(推荐)来访问网关上的控制台。
- 使用以下命令添加云存储库的GPG密钥
rpm --import http://iotdk.intel.com/misc/iot_pub.key
- 在您的开发设备(例如笔记本电脑)上,打开 Web 浏览器,然后在地址栏中输入网关的 IP 地址,加载 IoT Gateway Developer Hub 界面。
提示:您可以使用“ifconfig”命令查找网关的 IP 地址。
- 使用您的凭据登录 IoT Gateway Developer Hub 界面。默认登录名和密码均为 root。
- 添加 IoT Cloud 存储库
- 转到“Packages”部分,然后单击“Add Repo +”按钮。
使用以下信息填充字段,然后单击“Add Repository”
名称:IoT_Cloud
URL:http://iotdk.intel.com/repos/iot-cloud/wrlinux7/rcpl13
最后,单击“Update Repositories”以更新软件包列表。
为您的 Intel® IoT Gateway 添加 Microsoft Azure 支持
- 单击“Add Packages +”以显示可安装的软件包列表。
使用软件包窗口顶部的搜索框搜索
cloud-azure
。单击packagegroup-cloud-azure
条目旁边的“Install”按钮。
设置 Azure IoT Hub
- 在浏览器中,导航到 Azure Portal https://portal.azure.com 并登录您的 Azure 帐户。
- 要创建新的 IoT Hub,请单击 Azure Portal 左上角的“New”。选择“Internet of Things > IoT Hub”。
- 为您的新 IoT Hub 指定唯一的名称,并选择您的定价和规模层。
- 在“Resource Group”部分,选择“Create New”并在提供的文本字段中输入唯一的名称。
- 从“Location”下拉列表中,选择离您最近的位置。单击“Create”。部署您的新资源组和 IoT Hub 需要一些时间。完成后,将显示“Deployments succeeded”消息。
- 创建新的资源组后,通过选择左侧面板中的“Resource groups”选项,然后从“Resource Groups”列表中选择您刚刚创建的资源组来导航到它。
- 从列表中选择您刚刚创建的 IoT Hub,然后单击“Keys”图标。从策略列表中选择“iothubowner”,然后单击“Connection string-primary key”旁边的“Copy”按钮,将您的 IoT Hub 连接字符串复制到剪贴板。
创建新的 Azure IoT 设备
提示:我们建议您使用 SSH 连接到您的网关,或通过 Intel Developer Hub 界面访问命令行,以便更轻松地复制连接字符串。如果您直接使用键盘和鼠标访问网关的命令行,则需要在下一部分手动输入连接字符串!
- 在您的网关控制台中输入以下命令,将其添加到您的 IoT Hub
iothub-explorer "[YOUR CONNECTION STRING]" create IntelIoTGateway --connection-string
如果设备添加成功,您将看到与上面图像类似的输出。
设备连接字符串通过名称标识设备,并包含一个仅供该设备使用的密钥。复制设备连接字符串,以便您可以在下一部分中使用它。
使用 Node-RED 连接到 Microsoft Azure
- 安装 Azure cloud 软件包后,您需要重新启动 Node-RED 服务,以便它可以加载新安装的节点。从网关控制台运行以下命令
systemctl restart node-red-experience
- 加载 Node-RED 界面。
- 转到 IoT Gateway Developer Hub 的“Administration”部分,然后单击 Node-RED 图标下的“Launch”。
- 配置 Node-RED 流。
- 从左侧节点的面板中拖动一个 inject、function 和 azureiothub 节点到当前流中(您可能需要向下滚动节点的面板才能找到这些节点)。
- 按照上面的屏幕截图排列和连接节点。这里我们有一个 inject 节点,它将以指定的间隔发送一个触发器到一个 function,该 function 将随机生成一个数字发送到您的 Azure IoT Hub。首先,我们需要配置节点。
- 双击时间戳节点以打开配置对话框。更改设置以匹配上面的屏幕截图,完成后单击“Ok”。这将设置节点以每 5 秒发送一个触发器。
- 双击 function 节点以打开配置对话框。在这里,我们将添加一些简单的代码来生成一个随机数,然后我们可以将其发送到我们的 Azure IoT Hub。
注意:尽管此示例使用了随机数,但您也可以轻松地修改代码以使用传感器读数。
- 在“Function”窗格中,输入以下代码,如上面的屏幕截图所示
msg.payload = Math.round(Math.random() * 100);
- 完成后单击“Ok”关闭配置对话框。
- 双击 Azure IoT Hub 节点以打开配置对话框。将您之前复制的设备连接字符串粘贴到“Connection String”字段中,然后单击“Ok”。确保您输入的是设备连接字符串,而不是 IoT Hub 的连接字符串!
现在您的流已配置好,请点击屏幕右上角的“Deploy”按钮来部署流。
如果一切正常,Azure IoT Hub 节点的“Connected”状态应更改为“Sent message”,如上面的屏幕截图所示。当流运行时,将每 5 秒向您的 Azure IoT Hub 发送一条消息。
如果您导航回 Azure Portal 并加载您的 IoT Hub 实例,您将看到“Usage”磁贴中的消息计数随着时间的推移而增加。
监控设备事件(可选)
您可以使用命令行中的 b 工具来监控 IoT Hub 中的设备。
还有一个名为 Device Explorer 的 Windows 实用程序,如果您更喜欢可视化应用程序:https://github.com/Azure/azure-iot-sdks/blob/master/tools/DeviceExplorer/doc/how_to_use_device_explorer.md
要在您的网关上通过命令行监控设备事件,请运行以下命令
iothub-explorer "[YOUR IOT HUB CONNECTION STRING]" monitor-events [YOUR DEVICE NAME]
如果 Node-RED 流已部署并正在运行,您应该会在控制台输出中看到发送到 Azure 的随机数字,类似于下面的屏幕截图。