Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Conecte seu Arduino MKR NB 1500 ao Azure IoT Hub com Segurança

Componentes e Materiais Necessários

Componente Quantidade
Arduino MKR NB 1500 1
Cabo Micro-USB para USB 1
Bateria LiPo 3.7V 1
Cartão Micro SIM 1

Aplicativos e Serviços Online

Sobre este Projeto

Nota: Este tutorial pode estar desatualizado. Para uma versão mais atual, consulte este link.

Introdução

O Azure IoT Hub permite "conectar, monitorar e gerenciar bilhões de dispositivos para desenvolver aplicações de Internet das Coisas (IoT) com segurança".

Os dispositivos podem se conectar ao Azure IoT Hub usando os protocolos HTTPS, AMQP e MQTT. O Azure também fornece SDKs para várias linguagens de programação que abstraem esses protocolos. Além disso, é possível conectar-se via cliente MQTT. Esta página tem mais informações sobre o suporte MQTT do IoT Hub.

Este tutorial mostra como conectar uma placa Arduino MKR NB 1500 de forma segura ao Azure IoT Hub usando um cliente MQTT. O MQTT (Message Queuing Telemetry Transport) é um protocolo de conectividade M2M (machine-to-machine) que fornece transporte de publicação e assinatura de mensagens.

Os dispositivos podem usar tokens SAS ou certificados X.509 para autenticação com o Azure IoT Hub. Mais informações aqui. Neste tutorial, usaremos um certificado X.509 para autenticar a placa.

Todas as placas Arduino MKR com conectividade integrada, incluindo a MKR NB 1500, possuem um elemento criptográfico Microchip ATECC508A ou ATECC608A. Este elemento pode gerar e armazenar com segurança uma chave ECC (Elliptic Curve Cryptography) de 256 bits.

Configuração de Software e Hardware

Se você não tem o Arduino IDE instalado, baixe e instale.

Após a instalação, certifique-se de ter o pacote "Arduino SAMD Boards" mais recente. Verifique abrindo o Arduino IDE e acessando Ferramentas → Placa: "..." → Gerenciador de Placas..., pesquisando por "Arduino SAMD". No momento da escrita, a versão 1.6.20 era a mais recente.

Em seguida, instale as bibliotecas necessárias pelo Gerenciador de Bibliotecas do Arduino IDE (Sketch → Incluir Biblioteca → Gerenciar Bibliotecas...):

Insira o cartão micro SIM no slot inferior da MKR NB 1500 e conecte a bateria LiPo 3.7V ao conector JST. Conecte a placa ao computador via cabo micro USB, selecione a porta serial em Ferramentas → Porta "..." e a placa Arduino MKR NB 1500 em Ferramentas → Placa "...".

Configurando e Adicionando a Placa ao Azure IoT Hub

O Azure IoT Hub permite dispositivos que se conectam via MQTT e usam certificados X.509 para autenticação. Geraremos um certificado X.509 autoassinado na placa e adicionaremos seu SHA1 ao portal do Azure IoT Hub.

O certificado autoassinado pode ser gerado usando um sketch de exemplo da biblioteca ArduinoECCX08. Abra no Arduino IDE: Arquivo → Exemplos → ArduinoECCX08 → Ferramentas → ECCX08SelfSignedCert. Carregue o sketch na placa e abra o Monitor Serial. Certifique-se de que a configuração de final de linha esteja em "Both NL & CR".

Este sketch solicitará a configuração permanente do elemento criptográfico ATECC508A/ECC608A se ele não estiver configurado e travado. NOTA: Este processo de travamento é permanente e irreversível, mas necessário para usar o elemento criptográfico. A configuração permite usar 5 slots de chave privada (0-4) com qualquer provedor de nuvem, e uma chave privada pode ser regenerada a qualquer momento para qualquer um dos 5 slots. Quando a placa sai de fábrica, o elemento criptográfico está em estado não configurado e desbloqueado.

Depois, você será solicitado a fornecer informações para o certificado autoassinado: ano, mês, dia e hora de emissão, e período de validade em anos. Usaremos o slot 0 para gerar e armazenar a chave privada usada para assinar o certificado (slots 1-4 para chaves adicionais). O slot 8 armazenará a data de emissão, validade e a assinatura do certificado. Nota: Como a chave privada é gerada dentro do elemento criptográfico, ela nunca sai do dispositivo e é armazenada com segurança, não podendo ser lida.

Copie o valor SHA1 gerado (no exemplo: 99d6d96fa55bdf08b4040a142a8d0d934bc9d12b). Usaremos como impressão digital (fingerprint) do certificado no Azure IoT Hub.

