Creación de un flujo con dispositivos y un servicio - AWS IoT Things Graph

AWS IoT Things Graphse está interrumpiendo. Puede seguir utilizando elConsola de AWS IoT Things Graphsolo si estás en la lista de permitidos para ello.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Creación de un flujo con dispositivos y un servicio

En este tema se describen los pasos que debe seguir para crear e implementar un flujo de trabajo sencillo que se compone de un Raspberry Pi conectado a tres dispositivos: un sensor de movimiento Aukru HC-SR501, una cámara Raspberry Pi y una pantalla Raspberry Pi. También contiene un modelo de servicio de AWS IoT Things Graph que expone la función de detección del rostro deAmazon Rekognition.

El flujo se activa cuando el detector de movimiento detecta a una persona en movimiento. El detector de movimiento envía un mensaje a la cámara, que toma una foto y la envía al modelo de servicio Amazon Rekognition. El modelo de servicio envía la imagen para que se visualice en la pantalla. El modelo de servicio no procesa los resultados de la API DetectFaces ni envía nada a la pantalla más que la imagen.

Puede modificar este ejemplo añadiendo un modelo de servicio entre el servicio de Amazon Rekognition y la pantalla. El modelo de servicio adicional puede procesar los resultados (por ejemplo, determinar si la imagen debe mostrarse en la pantalla) antes de enviar la imagen a la pantalla.

Prerequisites

Para crear este ejemplo, necesita los siguientes recursos:

Configuración de Raspberry Pi

Para ejecutar el flujo de trabajo (flujo), debe configurar su Raspberry Pi.

Ahora ha configurado su Raspberry Pi para que se comunique con el sensor de movimiento, la cámara y la pantalla.

Cree un grupo de AWS IoT Greengrass

nota

Para obtener más información acerca de cómo utilizar AWS CloudFormation para crear y administrar grupos y recursos de AWS IoT Greengrass, consulte Referencia de tipos de recursos de AWS IoT Greengrass.

Instale AWS IoT Greengrass en el mismo Raspberry Pi en el que ha conectado el sensor de movimiento, la cámara y la pantalla.

Siga los pasos que se indican en Configuración del entorno en su Raspberry Pi. Asegúrese de que ha creado un rol de IAM paraAWS IoT Greengrass(paso 4 en elCreación de unAWS IoT Greengrassgrupoprocedimiento en ese tema). Asocie la política AmazonS3FullAccess para concederle acceso a su bucket de S3.

nota

LaAWS IoT GreengrassEl grupo de y el bucket de Amazon S3 que utiliza en este ejemplo se deben crear en el mismoAWSRegión . Las entidades del AWS IoT Things Graph que cree también deben estar en la misma región que estos recursos.

Creación de objetos

Abra el iconoConsola de AWS IoTY cree tres objetos: uno para el sensor de movimiento y los otros dos para la cámara y la pantalla conectadas a su Raspberry Pi.

Para obtener instrucciones sobre cómo crear objetos en el Registro, consulte Registro de un dispositivo en el Registro.

En la páginaGreengrassPestaña en elConsola de AWS IoTElija su grupo de y elijaDispositivosy, a continuación, agregue las tres cosas nuevas a suAWS IoT Greengrassgrupo.

Para obtener información general acerca de los conceptos de AWS IoT, consulte¿Qué es AWS IoT?

Crear y publicar el flujo

Para crear este flujo con la herramientaAWS CLIen lugar de la consola AWS IoT Things Graph, siga las instrucciones deCreación de un flujo con dispositivos y un servicio utilizando laAWS CLI.

  1. Abra el iconoAWS IoT Things Graph.

    Elija Create flow (Crear flujo).

  2. Cree un flujo.

    En el panel Flow configuration (Configuración de flujo) que aparece, asigne un nombre al flujo (como RekognitionFlow). Elija Create flow (Crear flujo).

  3. Añada los modelos de dispositivo y el modelo de servicio al flujo.

    1. Busque el modelo de dispositivo MotionSensor (Sensor de movimiento). Seleccione el dispositivo y arrástrelo al diseñador de flujo.

    2. Busque el modelo de dispositivo CameraRkgnExample. Seleccione el modelo de dispositivo y arrástrelo al diseñador de flujo.

    3. En la pestaña Services (Servicios), busque el modelo de servicio Rekognition. Seleccione el modelo de servicio y arrástrelo al diseñador de flujo.

    4. En la pestaña Devices (Dispositivos) haga lo mismo con el modelo de dispositivo Screen (Pantalla).

  4. Conecte los modelos de dispositivo.

    En el diseñador de flujo, seleccione el extremo del modelo de dispositivo MotionSensor (Sensor de movimiento) y conéctelo al modelo de dispositivo CameraRkgnExample. A continuación, conecte el modelo de dispositivo CameraRkgnExample, el modelo de servicio Rekognition y el modelo de dispositivo Screen (Pantalla) del mismo modo.

    
               CameraRkgnExampleModelo del dispositivoRekognitionEl modelo de servicio yScreenConectado mediante una línea recta.
  5. Actualice el desencadenador del sensor de movimiento.

    En el editor del desencadenador que aparece en el panel derecho, en Condition (Condición), elija StateChanged (Estado cambiado). En Action (Acción), seleccione ThingsGraph.startFlow.

  6. Actualice la acción del modelo de dispositivo de cámara.

    1. En el diseñador de flujo, seleccione el modelo de dispositivo CameraRkgnExample.

    2. Seleccione No action configured (Ninguna acción configurada) en el editor de acciones que aparece en el panel derecho.

    3. En Action (Acción), elija Capture (Capturar).

    4. Amplíe Output (Salida) y, a continuación, introduzca cameraRkgnExampleResult.

  7. Actualice la actividad del modelo de servicio Rekognition.

    1. En el diseñador de flujo, seleccione el modelo de servicio Rekognition.

    2. Seleccione No action configured (Ninguna acción configurada) en el editor de acciones que aparece en el panel derecho.

    3. En Action (Acción), seleccione detectFaces

    4. Amplíe Inputs (Entradas) y, a continuación, elija Define Input (Definir entrada).

    5. En bucketName, introduzca${cameraRkgnExampleResult.s3BucketName}.

    6. En itemName, introduzca ${cameraRkgnExampleResult.s3ItemName}.

    7. Amplíe Output (Salida) y, a continuación, introduzca rekognitionResult.

  8. Actualice la actividad del modelo de dispositivo de pantalla.

    1. En el diseñador de flujo, seleccione el modelo de dispositivo Screen (Pantalla).

    2. Seleccione No action configured (Ninguna acción configurada) en el editor de acciones que aparece en el panel derecho.

    3. En Action (Acción), elija Display (Visualización).

    4. Amplíe Inputs (Entradas) y, a continuación, elija Define Input (Definir entrada).

    5. En imageUrl, introduzca ${cameraRkgnExampleResult.lastClickedImage}.

  9. Publique el flujo.

    Elija Publish (Publicar) en la parte superior derecha de la página. Se creará el flujo y se añadirá a la lista de flujos que se pueden implementar.

