Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Conexión segura de un Arduino NB 1500 a Azure IoT Hub

Componentes y suministros

Arduino MKR NB 1500
× 1
Cable micro-USB a USB (genérico)
× 1
Batería Lipo 3.7V
× 1
Tarjeta Micro SIM
× 1

Aplicaciones y servicios en línea

Arduino IDE
Microsoft Azure

Acerca de este proyecto

Nota:este tutorial podría estar desactualizado, vaya aquí para una versión más actual.

Introducción

Azure IoT Hub le permite "conectar, supervisar y administrar de forma segura miles de millones de dispositivos para desarrollar aplicaciones de Internet de las cosas (IoT)".

Los dispositivos pueden conectarse a Azure IoT Hub mediante los siguientes protocolos:HTTPS, AMPQ y MQTT:Azure también proporciona SDK para muchos lenguajes de programación para abstraer estos protocolos. Además, puede conectarse a IoT Hub a través de un cliente MQTT. Esta página tiene más información sobre la compatibilidad con MQTT de IoT Hub.

Este tutorial le mostrará cómo conectar una placa Arduino MKR NB 1500 de forma segura a Azure IoT Hub mediante un cliente MQTT. MQTT (Message Queue Server Telemetry Transport) es un protocolo de conectividad M2M (máquina a máquina) que proporciona una suscripción de mensajería y transporte de publicación.

Los dispositivos pueden usar tokens SAS o certificados X.509 para la autenticación con Azure IoT Hub. Puede encontrar más información aquí. En este tutorial, usaremos un certificado X.509 para autenticar la placa.

Cada placa Arduino MKR con conectividad integrada, incluida la MKR NB 1500, está equipada con un elemento criptográfico Microchip ATECC508A o ATECC608A. Este elemento criptográfico se puede utilizar para generar y almacenar de forma segura una clave ECC (criptografía de curva elíptica) de 256 bits.

Configuración de software y hardware

Si no tiene el IDE de Arduino instalado en su computadora, descárguelo e instálelo.

Una vez que esté instalado, asegúrese de tener instalado el último paquete "Arduino SAMD Boards". Puede verificar abriendo el IDE de Arduino y abriendo las Herramientas -> Tablero:"..." -> Administrador de tablero ... entrada de menú y buscando "Arduno SAMD". En el momento de escribir este artículo, la 1.6.20 era la última versión.

A continuación, deberá instalar las bibliotecas de Arduino que se utilizarán, utilizando el administrador de bibliotecas del IDE de Arduino. Abra el Sketch -> Incluir biblioteca -> Administrar bibliotecas ... , busque e instale individualmente cada una de las siguientes bibliotecas:

  • MKRNB
  • ArduinoBearSSL
  • ArduinoECCX08
  • ArduinoMqttClient
  • Ejemplos de proveedores de nube de Arduino

Ahora inserte la tarjeta micro SIM en la ranura en la parte inferior de la placa MKR NB 1500 y conecte la batería Lipo de 3.7V al conector JST. Luego, conecte el MKR NB 1500 con el cable micro USB a su computadora, seleccione el puerto serie en el IDE de Arduino usando las Herramientas -> Puerto "..." menú y también seleccione Arduino MKR NB 1500 en el Herramientas -> Placa "..." menú.

Configuración y adición de la placa a Azure IoT Hub

Como se mencionó anteriormente, Azure IoT Hub permite que los dispositivos se conecten mediante el protocolo MQTT y utilicen certificados X.509 para la autenticación. Usaremos un boceto para generar un certificado X.509 autofirmado en la placa y luego agregaremos el SHA1 de este certificado al portal de Azure IoT Hub.

El certificado autofirmado se puede generar usando un boceto de ejemplo de la biblioteca ArduinoECCX08. Abra el boceto en el IDE de Arduino usando Archivo -> Ejemplos -> ArduinoECCX08 -> Herramientas -> ECCX08SelfSignedCert . Haga clic en el botón "Cargar" para crear y cargar el boceto en su tablero, luego abra el Monitor en serie. Asegúrese de que la configuración del final de línea esté establecida en "Ambos NL y CR".

Este esquema le pedirá que configure permanentemente su elemento criptográfico ATECC508A a ECC608A si no está configurado y bloqueado. NOTA:Este proceso de bloqueo es permanente e irreversible, pero es necesario para usar el elemento criptográfico; la configuración que establece el boceto permite usar 5 ranuras de clave privada con cualquier proveedor de nube (o servidor) y una clave privada se puede regenerar en cualquier momento para cualquier de el 5 privado ranuras de teclas (0 - 4) . Cuando la placa se envía de fábrica, el elemento criptográfico se encuentra en un estado no configurado y desbloqueado.

Después de esto, se le pedirá información para incluir en el certificado autofirmado, incluido el año, mes, día y hora de emisión del certificado y el período de vencimiento en años. Para este tutorial, usaremos la ranura 0 para generar y almacenar la clave privada utilizada para firmar el certificado autofirmado (las ranuras 1 a 4 se pueden usar para generar y almacenar claves privadas adicionales si es necesario); luego, la ranura 8 se utilizará para almacenar la fecha de emisión y caducidad del certificado junto con su firma. Nota: Dado que la clave privada se genera dentro del elemento criptográfico, nunca sale del dispositivo y se almacena de forma segura y no se puede leer.

Copie el valor SHA1 generado (en esta captura de pantalla " 99d6d96fa55bdf08b4040a142a8d0d934bc9d12b "). Lo usaremos en un paso posterior como una huella digital para el certificado autofirmado para el dispositivo en Azure IoT Hub.

