快速入门:将遥测数据从设备发送到 IoT 中心并使用后端应用程序从中心读取遥测数据 (Node.js)

IoT 中心是一项 Azure 服务,用于将大量遥测数据从 IoT 设备引入云中进行存储或处理。 本快速入门会将模拟设备应用程序的遥测数据通过 IoT 中心发送到后端应用程序进行处理。

本快速入门使用两个预先编写的 Node.js 应用程序,一个用于发送遥测数据,一个用于读取中心的遥测数据。 运行这两个应用程序前,请先创建 IoT 中心并在中心注册设备。

如果没有 Azure 订阅,请在开始前创建一个试用帐户

先决条件

本快速入门中运行的两个示例应用程序是使用 Node.js 编写的。 开发计算机上需要有 Node.js v4.x.x 或更高版本。

可从 nodejs.org 为下载适用于多个平台的 Node.js。

可以使用以下命令验证开发计算机上 Node.js 当前的版本:

node --version

https://github.com/Azure-Samples/azure-iot-samples-node/archive/master.zip 下载示例 Node.js 项目并提取 ZIP 存档。

创建 IoT 中心

第一步是使用 Azure 门户在订阅中创建 IoT 中心。 IoT 中心用于将大量遥测数据从许多设备引入到云中。 然后,该中心会允许一个或多个在云中运行的后端服务读取和处理该遥测数据。

  1. 登录到 Azure 门户

  2. 选择“创建资源” > “物联网” > “IoT 中心”。

    选择安装 IoT 中心

  3. 在“IoT 中心”窗格中,输入 IoT 中心的以下信息:

    • 订阅:选择需要将其用于创建此 IoT 中心的订阅。

    • 资源组:创建用于托管 IoT 中心的资源组,或使用现有的资源组。 有关详细信息,请参阅使用资源组管理 Azure 资源

    • 区域:选择最近的位置。

    • 名称:创建 IoT 中心的名称。 如果输入的名称可用,会显示一个绿色复选标记。

    Important

    IoT 中心将公开为 DNS 终结点,因此,命名时请务必避免包含任何敏感信息。

    IoT 中心基本信息窗口

  4. 选择“下一步: 大小和规模”,以便继续创建 IoT 中心。

  5. 选择“定价和缩放层”。 就本文来说,请选择“F1 - 免费”层(前提是此层在订阅上仍然可用)。 有关详细信息,请参阅定价和缩放层

    IoT 中心大小和规模窗口

  6. 选择“查看 + 创建”。

  7. 查看 IoT 中心信息,然后单击“创建”。 创建 IoT 中心可能需要数分钟的时间。 可在“通知”窗格中监视进度。

注册设备

必须先将设备注册到 IoT 中心,然后该设备才能进行连接。 在本快速入门中,请使用 Azure CLI 来注册模拟设备。

  1. 添加 IoT 中心 CLI 扩展并创建设备标识。 将 {YourIoTHubName} 替换为 IoT 中心选择的名称:

    az extension add --name azure-cli-iot-ext
    az iot hub device-identity create --hub-name {YourIoTHubName} --device-id MyNodeDevice
    

    如果为设备选择不同名称,则在运行示例应用程序之前,请在其中更新设备名称。

  2. 运行以下命令,获取刚注册设备的设备连接字符串:

    az iot hub device-identity show-connection-string --hub-name {YourIoTHubName} --device-id MyNodeDevice --output table
    

    记下看起来类似于 Hostname=...= 的设备连接字符串。 稍后会在快速入门中用到此值。

  3. 还需一个服务连接字符串,以便后端应用程序能够连接到 IoT 中心并检索消息。 以下命令检索 IoT 中心的服务连接字符串:

    az iot hub show-connection-string --hub-name {YourIoTHubName} --output table
    

    记下看起来类似于 Hostname=...= 的服务连接字符串。 稍后会在快速入门中用到此值。 服务连接字符串与设备连接字符串不同。

发送模拟遥测数据

模拟设备应用程序会连接到 IoT 中心上特定于设备的终结点,并发送模拟的温度和湿度遥测数据。

  1. 在终端窗口中,导航到示例 Node.js 项目的根文件夹。 然后导航到 iot-hub\Quickstarts\simulated-device 文件夹。

  2. 在所选文本编辑器中打开 SimulatedDevice.js 文件。

    connectionString 变量的值替换为之前记下的设备连接字符串。 然后将更改保存到 SimulatedDevice.js 文件。

  3. 在终端窗口中,运行以下命令,安装所需的库,并运行模拟设备应用程序:

    npm install
    node SimulatedDevice.js
    

    以下屏幕截图显示了模拟设备应用程序将遥测数据发送到 IoT 中心后的输出:

    运行模拟设备

从中心读取遥测数据

后端应用程序会连接到 IoT 中心上的服务端“事件”终结点。 应用程序会接收模拟设备发送的设备到云的消息。 IoT 中心后端应用程序通常在云中运行,接收和处理设备到云的消息。

  1. 在另一终端窗口中,导航到示例 Node.js 项目的根文件夹。 然后导航到 read-d2c-messages 文件夹。

  2. 在所选文本编辑器中打开 iot-hub\Quickstarts\ReadDeviceToCloudMessages.js 文件。

    connectionString 变量的值替换为以前记下的服务连接字符串。 然后将更改保存到 ReadDeviceToCloudMessages.js 文件。

  3. 在终端窗口中,运行以下命令,安装所需的库,并运行后端应用程序:

    npm install
    node ReadDeviceToCloudMessages.js
    

    以下屏幕截图显示了后端应用程序接收模拟设备发送到 IoT 中心的遥测数据后的输出:

    运行后端应用程序

清理资源

如果打算完成下一快速入门教程,请保留资源组和 IoT 中心,稍后再进行使用。

如果不再需要 IoT 中心,请在门户中删除该中心与资源组。 为此,请选择包含 IoT 中心的 qs-iot-hub-rg 资源组,然后单击“删除”。

后续步骤

本快速入门设置了 IoT 中心、注册了设备、使用 Node.js 应用程序发送了模拟遥测数据到中心,并使用简单的后端应用程序读取中心的遥测数据。

若要了解如何从后端应用程序控制模拟设备,请继续阅读下一快速入门教程。