使用 IoT 网关将设备连接到云 - 将 SensorTag 连接到 Azure IoT 中心

Note

开始本教程前,请确保已完成将 Intel NUC 设置为 IoT 网关。 在将 Intel NUC 设置为 IoT 网关中,将 Intel NUC 设备设置为 IoT 网关。

要学习的知识

了解如何使用 IoT 网关将 Texas Instruments SensorTag (CC2650STK) 连接到 Azure IoT 中心。 IoT 网关将从 SensorTag 收集的温度和湿度数据发送到 Azure IoT 中心。

执行的操作

  • 创建 IoT 中心。
  • 在 IoT 中心内为 SensorTag 注册一台设备。
  • 启用 IoT 网关和 SensorTag 之间的连接。
  • 运行 BLE 示例应用程序,将 SensorTag 数据发送到 IoT 中心。

所需条件

  • 已完成将 Intel NUC 设置为 IoT 网关教程,在其中已将 Intel NUC 设置为 IoT 网关。
  • 在主计算机上运行的 SSH 客户端。 建议在 Windows 上使用 PuTTY。 Linux 和 macOS 已附带 SSH 客户端。
  • IP 地址以及访问 SSH 客户端网关的用户名和密码。
  • Internet 连接。

创建 IoT 中心

  1. 登录到 Azure 门户
  2. 选择“创建资源” > “物联网” > “IoT 中心”。

    屏幕截图显示 Azure 门户到 IoT 中心的导航

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

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

    Important

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

    • 定价和缩放级别:对于本教程,请选择F1 - 免费级别。 有关详细信息,请参阅定价和缩放层

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

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

    • 固定仪表板:选中此选项可以方便地从仪表板访问 IoT 中心。

      IoT 中心窗口

  4. 单击“创建”。 创建 IoT 中心可能需要数分钟的时间。 可在“通知”窗格中监视进度。

创建 IoT 中心以后,即可找到将设备和应用程序连接到 IoT 中心时需要使用的重要信息。

  1. 创建 IoT 中心后,请在仪表板中单击它。 记下“主机名”,并单击“共享访问策略”。

    获取 IoT 中心的主机名

  2. 在“共享访问策略”窗格中单击“iothubowner”策略,并复制并记下 IoT 中心的连接字符串。 有关详细信息,请参阅控制对 IoT 中心的访问

Note

此设置教程不需要此 iothubowner 连接字符串。 不过,在完成此设置以后,可能需要将其用于某些讲述其他 IoT 方案的教程。

获取 IoT 中心连接字符串

在 IoT 中心为设备进行设备注册

  1. Azure 门户中打开 IoT 中心。
  2. 单击“设备资源管理器”。
  3. 在“设备资源管理器”窗格中,单击“添加”将设备添加到 IoT 中心。 然后执行以下操作:

    设备 ID:输入新设备的 ID。 设备 ID 区分大小写。

    身份验证类型:选择“对称密钥”。

    自动生成密钥:选中此复选框。

    将设备连接到 IoT 中心:单击“启用”。

    在 IoT 中心的设备资源管理器中添加设备

    Important

    收集的日志中可能会显示设备 ID 用于客户支持和故障排除,因此,在为日志命名时,请务必避免包含任何敏感信息。

  4. 单击“保存” 。

  5. 创建设备后,在“设备资源管理器”窗格中打开设备。
  6. 记下连接字符串的主密钥。

    获取设备连接字符串

Note

在此处为 SensorTag 注册这台新设备

启用 IoT 网关和 SensorTag 之间的连接

在本节中,执行以下任务:

  • 获取 SensorTag 的 MAC 地址以进行蓝牙连接。
  • 启动从 IoT 网关到 SensorTag 的蓝牙连接。

获取 SensorTag 的 MAC 地址以进行蓝牙连接

  1. 在主计算机上,运行 SSH 客户端并连接到 IoT 网关。
  2. 运行以下命令,取消阻止蓝牙:

    sudo rfkill unblock bluetooth
    
  3. 在 IoT 网关上启动蓝牙服务,并输入蓝牙 shell,以通过运行以下命令配置蓝牙:

    sudo systemctl start bluetooth
    bluetoothctl
    
  4. 在蓝牙 shell 上运行以下命令,打开蓝牙控制器:

    power on
    

    在 IoT 网关上通过 bluetoothctl 打开蓝牙控制器

  5. 通过运行以下命令,开始扫描附近的蓝牙设备:

    scan on
    

    通过 bluetoothctl 扫描附近的蓝牙设备

  6. 按 SensorTag 上的“配对”按钮。 SensorTag 上的绿色 LED 灯将闪烁。

  7. 在蓝牙 shell 上,应该看到已找到 SensorTag。 记下 SensorTag 的 MAC 地址。 在此示例中,SensorTag 的 MAC 地址是 24:71:89:C0:7F:82
  8. 通过运行以下命令,关闭扫描:

    scan off
    

    通过 bluetoothctl 停止扫描附近的蓝牙设备

启动从 IoT 网关到 SensorTag 的蓝牙连接

  1. 通过运行以下命令,连接到 SensorTag:

    connect <MAC address>
    

    通过 bluetoothctl 连接到 SensorTag

  2. 通过运行以下命令,从 SensorTag 断开连接,并退出蓝牙 shell:

    disconnect
    exit
    

    通过 bluetoothctl 从 SensorTag 断开连接

已成功启用 SensorTag 和 IoT 网关之间的连接。

运行 BLE 示例应用程序,将 SensorTag 数据发送到 IoT 中心

Azure IoT Edge 提供蓝牙低功耗 (BLE) 示例应用程序。 该示例应用程序收集 BLE 连接的数据,并将该数据发送到 IoT 中心。 若要运行示例应用程序,需要:

  1. 配置该示例应用程序。
  2. 在 IoT 网关上运行该示例应用程序。

配置示例应用程序

  1. 通过运行以下命令,转到示例应用程序的文件夹:

    cd /usr/share/azureiotgatewaysdk/samples/ble_gateway
    
  2. 通过运行以下命令,打开配置文件:

    vi ble_gateway.json
    
  3. 在配置文件中,填写以下值:

    IoTHubName:IoT 中心的名称。

    IoTHubSuffix:从记下的设备连接字符串的主键中获取 IoTHubSuffix。 确保获取的是设备连接字符串的主键,而非 IoT 中心连接字符串的主键。 设备连接字符串的主键采用 HostName=IOTHUBNAME.IOTHUBSUFFIX;DeviceId=DEVICEID;SharedAccessKey=SHAREDACCESSKEY 的格式。

    Transport:默认值为 amqp。 此值在传输期间显示协议。 它可以是 httpamqpmqtt

    macAddress:记下的 SensorTag 的 MAC 地址。

    deviceID:在 IoT 中心内创建的设备的 ID。

    deviceKey:设备连接字符串的主键。

    完成 BLE 示例应用程序的配置文件

  4. ESC 并键入 :wq 以保存文件。

运行示例应用程序

  1. 确保已打开 SensorTag。
  2. 运行以下命令:

    ./ble_gateway ble_gateway.json
    

后续步骤

通过 Azure IoT Edge,使用 IoT 网关进行传感器数据转换