您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn.
使用 Azure IoT SDK 针对 Android Things 平台进行开发
01/30/2019
本文内容
Azure IoT 中心 SDK 为 Windows、Linux、OSX、MBED 等流行平台,以及 Android 和 iOS 等移动平台提供第一层支持。 作为我们在 IoT 部署中实现更多选择和灵活性的承诺的一部分,Java SDK 还支持 Android Things 平台。 使用 Azure IoT 中心作为可扩展到数百万个同时连接的设备的中央消息中心时,开发人员可以在设备端利用 Android Things 操作系统的好处。
本教程概述使用 Azure IoT Java SDK 在 Android Things 上构建设备端应用程序的步骤。
先决条件
受 Android Things 支持且运行 Android Things OS 的硬件。 可以按照有关如何刷新 Android Things OS 的 Android Things 文档进行操作。 确保 Android Things 设备连接到 Internet 并连接了基本外围设备(例如键盘、显示器和鼠标)。 本教程使用 Raspberry Pi 3。
最新版本的 Git
如果需要,请安装 Azure CLI 来运行 CLI 参考命令。
如果使用的是本地安装,请使用 az login 命令登录到 Azure CLI。 若要完成身份验证过程,请遵循终端中显示的步骤。 有关其他登录选项,请参阅登录 Azure CLI。
出现提示时,请在首次使用时安装 Azure CLI 扩展。 有关扩展详细信息,请参阅使用 Azure CLI 的扩展。
运行 az version 以查找安装的版本和依赖库。 若要升级到最新版本,请运行 az upgrade。
创建 IoT 中心
此部分介绍如何使用 Azure 门户创建 IoT 中心。
从 Azure 主页中选择“+ 创建资源”按钮,然后在“搜索市场”字段中输入“IoT 中心”。
在搜索结果中选择“IoT 中心”,然后选择“创建” 。
在“基本信息”选项卡上,按如下所示填写字段:
订阅:选择要用于中心的订阅。
资源组:选择一个资源组或新建一个资源组。 若要新建资源组,请选择“新建”并填写要使用的名称。 若要使用现有的资源组,请选择它。 有关详细信息,请参阅管理 Azure 资源管理器资源组。
区域:选择中心所在的区域。 选择最靠近你的位置。 某些功能(如 IoT 中心设备流)仅适用于特定区域。 对于这些受限功能,你必须选择受支持的区域之一。
IoT 中心名称:输入中心的名称。 该名称必须全局唯一。
重要
由于 IoT 中心将作为 DNS 终结点公开可发现,因此请务必避免在命名它时输入任何敏感信息或个人身份信息。
在完成时选择“下一步:网络”,继续创建中心。
选择可以连接到 IoT 中心的终结点。 你可以选择默认设置“公共终结点(所有网络)”,也可选择“公共终结点(选定的 IP 范围)”或“专用终结点” 。 接受此示例的默认设置。
在完成时选择“下一步:管理”,继续创建中心。
可在此处接受默认设置。 如果需要,可以修改以下任何字段:
定价和缩放层:选择的层。 可以根据你需要的功能数以及每天通过解决方案发送的消息数从多个层级中进行选择。 免费层适用于测试和评估。 允许 500 台设备连接到中心,每天最多可传输 8,000 条消息。 每个 Azure 订阅可以在免费层中创建一个 IoT 中心。
如果正在完成 IoT 中心设备流的快速入门,请选择免费层。
IoT 中心单元:每日每单位允许的消息数取决于中心的定价层。 例如,如果希望中心支持 700,000 条消息引入,请选择两个 S1 层单位。
有关其他层选项的详细信息,请参阅选择合适的 IoT 中心层。
Defender for IoT:启用此功能可为 IoT 和设备添加额外的一层威胁防护。 此选项不可用于免费层的中心。 有关此功能的详细信息,请参阅适用于 IoT 的 Azure 安全中心。
高级设置 > 设备到云的分区:此属性将设备到云消息与这些消息的同步读取器数目相关联。 大多数中心只需要 4 个分区。
在完成时选择“下一步:标记”继续到下一屏幕。
标记是名称/值对。 可以为多个资源和资源组分配相同的标记,以便对资源进行分类并合并计费。 有关详细信息,请参阅使用标记来组织 Azure 资源。
在完成时选择“下一步:查看+创建”可查看选择。 你会看到类似于此屏幕的内容,但其中包含创建中心时选择的值。
选择“创建”以创建新的中心。 创建中心需要几分钟时间。
注册设备
必须先将设备注册到 IoT 中心,然后该设备才能进行连接。 在本快速入门中,将使用 Azure Cloud Shell 来注册模拟设备。
在 Azure Cloud Shell 中运行以下命令,以添加 IoT 中心 CLI 扩展并创建设备标识。
YourIoTHubName:将下面的占位符替换为你为 IoT 中心选择的名称。
MyAndroidThingsDevice:这是为注册的设备提供的名称。 如图所示使用 MyAndroidThingsDevice。 如果为设备选择不同名称,则可能还需要在本文中从头至尾使用该名称,并在运行示例应用程序之前在其中更新设备名称。
az extension add --name azure-iot
az iot hub device-identity create --hub-name YourIoTHubName --device-id MyAndroidThingsDevice
在 Azure Cloud Shell 中运行以下命令,以获取刚注册设备的设备连接字符串。 将下面的 YourIoTHubName 替换为你为 IoT 中心选择的名称。
az iot hub device-identity show-connection-string --hub-name YourIoTHubName --device-id MyAndroidThingsDevice --output table
记下如下所示的设备连接字符串:
HostName={YourIoTHubName}.azure-devices.net;DeviceId=MyAndroidThingsDevice;SharedAccessKey={YourSharedAccessKey}
稍后会在快速入门中用到此值。
构建 Android Things 应用程序
构建 Android Things 应用程序的第一步是连接到 Android Things 设备。 将 Android Things 设备连接到一个显示器,并将它连接到 Internet。 Android Things 提供了有关如何连接到 WiFi 的文档。 连接到 Internet 之后,记下“网络”下列出的 IP 地址。
使用 adb 工具,通过上面记下的 IP 地址连接到 Android Things 设备。 从终端使用此命令仔细检查连接。 应看到设备以“已连接”形式列出。
adb devices
从此存储库下载我们适用于 Android/Android Things 的示例,或使用 Git。
git clone https://github.com/Azure-Samples/azure-iot-samples-java.git
在 Android Studio 中,打开位于“\azure-iot-samples-java\iot-hub\Samples\device\AndroidSample”中的 Android 项目。
打开 gradle.properties 文件,将“Device_connection_string”替换为前面记下的设备连接字符串。
单击“运行 - 调试”,然后选择你的设备以将此代码部署到 Android Things 设备。
成功启动了应用程序后,可以看到应用程序在 Android Things 设备上运行。 此示例应用程序会发送随机生成的温度读数。
从中心读取遥测数据
可通过 IoT 中心查看接收的数据。 IoT 中心 CLI 扩展可以连接到 IoT 中心上的服务端 事件 终结点。 扩展会接收模拟设备发送的设备到云的消息。 IoT 中心后端应用程序通常在云中运行,接收和处理设备到云的消息。
在 Azure Cloud Shell 中运行以下命令,并将 YourIoTHubName 替换为 IoT 中心的名称:
az iot hub monitor-events --device-id MyAndroidThingsDevice --hub-name YourIoTHubName
清理资源
如果想要继续学习下一篇建议的文章,可以保留已创建的资源,以便重复使用。
否则,可删除本文中创建的 Azure 资源,避免收费。
重要
删除资源组的操作不可逆。 资源组以及包含在其中的所有资源将被永久删除。 请确保不会意外删除错误的资源组或资源。 如果在现有的包含要保留资源的资源组中创建了 IoT 中心,则只删除 IoT 中心资源本身,而不要删除资源组。
若要按名称删除资源组,请执行以下操作:
登录到 Azure 门户,然后选择“资源组”。
在“按名称筛选”文本框中,键入包含 IoT 中心的资源组的名称。
在结果列表中的资源组右侧,选择“...”,然后选择“删除资源组” 。
系统会要求确认是否删除资源组。 再次键入资源组的名称进行确认,然后选择“删除” 。 片刻之后,将会删除该资源组及其包含的所有资源。
后续步骤
了解如何使用 IoT 中心 SDK 管理连接和可靠的消息传送。
了解如何针对移动平台进行开发,例如 iOS 和 Android。