Azure Sphere Wi-Fi 配置
Azure Sphere 设备依赖于网络连接来接收无线 OS 和应用程序更新,并连接到特定于应用程序的服务。 Wi-Fi 连接可能需要在应用开发期间、制造阶段或部署设备之后进行配置。 配置 Wi-Fi 的选项因你是否有权物理访问 Azure Sphere 设备或正在远程更新 Wi-Fi 配置而异。
本应用程序说明围绕 WPA2-PSK 身份验证 ((例如共享密钥) )编写。 此外,Azure Sphere 支持用于安全企业网络的 EAP-TLS 。 此处描述的每个可用于发送 PSK 的机制也可用于发送 EAP-TLS 的证书。
使用对设备的服务端口访问配置 Wi-Fi
如果设备包含 USB/FTDI 编程和调试接口,或者可以添加包含 USB/FTDI 编程和调试接口的外部板,则可以使用 Azure Sphere Command-Line 接口 (CLI) 和开发工具。 服务端口选项仅适用于制造。 在制造后,在正常使用期间,我们建议使用下面所述的其他选项之一,而不是使用服务端口,因为服务端口需要访问 Azure Sphere 目录才能获取 现场服务功能。
Azure CLI
如果要将包含 USB/FTDI 编程和调试接口的 Azure Sphere 设备连接到开发电脑并 安装了 Azure Sphere SDK,则可以使用 Azure CLI,其中包括用于 配置 Wi-Fi 的命令。 还可以获取 [网络诊断] (。/reference/az sphere-device.md) 和 [管理 EAP-TLS 网络的证书] (./reference/az sphere-device.md) 。
外部编程板
如果设备不包含板载 Azure Sphere 编程和调试接口,但能够暂时连接 独立 FTDI 接口板,则可以使用上述 Azure CLI 命令。 此方法使你无需 FTDI 接口 (即可交付生产设备,从而节省成本) ,并且每个工程师只需要一个编程/调试板。
在没有服务端口) 的情况下配置对设备 (的本地访问 Wi-Fi
对于不包含 (或能够添加 USB/FTDI 编程和调试接口) 的设备,如果对设备具有本地访问权限,则可以使用多个选项来配置 Wi-Fi。 最佳本地选项取决于使用它的用户类型以及你期望他们拥有的资源。 例如,对于最终用户配置 Wi-Fi、NFC 或蓝牙的消费者产品,可能会带来更用户友好的体验,而对于专业安装程序或可以使用硬件硬件保护装置与产品交互的 sysadmin 安装的产品,UART 选项的成本开销最低。
蓝牙
如果 Azure Sphere 设备公开了蓝牙连接,则可以使用蓝牙预配 Wi-Fi。 WifiSetupAndDeviceControlViaBle 参考解决方案使用 nRF52 蓝牙控制器 (,该控制器包含在 USI Global Azure Sphere 模块) 中。 此示例包括一个 Azure Sphere 高级应用程序和一个 Windows 桌面应用程序, (用 C#) 编写。
Uart
在生产环境中,可能需要更新不包含或支持临时添加 USB/FTDI 编程和调试板的设备 Wi-Fi 配置。 你可能决定从设备公开 UART/串行接口,使工程师能够更新设备的 Wi-Fi 设置。 Azure Sphere 库 WifiConfigurationViaUart 项目演示如何开发一个基于 UART 的菜单界面,该界面可实现设备重启、列出当前 Wi-Fi 配置,以及添加新网络配置的功能。 可以扩展示例以添加其他功能。
Bootstrap 网络配置
可以使用网络连接来启动 Wi-Fi 配置。 有两个步骤:
将 Azure Sphere 设备连接到启动网络。
获取新的 Wi-Fi 预配信息并配置设备。
使设备连接到启动网络
设备连接到的 Wi-Fi 网络在制造时可能未知,并且可能由设备安装程序或工程师在现场安装期间进行配置。 在制造过程中,可以考虑预配与设备的 Wi-Fi 连接。 工程师可以将移动设备配置为与制造预配的 SSID 和密钥匹配的 Wi-Fi 接入点 ,以便连接 Azure Sphere 设备。
设备最初可以使用手机网络或以太网连接进行连接。
从引导网络预配 Wi-Fi 连接
设备连接到启动网络后,可以使用多个选项获取新的 Wi-Fi 配置:
- Azure Sphere 设备可以托管简单的 TCP 或 HTTP 服务器,使启动网络上的客户端能够配置网络。
- Azure Sphere 设备可以使用预先确定的 TCP/IP 端口或主机名连接到提供 Wi-Fi 凭据的服务器/服务。
- 可能需要在运行时确定用于提供 Wi-Fi 凭据的服务,在这种情况下,可以使用 DNS-SD 等技术。
- 也可以使用下面列出的远程配置选项之一。
Nfc
基于 NFC 的 Wi-Fi 配置具有需要几个步骤且速度快的优点。 与命令行方法不同,该方法需要连接电缆并可能键入命令,唯一的操作是让操作员将移动电话与需要配置的设备相抵。 与大多数其他配置技术相比,NFC 速度更快,因为它仅依赖于邻近性,不需要配对和配对。 Android 和 Apple 商店都有可在开发和测试期间用于将 Wi-Fi 凭据预配到设备的应用程序。
Azure Sphere 库 WifiConfigurationViaNfc 项目演示如何基于 NFC 点击事件添加新的网络配置。
远程配置 Wi-Fi
设备进入生产环境或位于远程位置后,可能仍需要预配或更新 Wi-Fi 凭据,选项包括:
Azure 设备孪生属性 (建议选项)
Azure IoT 中心和 Azure IoT Central 支持设备孪生,设备孪生是在 Azure IoT 中心/Central 服务和设备之间镜像的 JSON 文档,在 Azure 端,设备操作员可以设置所需状态,设备随后应尝试 (恒温器(例如) )的温度设置点,然后设备将其报告的状态发送回Azure IoT 中心/中部。 可以通过编程方式为 Azure IoT 中心/Central 中的一个或多个设备设置新的所需属性, () 允许设备操作员将新的 Wi-Fi 配置设置为一个或多个设备的所需属性,并将特定 Azure Sphere 设备组中的设备的知识与Azure IoT 中心/Central 应用程序可精细控制更新的设备。
汇报应用程序软件
设备制造商可以更新 Azure Sphere 设备应用程序。 IoT Show 视频 开发 Azure Sphere OTA 更新 演示了无线应用程序部署和应用程序更新延迟。
有几个选项可用于从更新的应用程序更新 Wi-Fi 配置:
- 可以考虑在应用程序代码中使用字符串,这些字符串会针对 Wi-Fi 配置中的每个更改进行更新。 这是相对简单的实现,不需要加载/分析嵌入的资源文件。 这确实意味着代码文件在更新 Wi-Fi 配置时会受到接触,这可能会对代码历史记录产生影响。
- 可以在应用程序中使用嵌入的资源文件,更改资源不会触及代码,如果选择 JSON 等数据格式,则可以在自动生成和测试期间轻松分析和验证文件的内容。 WifiConfigurationViaAppResource 库项目演示如何使用 JSON 资源文件的内容来配置 Wi-Fi。
- 可以使用已知的 Web 终结点 (Azure 应用 服务,例如) 设备获取其 Wi-Fi 配置。
请注意,将 Wi-Fi 配置直接嵌入到应用程序 (源或资源文件) 意味着更新的设备将收到相同的 Wi-Fi 配置信息。 如果要在单个设备上设置 Wi-Fi 配置,应使用Azure IoT 中心/中心设备孪生方法或已知的 Web 终结点选项。
Wi-Fi 配置注意事项
修改设备的 Wi-Fi 配置时,可能需要添加新 Wi-Fi 配置, 禁用现有连接,启用新连接,并确认新连接是否正常工作,然后再删除以前的连接信息。