设置模拟传感器以进行测试(预览版)

[本文是预发布文档,需要更改。]

如果您想要在不安装任何物理传感器的情况下测试 Sensor Data Intelligence,您可以使用 Raspberry PI Azure IoT 联机模拟器服务来模拟传感器信号,并将它们发送到您在 Microsoft Azure 上的物联网 (IoT) 解决方案。 有关模拟器的更多信息,请参阅将 Raspberry Pi 联机模拟器连接到 Azure IoT 中心 (Node.js)

视频说明

以下视频展示如何设置模拟传感器以进行测试。 本文的其余几节以基于文本的格式提供相同的说明。

在 Azure IoT 中心创建设备

您必须首先设置一个设备来验证发送到 Azure IoT 中心的传感器信号。

  1. 在 Azure 中,转到为与 Sensor Data Intelligence 一起使用而创建的资源组的资源列表。 (有关详细信息,请参阅在 Azure 上部署 IoT 解决方案。)

  2. 在资源列表中,找到类型字段设置为 IoT 中心的记录。 在名称列中,选择名称打开资源的详细信息页面。

  3. 在左侧导航窗格中,选择设备

  4. 设备页面,选择添加设备

  5. 创建设备页面,设置以下字段:

    • 设备 ID – 为新设备输入名称(例如,我的 IoT 设备)。
    • 身份验证类型 – 选择对称密钥
    • 自动生成密钥 – 选中此复选框。
    • 将此设备连接到 IoT 中心 – 选择启用
  6. 选择保存返回设备页面。

  7. 在列表中找到新设备。 在设备 ID 列中,选择名称打开设备的详细信息页面。 如果您没有在列表中看到新设备,请刷新页面。

  8. 复制主连接字符串值(例如,通过选择复制到剪贴板按钮)。 稍后在设置 Raspberry Pi IoT 模拟器来模拟传感器信号时,您将需要此值。 因此,现在考虑将它粘贴到一个文本文件中。

将 Azure 连接字符串添加到 Raspberry Pi IoT 模拟器

按照以下步骤将连接字符串从 Azure IoT 中心中的设备添加到 Raspberry 服务中的脚本。

  1. 打开 Raspberry Pi IoT 模拟器

  2. 在代码编辑器窗格中,找到包含以下命令的行。

    const connectionString = '[Your IoT hub device connection string]';

  3. 将包括括号在内的帮助文本替换为您在上一节中复制的主连接字符串值。 结果应类似于以下示例。

    const connectionString = 'HostName=XXX;DeviceId=YYY;SharedAccessKey=ZZZ';

将传感器 ID 和值添加到 Raspberry Pi IoT 模拟器中的有效负载

您现在必须使用模拟传感器以及它们将作为有效负载发送的值来设置 Raspberry Pi IoT 模拟器。

  • 在 Raspberry Pi IoT 模拟器的代码编辑器中,找到 getMessage 函数,并对其进行编辑,使其与以下代码匹配。 (传感器设置在 cb() 行中。)

    function getMessage(cb) {
        messageId++;
        sensor.readSensorData()
        .then(function (data) {
            cb(JSON.stringify({ value: 1, sensorId: 'MachineStatus' }), false);
            cb(JSON.stringify({ value: 70, sensorId: 'Quality' }), false);
            cb(JSON.stringify({ value: 1, sensorId: 'AssetMaintenance' }), false);
            cb(JSON.stringify({ value: 1, sensorId: 'ProductionDelay' }), false);
            cb(JSON.stringify({ value: 20, sensorId: 'AssetDowntime' }), false);
        })
        .catch(function (err) {
            console.error('Failed to read out sensor data: ' + err);
        });
    }
    

    重要

    在 Raspberry Pi IoT 模拟器的代码编辑器中定义的传感器 ID 必须与您稍后将为 Supply Chain Management 中的场景指定的传感器 ID 相同。 前面的示例代码使用人类可读的传感器 ID。 但是,在实际场景中,传感器 ID 将是传感器制造商提供的全局唯一标识符 (GUID) 值。 此示例代码中使用的人类可读传感器 ID 也用于产品质量场景资产维护场景生产延迟场景资产故障时间场景机器状态场景的示例)。 因此,如果您将处理这些场景,使用此代码。

编辑发送传感器信号的间隔

您现在必须设置 Raspberry Pi IoT 模拟器发送模拟传感器信号的时间间隔。

  1. 在 Raspberry Pi IoT 模拟器的代码编辑器中,找到如下函数调用。

    setInterval(sendMessage, 2000);

  2. 默认情况下,Raspberry Pi IoT 模拟器每 2,000 毫秒(两秒)发送一个传感器信号。 您可以根据需要调整此值。

运行 Raspberry Pi IoT 模拟器

  • 选择运行启动模拟器并开始发送模拟传感器数据。