Configuração de Wi-Fi do Azure Sphere
Os dispositivos do Azure Sphere dependem da conectividade de rede para receber atualizações de sistema operacional e aplicativo no ar e se conectar a serviços específicos do aplicativo. Wi-Fi conexões podem precisar ser configuradas durante o desenvolvimento do aplicativo, no estágio de fabricação ou após a implantação de um dispositivo. As opções para configurar Wi-Fi diferem dependendo se você tem acesso físico ao dispositivo do Azure Sphere ou se está atualizando a configuração Wi-Fi remotamente.
Esta Nota de Aplicativo é escrita em torno da autenticação WPA2-PSK (como uma chave compartilhada). Além disso, o Azure Sphere dá suporte ao EAP-TLS para redes empresariais seguras. Todos os mecanismos descritos aqui que poderiam ser usados para enviar um PSK também podem ser usados para enviar um certificado para EAP-TLS.
Configurar Wi-Fi com acesso à porta de serviço a um dispositivo
Se você tiver um dispositivo que inclua a interface de programação e depuração USB/FTDI ou pode adicionar uma placa externa que inclua a interface de depuração e programação USB/FTDI, a CLI (Interface de Command-Line) do Azure Sphere e as ferramentas de desenvolvimento estarão disponíveis para você. A opção de porta de serviço só faz sentido para a fabricação. Após a fabricação, durante o uso normal, recomendamos usar uma das outras opções descritas abaixo em vez de usar a porta de serviço, pois a porta de serviço requer acesso ao catálogo do Azure Sphere para obter uma funcionalidade de manutenção de campo.
Azure CLI
Se você estiver conectando um dispositivo do Azure Sphere que inclui a programação USB/FTDI e a interface de depuração ao computador de desenvolvimento e tiver o SDK do Azure Sphere instalado, você poderá usar a CLI do Azure, que inclui comandos para configurar o Wi-Fi. Você também pode obter [diagnóstico de rede](.. /reference/az sphere-device.md) e [gerenciar certificados para redes EAP-TLS](.. /reference/az sphere-device.md).
Placa de programação externa
Se você tiver um dispositivo que não inclua uma interface de programação e depuração do Azure Sphere a bordo, mas tenha a capacidade de conectar temporariamente uma placa de interface FTDI autônoma, você poderá usar os comandos da CLI do Azure mencionados acima. Essa abordagem permite que você envie seus dispositivos de produção sem uma interface FTDI (o que economiza custo) e requer apenas uma placa de programação/depuração por engenheiro.
Configurar Wi-Fi com acesso local a um dispositivo (sem porta de serviço)
Para dispositivos que não incluem (ou têm a capacidade de adicionar) uma interface usb/FTDI de programação e depuração, você tem várias opções para configurar Wi-Fi se tiver acesso local ao dispositivo. A melhor opção local depende do tipo de usuário que o usa e dos recursos que você espera que eles tenham. Por exemplo, para produtos de consumo em que os usuários finais configuram Wi-Fi, NFC ou Bluetooth podem resultar em experiências mais amigáveis ao usuário, enquanto para produtos instalados por instaladores profissionais ou sysadmins que podem usar um dongle de hardware para interface com o produto, a opção UART tem menor sobrecarga de custo.
Bluetooth
Se o dispositivo do Azure Sphere expor uma conexão Bluetooth, você poderá provisionar Wi-Fi usando Bluetooth. A solução de referência WifiSetupAndDeviceControlViaBle usa um controlador Bluetooth nRF52 (que está incluído no módulo USI Global do Azure Sphere). O exemplo inclui um aplicativo de alto nível do Azure Sphere e um aplicativo de área de trabalho do Windows (escrito em C#).
UART
Em um ambiente de produção, talvez seja necessário atualizar a configuração Wi-Fi para um dispositivo que não inclua ou tenha suporte para adicionar temporariamente uma programação USB/FTDI e uma placa de depuração. Você pode decidir expor uma interface UART/Serial do dispositivo para permitir que um engenheiro atualize Wi-Fi configurações de um dispositivo. O projeto WifiConfigurationViaUart da Galeria do Azure Sphere mostra como desenvolver uma interface de menu baseada em UART que habilita: reinicialização do dispositivo, listagem da configuração atual Wi-Fi e a capacidade de adicionar uma nova configuração de rede. O exemplo pode ser estendido para adicionar funcionalidade adicional.
Configuração de rede bootstrap
Talvez seja possível usar uma conexão de rede para inicializar Wi-Fi configuração. Há duas etapas:
Conecte o dispositivo do Azure Sphere à rede bootstrap.
Obtenha as novas informações de provisionamento de Wi-Fi e configure o dispositivo.
Obter um dispositivo conectado a uma rede de inicialização
A rede Wi-Fi à qual um dispositivo se conecta pode não ser conhecida no ponto de fabricação e pode ser configurada por um instalador de dispositivo ou engenheiro durante a instalação no local. Você pode considerar provisionar uma conexão Wi-Fi com seu dispositivo como parte do processo de fabricação. Os engenheiros podem configurar um dispositivo móvel como um Ponto de Acesso Wi-Fi que corresponda ao SSID provisionado de fabricação e à chave de passagem que permite que o dispositivo do Azure Sphere seja conectado.
O dispositivo pode inicialmente se conectar usando uma conexão celular ou Ethernet.
Provisionar a conexão Wi-Fi da rede bootstrap
Depois que um dispositivo é conectado à rede bootstrap, há várias opções para obter a nova configuração de Wi-Fi:
- O dispositivo do Azure Sphere poderia hospedar um servidor TCP ou HTTP simples que habilitasse um cliente na rede de inicialização para configurar a rede.
- O dispositivo do Azure Sphere poderia usar uma porta TCP/IP ou um nome de host pré-determinado para se conectar a um servidor/serviço que fornece as credenciais Wi-Fi.
- O serviço usado para fornecer credenciais Wi-Fi pode precisar ser determinado em runtime, nesse caso, tecnologias como DNS-SD podem ser usadas.
- Uma das opções de configuração remota listadas abaixo também pode ser usada.
NFC
A configuração de Wi-Fi baseada em NFC tem a vantagem de exigir algumas etapas e ser rápida. Ao contrário do método de linha de comando, que requer a conexão de um cabo e possivelmente digitação de um comando, a única ação é que o operador segure um telefone celular no dispositivo que precisa ser configurado. A NFC é mais rápida em comparação com a maioria das outras técnicas de configuração, pois depende apenas da proximidade e não precisa ser emparelhada e não paga. As lojas Android e Apple têm aplicativos que podem ser usados durante o desenvolvimento e testes para provisionar credenciais Wi-Fi para um dispositivo.
O projeto WifiConfigurationViaNfc da Galeria do Azure Sphere mostra como adicionar uma nova configuração de rede com base no evento de toque NFC.
Configurando remotamente Wi-Fi
Depois que um dispositivo estiver em produção ou estiver em um local remoto, você ainda precisará provisionar ou atualizar as credenciais Wi-Fi, as opções incluem:
Propriedades do Azure Device Twin (opção recomendada)
Hub IoT do Azure e suporte do Azure IoT Central Device Twins, os gêmeos do dispositivo são um documento JSON espelhado entre o serviço Hub IoT do Azure/Central e um dispositivo, no lado do Azure um operador de dispositivo pode definir um estado desejado para o qual um dispositivo deve tentar alcançar (um setpoint de temperatura para um termostato, por exemplo), o dispositivo envia seu estado relatado de volta para Hub IoT do Azure/Central. A capacidade de definir uma nova propriedade desejada para um ou muitos dispositivos dentro do Hub IoT do Azure/Central (isso pode ser alcançado programaticamente) permitiria que um operador de dispositivo definisse uma nova configuração de Wi-Fi como uma propriedade desejada para um ou muitos dispositivos, emparelhando o conhecimento de dispositivos em um grupo de dispositivos específico do Azure Sphere com dispositivos em um Hub IoT do AzureO aplicativo /Central fornece um controle fino sobre quais dispositivos são atualizados.
Atualizações ao seu software de aplicativo
Os aplicativos de dispositivo do Azure Sphere podem ser atualizados pelo fabricante do dispositivo. O vídeo IoT Show Developing for Azure Sphere OTA updates demonstrates over-the-air application deployment and application update deferral.
Há várias opções para atualizar Wi-Fi configuração de um aplicativo atualizado:
- Você pode considerar ter cadeias de caracteres no código do aplicativo que são atualizadas para cada alteração na configuração de Wi-Fi. Isso é relativamente simples de implementar e não requer carregamento/análise de um arquivo de recurso inserido. Isso significa que os arquivos de código são tocados como parte da atualização da configuração de Wi-Fi, o que pode ter um impacto no histórico de códigos.
- Você pode usar um arquivo de recurso inserido no aplicativo, alterar o recurso não toca no código e, se você escolher um formato de dados como JSON, o conteúdo do arquivo pode ser facilmente analisado e validado durante o build e teste automatizados. O projeto Galeria WifiConfigurationViaAppResource demonstra como usar o conteúdo de um arquivo de recurso JSON para configurar o Wi-Fi.
- Você pode usar um ponto de extremidade web bem conhecido (serviço Azure App, por exemplo) para que seus dispositivos obtenham sua configuração de Wi-Fi.
Lembre-se de que inserir Wi-Fi configuração diretamente no aplicativo (na origem ou no arquivo de recurso) significa que os dispositivos atualizados receberão as mesmas informações de configuração Wi-Fi. Se você quiser definir Wi-Fi configurações em dispositivos individuais, o método Hub IoT do Azure/Central Device Twin ou opções conhecidas de ponto de extremidade da Web devem ser usados.
Considerações sobre a configuração do Wi-Fi
Ao modificar a configuração Wi-Fi de um dispositivo, talvez você queira adicionar a nova configuração de Wi-Fi, desabilitar a conexão existente, habilitar a nova conexão e confirmar se a nova conexão está funcionando antes de excluir as informações de conexão anteriores.