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 MKR GSM 1400 a Google Cloud IoT Core

Componentes y suministros

Arduino MKR GSM 1400
× 1
Cable micro USB a USB (genérico)
× 1
Batería Lipo 3.7V
× 1
Tarjeta Micro SIM
× 1
Antena UF.L celular
× 1

Aplicaciones y servicios en línea

Arduino IDE
Google Cloud IoT Core

Acerca de este proyecto

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

Introducción

Los dispositivos pueden conectarse a GCP IoT Core mediante HTTP o MQTT. Este tutorial lo guiará a través de cómo conectar una placa Arduino MKR GSM 1400 de forma segura a GCP IoT Core utilizando 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 deben usar JSON Web Tokens (JWT) para la autenticación. Se puede encontrar más información sobre JWT en RFC 7519. GCP IoT Core es compatible con los algoritmos RSA y Elliptic Curve para verificar las firmas web JSON (JWS). Puede encontrar más información sobre JWS en RFC 7515.

Cada placa Arduino MKR con conectividad integrada, incluida la MKR GSM 1400, 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. Usaremos una clave privada almacenada dentro del elemento criptográfico para firmar el JWT.

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 boceto -> Incluir biblioteca -> Administrar bibliotecas .. . , busque e instale individualmente cada una de las siguientes bibliotecas:

  • MKRGSM
  • Arduino_JSON
  • ArduinoECCX08 (versión 1.3.0 o posterior)
  • ArduinoMqttClient (versión 0.1.3 o posterior)
  • Ejemplos de proveedores de nube de Arduino (versión 1.2.0 o posterior)

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

Configurar y agregar la placa a GCP IoT Core

Como se mencionó anteriormente, GCP IoT Core requiere que los dispositivos que se conectan mediante el protocolo MQTT usen JWT para la autenticación. Usaremos un boceto para generar una clave pública y privada en el tablero, luego agregaremos el valor PEM de la clave pública a la consola de GCP IoT Core.

Lo privado y lo público se pueden generar usando un boceto de ejemplo de la biblioteca ArduinoECCX08. Abra el boceto en el IDE de Arduino usando Archivo -> Ejemplos -> ArduinoECCX08 -> Herramientas -> ECCX08JWSPublicKey . 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 le 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 cualquiera de las 5 ranuras de clave privada (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 preguntará qué ranura usar. Para este tutorial, usaremos la ranura 0 para generar y almacenar la clave privada utilizada para una clave pública (las ranuras 1 a 4 se pueden usar para generar y almacenar claves privadas adicionales si es necesario). 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 de clave pública generado; en esta captura de pantalla, el valor es:

  ----- COMIENZO CLAVE PÚBLICA ----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEFl4 + DXufU84AhDGib7aMwmYwUVAp9coRdC9jOdzRe2kqGWFEb + QP9BYQ4YPUBLICA =KPKg1BYQPY1 

Lo usaremos en un paso posterior cuando agreguemos el dispositivo a GCP IoT Core.

Ahora que tenemos una clave pública PEM, debemos iniciar sesión en la consola de GCP IoT Core y crear un nuevo dispositivo para ella.

1) Abra un navegador web y vaya a https://cloud.google.com/ y haga clic en el enlace "Iniciar sesión" para iniciar sesión con su ID de Google.

2) Una vez que haya iniciado sesión, haga clic en el botón "IR A LA CONSOLA". Luego verá el panel principal.

3) Haga clic en el enlace "CREAR" para crear un nuevo proyecto.

4) Se le pedirá un nombre de proyecto, usaremos "MKR GCP Tutorial" para el nombre. Haga clic en el botón "CREAR" para continuar.

5) Una vez creado el proyecto, se le presentará una vista de panel del mismo.

6) Ahora haga clic en el ícono de menú en la parte superior izquierda, desplácese hasta el encabezado "BIG DATA" y haga clic en el enlace "IoT Core".

7) Se le pedirá que habilite la API, haga clic en el botón "Habilitar API".

8) Una vez que la API esté habilitada, se le pedirá que cree un registro de dispositivo. Haga clic en el botón "Crear un registro de dispositivo" para continuar.

9) A continuación, se le presentará un formulario. Complete el "ID de registro", seleccione una región. En la captura de pantalla a continuación, se ingresó "MKR_GCP_Tutorial" como ID de registro y se seleccionó "us-central1" como región. Después de completar el formulario, haga clic en el botón "Crear".

10) A continuación, se le presentarán los detalles del registro.

11) Para agregar un nuevo dispositivo, haga clic en el enlace "Dispositivos" en la barra de navegación en el lado izquierdo.