Ahora que tenemos un certificado autofirmado y la huella digital SHA1 para identificar la placa, debemos iniciar sesión en el portal de Azure IoT Hub y crear un nuevo dispositivo para él.

1) Abra un navegador web y vaya a portal.azure.com.

2) Si aún no tiene una cuenta de Azure, haga clic en "¡Crear una!" enlace en la página para crear una cuenta. De lo contrario, ingrese su dirección de correo electrónico, haga clic en "Siguiente" y siga el proceso de inicio de sesión.

3) En el panel de navegación de la izquierda, haga clic en "Crear un recurso".

4) Luego, haga clic en "Internet de las cosas" y "IoT Hub".

5) Se le pedirá que seleccione una suscripción, un grupo de recursos, una región y un nombre de IoT Hub. En la captura de pantalla siguiente, se utilizaron como entrada "Prueba gratuita", "MKR", "Este de EE. UU." Y "ArduinoProjectHubTutorial". Haga clic en "Revisar + Crear" para continuar.

6) Aparecerá una pantalla de confirmación, haga clic en "Crear".

7) Tendrá que esperar unos minutos para que IoT Hub se cree e implemente.

8) Una vez que se complete la implementación, aparecerá el botón "Ir al recurso", haga clic en él.

9) Ahora podemos crear un nuevo dispositivo IoT, haga clic en "Dispositivos IoT" debajo del encabezado "Explorar".

10) Haga clic en el botón "Agregar" para agregar un nuevo dispositivo.

11) Ingrese un nombre para el dispositivo, debajo se ingresó "MyMKRNB1500", luego haga clic en la pestaña "X.509 Self-Signed". Pegue el SHA1 del monitor serial del Arduino IDE para la huella digital primaria y secundaria. Luego haga clic en el botón "Guardar" para crear el dispositivo.

12) Ahora verá una nueva entrada en la página Dispositivos de IoT.

Conexión de la placa a Azure IoT Hub

1) Abra el boceto de Azure IoT Hub NB en el IDE de Arduino usando Archivo -> Ejemplos -> Ejemplos de proveedores de nube de Arduino -> AzureIoTHub-> Azure_IoT_Hub_NB.

2) En la pestaña arduino_secrets.h, complete el pin (si es necesario) de la tarjeta SIM.

  // NB settings # define SECRET_PINNUMBER ""  

3) Actualice el valor del agente con el punto de conexión creado en el portal de Azure IoT Hub.

  // Complete el nombre de host de su agente de Azure IoT Hub # define SECRET_BROKER " .azure-devices.net"  

4) Actualice el valor de ID del dispositivo, con el nombre del dispositivo que creó en el portal de Azure IoT Hub.

  // Complete el ID del dispositivo # define SECRET_DEVICE_ID ""  

5) Cargue el boceto en su tablero y abra el monitor serial. La placa intentará conectarse a la red celular y, si tiene éxito, intentará conectarse a Azure IoT Hub mediante MQTT.

Interactuar con la placa en Azure IoT Core

Ahora que su placa se ha conectado correctamente a Azure IoT Hub, podemos usar el portal de Azure IoT Hub para interactuar con ella. El boceto envía un mensaje a los dispositivos / {deviceId} / messages / events / tema cada 5 segundos y escucha los mensajes en devices / {deviceId} / messages / devicebound / # tema.

En el portal de Azure IoT Hub, haga clic en la fila de identificación del dispositivo en la tabla Dispositivos de IoT para su placa. Luego, haz clic en el botón "Enviar mensaje al dispositivo" en la barra de herramientas.

Ahora puede ingresar el cuerpo del mensaje para enviarlo al dispositivo, en la captura de pantalla a continuación " Hola :) "se ingresó. Haga clic en el botón" Enviar mensaje "en la barra de herramientas para enviar el mensaje.

Cuando la placa recibe el mensaje, el Serial Monitor en el IDE de Arduino lo mostrará.

Para ver los mensajes que envía la pizarra:

1) Inicie sesión en shell.azure.com (seleccione "Bash" si es la primera vez que se le solicite).

2) Instale la extensión de IoT Hub:

  extensión az agregar --nombre azure-cli-iot-ext  

3) Ejecute el siguiente comando, reemplace con el nombre de su concentrador (ingrese y si se le solicita la actualización de dependencia):

  az iot hub monitor-events --hub-name   

4) Verá mensajes impresos en el caparazón:

Conclusión

En este tutorial, cubrimos cómo usar de forma segura una placa Arduino MKR NB 1500 con Azure IoT Hub. Se usó un certificado X.509 autofirmado para autenticarse con Azure IoT Hub mediante el protocolo MQTT con ATECC508A o ATECC608A almacenando la clave privada asociada con el certificado. Se enviaron mensajes MQTT desde y hacia el tablero.

Esto es solo el comienzo, ¡puede usar Azure IoT Hub con muchos de los otros servicios que brinda Azure!

Código

Github
https://github.com/arduino/ArduinoCloudProviderExamples

Proceso de manufactura

  1. Cómo IoT conecta los lugares de trabajo
  2. La placa Arduino apunta a IoT industrial
  3. Los kits de desarrollo son compatibles con Azure RTOS
  4. Proyecto de IoT basado en Raspberry PI que conecta el sensor DHT11
  5. IoT en la nube:Azure vs AWS
  6. Registrador de datos GPS, análisis espacial y Azure IoT Hub.
  7. Monitor de frecuencia cardíaca con IoT
  8. Uso de IoT para controlar de forma remota un brazo robótico
  9. Seguidor solar basado en Internet de las cosas (IoT)
  10. Medidor de IoT con Arduino, Yaler e IFTTT
  11. Piscina de Azure IoT