Ir al contenido principal
Todas las coleccionesGuías de usuario
Plugins: Conectar AWS IoT Core a Ubidots usando HTTPS
Plugins: Conectar AWS IoT Core a Ubidots usando HTTPS

Recibe y decodifica datos de dispositivos conectados a AWS IoT Core

Sergio M avatar
Escrito por Sergio M
Actualizado hace más de 3 meses

Ubidots y AWS se han asociado para crear una integración preconstruida que permite a los usuarios enviar fácilmente datos de sensores desde AWS IoT Core a Ubidots, utilizando Plugins.

Esta integración creará automáticamente los siguientes recursos en tu cuenta de AWS:

Requisitos

  • Una cuenta activa de Ubidots.

  • Una cuenta activa de AWS.

1. Crear una política

Para crear una política, ve a tu consola de Gestión de AWS IAM, luego haz clic en la opción Políticas en el panel izquierdo y sigue estos pasos:

  1. Obtén tu número de ID de cuenta haciendo clic en tu nombre de usuario en la esquina superior derecha:​

  2. Haz clic en el botón Crear política.

  3. Selecciona la pestaña JSON y pega el siguiente código. Necesitarás reemplazar el campo <NumberAccountUser> por tu número de ID de cuenta. Luego, avanza a la página siguiente.

    {
    "Version": "2012-10-17",
    "Statement": [
    {
    "Sid": "VisualEditor0",
    "Effect": "Allow",
    "Action": [
    "iam:GetRole",
    "iam:CreateRole",
    "iam:PutRolePolicy",
    "iam:ListRolePolicies"
    ],
    "Resource": "arn:aws:iam::<NumberAccountUser>:role/Ubidots*"
    }
    ]
    }
  4. Deja la sección de etiquetas tal como está y avanza a la página de revisión.

  5. En la página de revisión de la política, solo completa el campo Nombre, asigna un nombre para identificar tu nueva política creada y haz clic en Crear política.​

2. Crear un usuario

  1. Haz clic en el botón "Crear usuario".

  2. Ingresa un nombre para el usuario y luego haz clic en el botón "Siguiente".

  3. Haz clic en la opción "Adjuntar políticas existentes directamente". Busca la política creada en el paso anterior y selecciónala.

  4. Omite la página de etiquetas y avanza a la página siguiente.

  5. Haz clic en el botón "Crear usuario".

3. Recuperar tus claves de acceso de AWS

  1. Haz clic en el usuario recién creado.

  2. Haz clic en la pestaña "Credenciales de seguridad" y desplázate hacia abajo hasta la sección "Claves de acceso". Luego haz clic en el botón "Crear clave de acceso".

  3. Selecciona "Servicio de terceros" y marca la casilla de confirmación.

  4. Copia la "ID de clave de acceso" y la "Clave de acceso secreta" que se usarán más adelante para completar el complemento de AWS en la plataforma Ubidots. También puedes descargar las claves con el botón Descargar .csv.

4. Crear un complemento de AWS IoT Core

El complemento AWS IoT Core es una función sin servidor que expone una URL de punto final HTTPS privada optimizada para decodificar cargas útiles de JSON de reglas HTTPS de AWS. Cada vez que se recibe una solicitud HTTP POST en dicha URL, se ejecutará una función de decodificación predefinida.

Para crear un complemento:

1. En tu cuenta de Ubidots, ve a la pestaña "Dispositivos", haz clic en "Plugins", luego haz clic en el icono "+" para crear un nuevo complemento. Busca el Plugin de AWS IoT Core, haz clic en él y sigue los pasos en pantalla:

2. Aparecerá una ventana de autenticación. Ingresa tu ID de clave de acceso y clave de acceso secreta de AWS creadas anteriormente en esta guía. Al ingresar tus claves de acceso de AWS, Ubidots configurará automáticamente los recursos necesarios en AWS para completar la integración.

NOTA IMPORTANTE: Como medida de seguridad, Ubidots NO almacena ninguna ID de clave de acceso de AWS ni claves secretas. El permiso con claves de acceso se utiliza solo una vez al comienzo de la configuración de un complemento para crear un rol restringido en AWS y configurar de forma segura los recursos de AWS para transmitir datos a Ubidots. Si prefieres no proporcionar tus claves de AWS, se puede configurar una integración avanzada utilizando el rol de AWS IAM y esta guía de usuario.

3. Después de una autenticación exitosa, aparecerán las opciones de configuración del complemento:

  • Región de AWS: La región de AWS donde actualmente utilizas AWS IoT Core, o planeas utilizar. Ubidots creará la regla de AWS IoT y el destino HTTPS en esta región.

  • Tipo de dispositivo asociado: Se creará un tipo de dispositivo de Ubidots y se vinculará a este complemento. Editar el tipo de dispositivo te permite realizar cambios en lote en todos los dispositivos que reciben datos a través de este complemento.

  • Declaración de consulta de regla de AWS IoT: La declaración de consulta aplicada por la regla de AWS IoT antes de enviar cualquier dato a este complemento. Consulta Referencia SQL de AWS IoT.

  • Token de Ubidots: Selecciona el token de Ubidots que deseas utilizar para este complemento. Recomendamos crear un nuevo token dedicado solo a este complemento, en caso de que necesites aumentar su límite de tasa en el futuro.

Ubidots creará una acción de regla de AWS IoT HTTPS apuntando a este complemento. Esto puede tardar hasta 3 minutos. Puedes verificar el progreso en tu cuenta de AWS yendo a la opción "Destinos" dentro de la sección "Actuar" de AWS IoT.

NOTA: Deberías ver un nuevo destino. Al principio, aparecerá como "Deshabilitado" mientras se realiza un proceso de verificación por parte de AWS. Después de unos minutos, se habilitará.

4. Finaliza el proceso y aparecerá un nuevo complemento en la lista de Plugins.

4. Decodificar tus cargas útiles personalizadas

Para editar la función de decodificación, haz clic en el complemento creado y ve a "Decodificador". Por defecto, este complemento está preconfigurado para obtener datos del tema:

$aws/things/+/shadow/update

Donde "+" es un identificador único del dispositivo, que se utilizará en Ubidots como la etiqueta de dispositivo única. Si se recibe datos de una etiqueta de dispositivo desconocida, entonces Ubidots creará automáticamente un nuevo dispositivo al recibir los primeros puntos de datos.

El formato de datos esperado por defecto es el siguiente, pero por supuesto, puedes cambiarlo a voluntad utilizando el decodificador:

{ 
"state": {
"reported": {
"temperature": 23,
"humidity":55
}
}
}
¿Ha quedado contestada tu pregunta?