Azure IoT中心:
在云中进行托管,相当于中央消息中心, IoT 应用程序与其管理的设备之间的双向通信。
多种消息传递模式:
设备到云的遥测;
从设备上传文件以及从云控制设备的请求-回复方式。
多种身份验证类型支持各种设备功能:
基于 SAS 令牌的身份验证可快速启动 IoT 解决方案。
单个 X.509 证书身份验证,用于安全、以标准为基础的身份验证。
X.509 CA 身份验证,用于简单、以标准为基础的注册。
IoT 中心和设备 SDK 支持用于连接设备的以下协议:
HTTPS
AMQP
基于 WebSockets 的 AMQP
MQTT
基于 WebSocket 的 MQTT
快速入门
将遥测数据发送到 Azure IoT 中心并使用 Java 应用程序读取它。
预先编写的 Java 应用程序:一个用于发送遥测数据,一个用于读取中心的遥测数据。代码下载:https://github.com/Azure-Samples/azure-iot-samples-java
创建IoT中心
参考:https://docs.azure.cn/zh-cn/iot-hub/quickstart-send-telemetry-java
定价和缩放层:选择的层。为了IoT 中心设备流的快速入门,在免费层中创建一个 IoT 中心,适用于测试和评估。 允许 500 台设备连接到中心,每天最多可传输 8,000 条消息。
IoT 中心单元:每个单位每日允许的消息数取决于中心的定价层。 例如,如果希望中心支持 700,000 条消息引入,请选择两个 S1 层单位。
高级设置 > 设备到云的分区:将设备到云消息与这些消息的同步读取器数目相关联。 大多数中心只需要 4 个分区。
监控现有注册设备的消息数量
注册设备
az iot hub device-identity create --hub-name {YourIoTHubName} --device-id MyJavaDevice
获取设备连接字符串:
az iot hub device-identity connection-string show --hub-name {YourIoTHubName} --device-id MyJavaDevice --output table
查找扩展:
az extension list-available --output table
安装扩展:
az extension add --name <extension-name>
更新扩展:
az extension update --name <extension-name>
卸载扩展:
az extension remove --name <extension-name>
自动安装扩展:
az config set extension.use_dynamic_install=yes_prompt
不提示的情况下实现动态安装:
az config set extension.use_dynamic_install=yes_without_prompt
关闭动态安装:
az config set extension.use_dynamic_install=no
https://docs.azure.cn/zh-cn/cli/azure-cli-extensions-overview?view=azure-cli-latest
An error occurred. Pip failed with status code 1. Use --debug for more information.
https://github.com/Azure/azure-cli/issues/15931
https://github.com/Azure/azure-devops-cli-extension/issues/1099
https://github.com/Azure/azure-iot-cli-extension/issues/165
与事件中心兼容的终结点、与事件中心兼容的路径和 IoT 中心的服务主密钥:
az iot hub show --query properties.eventHubEndpoints.events.endpoint --name {YourIoTHubName}
az iot hub show --query properties.eventHubEndpoints.events.path --name {YourIoTHubName}
az iot hub policy show --name service --query primaryKey --hub-name {YourIoTHubName}
模拟设备应用程序将遥测数据发送到 IoT 中心后的输出:
可以看到IoT中心的仪表盘数据开始变化,但是一般消息会有1分钟延迟才到中心
接收和处理设备到云的消息
最后清理资源,删除本文中创建的 Azure 资源,避免收费。
Windos系统安装Azure CLI
Azure官方链接:https://www.azure.cn/downloads/
Azure 命令行接口 (Azure CLI) 是一组用来创建和管理 Azure 资源的命令。 Azure CLI 可用于各种 Azure 服务,可用来快速使用 Azure(侧重于自动化)。
下载地址:https://docs.azure.cn/zh-cn/cli/install-azure-cli-windows?view=azure-cli-latest&tabs=azure-cli
下载完成install,默认安装路径:C:\Program Files (x86)\Microsoft SDKs\Azure\CLI\wbin
安装完CLI,无法在CMD或Powershell环境下使用的话,可能需要配置上述路径到系统环境变量中。或者直接在文件目录下打开Powershell,执行命令:
az -v
az login
Azure CLI官方教程文档:https://docs.azure.cn/zh-cn/cli/create-an-azure-service-principal-azure-cli?view=azure-cli-latest
IoT 中心设备管理
管理原则:规模和自动化;开放性和兼容性;上下文感知;为多角色提供服务
设备生命周期:
计划
预配
配置
监视
停用
Azure IoT 中心通过 MQTT、AMQP 和 HTTPS 协议以本机方式支持通信。
IoT 中心消息路由和 IoT 中心与事件网格的集成通过执行不同的操作来实现类似结果。
相似性:
最大消息256KB,设备到云;安全可靠;伸缩性高;延迟低;一条消息发送到多个终结点
设备证书进行身份验证
X.509 CA 证书:证书文件上传 和 所有权证明
https://github.com/Azure/azure-iot-sdk-c/blob/master/tools/CACertificates/CACertificateOverview.md