Asociar objetos a los modelos de dispositivo

  1. Asocie objetos a los modelos de dispositivo.

    Seleccione el icono de menú de la parte superior izquierda de la página. A continuación, elija Objetos.

    En la página Things (Objetos), seleccione el objeto de sensor de movimiento que creó anteriormente. A continuación, elija Associate with device (Asociar con dispositivo).

  2. En la página Select device model (Seleccionar modelo de dispositivo), elija HCSR501MotionSensor. Elija Associate. Este paso asocia al objeto del sensor de movimiento HCSR501MotionSensor en el registro con el modelo de dispositivo de sensor de movimiento en su flujo. El dispositivo HCSR501MotionSensor implementa la capacidad del modelo de dispositivo MotionSensor (Sensor de movimiento).

  3. Una vez que vuelva a la página Select device model (Seleccionar modelo de dispositivo), actualice la página para verificar que el objeto del sensor de movimiento se asocie al dispositivo HCSR501MotionSensor. Repita los dos pasos anteriores para los dispositivos RaspberryPiCameraRkgnExample y RaspberryPiScreen.

Crear e implementar la configuración de flujo

  1. Cree la configuración de flujo.

    Seleccione el icono de menú de la parte superior izquierda de la página y, a continuación, seleccione Flows (Flujos) para volver a la página Flows (Flujos). En la página Flows (Flujos), active la casilla situada junto al flujo que acaba de crear y, a continuación, elija Create flow configuration (Crear configuración de flujo).

  2. Asigne un nombre a la configuración de flujo.

    En la página Describe flow configuration (Describir la configuración de flujo) y, a continuación, seleccione su flujo e introduzca un nombre de configuración de flujo. El nombre de configuración de flujo no puede contener espacios. Elija Greengrass y, a continuación, Next (Siguiente).

  3. Configure el destino.

    En la páginaConfigurar la página de destino, introduzca el nombre de su bucket de Amazon S3 y elAWS IoT Greengrassal que suAWS IoT Greengrassel dispositivo de núcleo pertenece. Los buckets de Amazon S3 son únicos globalmente, por lo que el nombre de su bucket será diferente del que aparece en la siguiente captura de pantalla. Elija Next (Siguiente).

  4. Seleccione objetos para su implementación.

    La página Map Things (Asignar objetos) proporciona una interfaz para seleccionar los objetos específicos que se van a incluir en la implementación. Los menús situados bajo cada modelo de dispositivo de la implementación contienen todos los objetos asociados con el modelo de dispositivo. Como acaba de empezar, los menús de cada modelo de dispositivo de esta página incluirán un único objeto (el que ha asociado a cada dispositivo).

    En la página Map Things (Asignar objetos), para motionSensor (Sensor de movimiento), seleccione el objeto de sensor de movimiento que creó anteriormente. Seleccione los objetos de cámara y pantalla para los modelos de dispositivo Camera (Cámara) y Screen (Pantalla). Elija Next (Siguiente).

  5. Vea el desencadenador.

    En la página Define trigger (Definir desencadenador), el GraphQL que define el desencadenador del evento de movimiento del flujo aparece en el editor. Cuando el sensor de movimiento detecta movimiento, la función ThingsGraph.startFlow inicia el flujo. No tiene que editar este código.

    Elija Review.

  6. Revise y cree.

    En la página Review and create (Revisar y crear), revise la información introducida para su configuración de flujo. Seleccione Create (Crear).

  7. Implemente.

    Cuando aparezca el mensaje Flow configuration created (Configuración de flujo creada), elija Deploy now (Implementar ahora).

    Actualice la página Deployments (Implementaciones) para verificar que el flujo se ha implementado. Después de una implementación correcta, la página Deployments (Implementaciones) muestra Deployed in target (Implementado en destino) en la columna Status (Estado).

Ejecute el flujo.

Como la pantalla no utiliza la información devuelta por el modelo de servicio de Amazon Rekognition, los pasos para ejecutar este flujo son los mismos que los deCreación de un flujo con dispositivos.

Eliminar el flujo y su configuración (opcional)

Para obtener instrucciones sobre cómo anular la implementación de una configuración de flujo y eliminar tanto la configuración como el flujo que ha creado, consulte Eliminación de configuraciones de flujo y Eliminación de sistemas, flujos y espacios de nombres en Administración del ciclo de vida de entidades, flujos, sistemas e implementaciones de AWS IoT Things Graph.