12) Luego haga clic en "+ CREAR UN DISPOSITIVO" en el encabezado en la parte superior de la página.

13) Ingrese el nombre del dispositivo, en la captura de pantalla a continuación se usó "MyMKRGSM1400". Se debe seleccionar "ES256" como "Formato de clave pública". Pegue la clave pública PEM generada en el tablero anteriormente en el área de texto "Valor de clave pública". Luego haga clic en el botón "Crear".

Conexión de la placa a GCP IoT Core

1) Abra el boceto GSM de GCP IoT Core en el IDE de Arduino usando Archivo -> Ejemplos -> Ejemplos de proveedores de nube de Arduino -> GoogleCloudPlatformIoTCore-> GCP_IoT_Core_GSM.

2) En la pestaña arduino_secrets.h, complete el pin (si es necesario) de la tarjeta SIM, así como el APN GPRS, el nombre de usuario y la contraseña del operador de telefonía celular que está utilizando.

  // Configuración GSM # define SECRET_PINNUMBER "" #define SECRET_GPRS_APN "GPRS_APN" // reemplaza tu APN GPRS # define SECRET_GPRS_LOGIN "login" // reemplaza con tu login GPRS # define SECRET_GPRS_PASSWORD "contraseña" // reemplaza con su contraseña GPRS  

4) A continuación, actualice la identificación del proyecto, la región de la nube, la identificación del registro y los valores de identificación del dispositivo.

  // Complete su Google Cloud Platform - IoT Core info # define SECRET_PROJECT_ID "" #define SECRET_CLOUD_REGION "" #define SECRET_REGISTRY_ID "" #define SECRET_DEVICE_ID ""  

El valor de identificación del proyecto se puede encontrar haciendo clic en la barra de menú en la parte superior de la consola de GCP. Para los pasos anteriores, los valores son:

  #define SECRET_PROJECT_ID "mkr-gcp-tutorial" #define SECRET_CLOUD_REGION "us-central1" #define SECRET_REGISTRY_ID "MKR_GCP_Tutorial" #define SECRET_DEVICE_SM1400KR " 

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 GCP IoT Core mediante MQTT.

Interactuar con la placa en GCP IoT Core

Ahora que su placa se ha conectado correctamente a GCP IoT Core, podemos usar la consola de GCP IoT Core para interactuar con ella. El boceto envía un mensaje a / devices / {deviceId} / state tema cada 5 segundos y escucha mensajes en ambos / devices / {deviceId} / config tema y / devices / {deviceId} / commands / # temas.

En la página del dispositivo en la consola de GCP IoT Core, haga clic en el botón "ENVIAR COMANDO".

Aparecerá un cuadro de diálogo modal, donde puede ingresar un mensaje para enviar. En la captura de pantalla a continuación, "¡Hola!" fue ingresado. Haga clic en el botón "ENVIAR COMANDO" para enviar el mensaje.

Una vez que la placa recibe el mensaje, lo imprimirá en el Monitor de serie.

Para ver los mensajes que envía el tablero, haga clic en la pestaña "Configuración e historial de estado".

Los mensajes aparecerán en formato codificado Base64, para ver el valor haga clic y la entrada en la lista y seleccione el botón de opción "Texto".

En la captura de pantalla anterior, la pizarra estaba enviando un "hola 464488" valor, el valor 464488 es el resultado de millis () función en el tablero.

Conclusión

En este tutorial, cubrimos cómo usar de forma segura una placa Arduino MKR GSM 1400 con GCP IoT Core. Se usó un JWT firmado para autenticarse con GCP IoT Core mediante el protocolo MQTT con ATECC508A o ATECC608A almacenando la clave privada utilizada para firmar el JWT. Se enviaron mensajes MQTT desde y hacia el tablero.

Esto es solo el comienzo, puede usar GCP IoT Core con muchos de los otros servicios que brinda GCP.

Código

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

Proceso de manufactura

  1. ADLINK se asocia con Google Cloud para ofrecer soluciones listas para IoT
  2. Proyecto de IoT basado en Raspberry PI que conecta el sensor DHT11
  3. Windows 10 IoT Core y SHT15
  4. Windows 10 IoT Core para Raspberry Pi 3 Modelo B +
  5. Windows 10 IoT Core:Robot controlado por voz
  6. Depuración de doble núcleo Portenta H7
  7. Arduino - Tomar foto - Subir a Google Drive
  8. Monitor de frecuencia cardíaca con IoT
  9. Torre de sensores de nubes Arduino
  10. Piscina de Azure IoT
  11. IoT Gateways:una guía para conectar cosas a la nube