Agora, faça login no portal do Azure IoT Hub e crie um novo dispositivo:

  1. Acesse portal.azure.com.
  2. Se não tiver conta Azure, clique em "Criar uma!" e siga o processo. Caso contrário, faça login.
  3. No painel de navegação esquerdo, clique em "Criar um recurso".
  4. Selecione "Internet das Coisas" e depois "IoT Hub".
  5. Preencha Assinatura, Grupo de recursos, Região e Nome do IoT Hub. No exemplo: "Free Trial", "MKR", "Leste dos EUA", "ArduinoProjectHubTutorial". Clique em "Revisar + criar".
  6. Na tela de confirmação, clique em "Criar".
  7. Aguarde alguns minutos para a implantação.
  8. Quando concluída, clique em "Ir para o recurso".
  9. Em "Explorar", clique em "Dispositivos IoT".
  10. Clique em "Adicionar" para criar um novo dispositivo.
  11. Digite um nome (ex: "MyMKRNB1500"), clique na aba "X.509 Autoassinado". Cole o SHA1 do Monitor Serial nos campos "Thumbprint Primário" e "Thumbprint Secundário". Clique em "Salvar".
  12. O dispositivo aparecerá na lista.

Conectando a Placa ao Azure IoT Hub

  1. Abra o sketch do Azure IoT Hub NB no Arduino IDE: Arquivo → Exemplos → Arduino Cloud Provider Examples → AzureIoTHub → Azure_IoT_Hub_NB.
  2. Na aba arduino_secrets.h, preencha o PIN do cartão SIM (se necessário):
// Configurações NB
#define SECRET_PINNUMBER ""
  1. Atualize o broker com o endpoint do seu Azure IoT Hub:
// Hostname do broker Azure IoT Hub
#define SECRET_BROKER ".azure-devices.net"
  1. Atualize o device ID com o nome do dispositivo criado no portal:
// ID do dispositivo
#define SECRET_DEVICE_ID ""
  1. Carregue o sketch na placa e abra o Monitor Serial. A placa tentará conectar à rede celular e, se bem-sucedida, conectará ao Azure IoT Hub via MQTT.

Interagindo com a Placa no Azure IoT Core

Com a placa conectada, podemos usar o portal do Azure IoT Hub para interagir. O sketch envia mensagens ao tópico devices/{deviceId}/messages/events/ a cada 5 segundos e escuta mensagens no tópico devices/{deviceId}/messages/devicebound/#.

  1. No portal, clique na linha do device ID na tabela de Dispositivos IoT.
  2. Clique no botão "Mensagem para dispositivo" na barra de ferramentas.
  3. Digite o corpo da mensagem (ex: "Olá :)") e clique em "Enviar Mensagem".
  4. Quando a placa receber a mensagem, o Monitor Serial no Arduino IDE a exibirá.

Para visualizar as mensagens que a placa envia:

  1. Acesse shell.azure.com (selecione "Bash" se for a primeira vez).
  2. Instale a extensão IoT Hub:
az extension add --name azure-cli-iot-ext
  1. Execute o comando (substitua <hub name> pelo nome do seu hub; digite 'y' se solicitado para atualização de dependência):
az iot hub monitor-events --hub-name 
  1. As mensagens aparecerão no shell.

Conclusão

Neste tutorial, cobrimos como usar com segurança uma placa Arduino MKR NB 1500 com o Azure IoT Hub. Um certificado X.509 autoassinado autenticou com o Azure IoT Hub usando o protocolo MQTT, com o ATECC508A/ATECC608A armazenando a chave privada associada ao certificado. Mensagens MQTT foram enviadas e recebidas da placa.

Este é apenas o começo; você pode usar o Azure IoT Hub com muitos outros serviços do Azure!

Código

Repositório no GitHub: ArduinoCloudProviderExamples

Processo de manufatura

  1. Como IoT e 5G Estão Transformando Locais de Trabalho Modernos
  2. Arduino Lança Portenta H7: Placa IoT Industrial‑Grade Estreia na CES
  3. Azure RTOS Expande nas Principais Plataformas Embarcadas com Novos Kits de Desenvolvimento
  4. Conecte Raspberry Pi 3 a Sensor DHT11 e Envie Dados para Nuvem ThingsIo.ai
  5. Azure vs AWS: Qual Plataforma de Nuvem Vence para IoT?
  6. Construa um Datalogger GPS com Análise Espacial no Azure IoT Hub
  7. Monitor de Frequência Cardíaca IoT em Tempo Real com Arduino e MAX30100
  8. Controle IoT Remoto de Braço Robótico Personalizado
  9. Rastreador Solar IoT: Gestão Inteligente de Energia com Arduino
  10. Sistema de Controle de Piscina com Azure IoT: Sensores Inteligentes e Monitoramento Remoto