将 Intel® IoT 网关连接到 Microsoft Azure
本指南将引导您完成将 IoT Cloud 存储库添加到 Intel® IoT 网关并添加对 Microsoft Azure 的支持,以便您可以使用自己喜欢的编程语言开始为该平台开发应用程序。
获取新的 Intel® IoT 开发人员套件,这是一个完整的硬件和软件解决方案,使开发人员能够使用 Intel® Galileo 和 Intel® Edison 板创建令人兴奋的新解决方案。请访问 Intel® 物联网开发人员中心。
本指南将引导您完成将 IoT Cloud 存储库添加到 Intel® IoT 网关并添加对 Microsoft* Azure* 的支持,以便您可以使用自己喜欢的编程语言开始为该平台开发应用程序。
必备组件
- 运行 IDP 3.1 或更高版本的 Intel® IoT Gateway 技术,并具有互联网访问权限
- 一台与 Intel® IoT Gateway 在同一网络中的开发设备(例如笔记本电脑)
- 从您的开发设备访问 Intel® IoT Gateway 的终端权限
- Microsoft Azure 帐户: https://portal.azure.com/
有关设置 Intel® IoT 网关的信息,请参阅以下文档: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 网关开发人员中心界面。
提示:您可以使用“ifconfig”命令查找网关的 IP 地址。
- 使用凭据 **root:root** 登录到 IoT 网关开发人员中心界面。
- 添加 IoT Cloud 存储库。
- 转到 **Packages** 部分,然后单击 **Add Repo + ** 按钮。
使用以下信息填充字段,然后单击 **Add Repository**
名称: IoT_Cloud
URL: http://iotdk.intel.com/repos/iot-cloud/wrlinux7/rcpl13
最后,单击 **Update Repositories ** 按钮以更新包列表。
- 转到 **Packages** 部分,然后单击 **Add Repo + ** 按钮。
为 Intel® IoT 网关添加 Microsoft* Azure* 支持
- 单击**添加软件包 +**按钮以调出您可以安装的软件包列表。
- 使用包窗口顶部的搜索框搜索 **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 指定一个唯一的 **Name**,并选择所需的 **Pricing and scale tier**。
- 在 **Resource Group** 部分,选择 **Create New**,然后在提供的框中为其指定一个唯一的名称。
- 选择离您最近的“**Location**”,然后单击 **Create**。
部署新的资源组和 IoT Hub 需要一些时间,但最终您应该会收到 **Deployments succeeded** 通知。
- 创建新的资源组后,通过选择左侧面板中的 **Resource groups** 选项,然后从列表中选择您刚刚创建的资源组来导航到它。
- 从列表中选择您刚刚创建的 IoT Hub,然后单击 **Keys** 图标。从策略列表中选择 **iothubowner**,然后单击 **Connection string-primary** 键旁边的 **Copy** 按钮,将您的 IoT Hub 连接字符串复制到剪贴板。
- 在 Azure Portal 的左上角选择 **New**。从列表中选择 **Internet Of Things**,然后选择“**IoT Hub**”。
创建一个新的 Azure* IoT Device
提示:为了更轻松地复制连接字符串,建议您使用 SSH 连接到网关或通过 Intel Developer Hub 界面访问命令行。如果您直接使用键盘和鼠标访问网关的命令行,则需要在下一节中手动输入连接字符串。
- 在您的网关控制台中输入以下命令将其添加到您的 IoT Hub
iothub-explorer "[YOUR CONNECTION STRING]" create IntelIoTGateway --connection-string
如果设备成功添加,您将看到类似以下的输出
- 加载 Node-RED 界面。转到 IoT 网关开发人员中心的 **Administration** 部分,然后在 Node-RED 图标下单击 **Launch**。
- 配置 Node-RED 流。
- 将“**inject**”、“**function**”和“**azureiothub**”节点从左侧的节点面板拖到当前流中(您可能需要向下滚动节点面板)。将“**inject**”、“**function**”和“**azureiothub**”节点从左侧的节点面板拖到当前流中(您可能需要向下滚动节点面板)。
- 按照上面的屏幕截图排列和连接节点。在这里,我们有一个 inject 节点,它将在指定的时间间隔发送一个触发信号到一个函数,该函数将随机生成一个数字发送到您的 Azure IoT Hub。首先,我们需要配置节点。
- 双击 **timestamp** 节点以打开配置对话框。将设置更改为与下面的屏幕截图匹配,完成后单击 **Ok**。这将设置节点每 5 秒发送一次触发信号。
- 双击“**function**”节点以打开配置对话框。在这里,我们将添加一些简单的代码来生成一个随机数,我们可以将其发送到我们的 Azure IoT Hub。实际上,这可以是一个传感器读数,例如。
- 在“**Function**”框中,按照下面的屏幕截图输入以下代码
msg.payload = Math.round(Math.random() * 100);
完成后单击 **Ok** 按钮,关闭配置对话框。
- 再次双击 **Azure IoT Hub** 节点以打开配置对话框。将您之前复制/保存的 **device** 连接字符串添加到 **Connection String** 框中,然后单击 **Ok**。(确保您输入的是 **device** 连接字符串,而不是 IoT Hub 的连接字符串!)
- 将“**inject**”、“**function**”和“**azureiothub**”节点从左侧的节点面板拖到当前流中(您可能需要向下滚动节点面板)。将“**inject**”、“**function**”和“**azureiothub**”节点从左侧的节点面板拖到当前流中(您可能需要向下滚动节点面板)。
- 现在您的流已配置完毕,您可以部署您的流。单击屏幕右上角的 **Deploy** 按钮。
如果一切正常,**Azure IoT Hub** 节点的状态应变为 **Connected**,然后变为 **Sent message**,如以下屏幕截图所示。当流运行时,每五秒将有一个消息发送到您的 Azure IoT Hub。
如果您导航回 Azure* Portal 并加载您的 IoT Hub 实例,您将在 **Usage** 磁贴中看到消息计数正在增加。
- 监视设备事件(可选)。
您可以使用命令行中的 **iothub-explorer** 工具监视 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* 的随机数。