The Internet of Things on AWS

dp

Harshal Yeole

11 de Junio 2018

IoT, ¿Qué es IoT?

IoT es el Internet of Things (Internet de Cosas). Hemos escuchado sobre IoT pero ¿Alguien ha oido hablar de Kevin Ashton? Bueno, permítame presentarle al hombre que acuñó el término “Internet of Things.” Es un pionero en tecnología británica. Bueno en términos simples, el Internet de cosas es la red de cosas usuales que a diario nos rodean, escuchar y reaccionar a eso, como lo hacemos los humanos. El Internet de cosas básicamente consiste en lo siguiente:

  • Internet
  • Cosas

El Internet no es más que la red para conectar cosas entre ellos. Las cosas pueden ser cualquier física) vehículos, electrodomésticos, dispositivos y otras integradas con sensores, electrónica, software y actuadores con fines de conectividad. Por lo tanto, en este blog, les guiaré a través del servicio de IoT proporcionado por AWS. Entonces AWS (Amazon Web Services) es uno de los proveedores de servicios más grandes y fuertes en el mundo. AWS proporciona muchos servicios. Entre los cuales, buscaremos AWS-IoT. Como AWS pregunta, “Si conociera el estado de todo en el mundo y pudiera razonar sobre los datos: ¿qué problemas resolvería?” La respuesta a esta pregunta es “Cualquier cosa y Todo.” Déjeme aclarar sus pensamientos si conoce el estado de un dispositivo (cosa física), dice la puerta principal de una casa. Si está cerrada, puede utilizar esta información y mostrarla en una aplicación el cual es el teléfono del usuario que está fuera de casa y no sería genial si ese usuario sabe si la puerta se abre abruptamente solo con una notificación en su teléfono. Él sabe que algo está mal y puede llamar a la policía. Esto es solo un ejemplo. Podemos lograr mucho más, dado la información adecuada. pngbase64ec5d641f71f23bff  En IoT, todo depende del estado. Todo lo que hace IoT es recopilar los datos y enviarlos al usuario. Sí, tenemos que configurar qué se debe enviar y qué datos se deben recopilar de las cosas. IoT funciona en el modelo publicar-suscribir.

Beneficios de AWS- Internet de cosas : :

  • Conéctese y administre sus dispositivos.
  • Conexiones y datos seguros del dispositivo.
  • Procesar y actuar según los datos del dispositivo.

Utilizaremos el servicio AWS IoT Core para conectarnos al dispositivo e interactuar con las aplicaciones en el cloud y otros dispositivos. AWS IoT admite miles de millones de dispositivos y trillones de mensajes. Puede procesar y enrutar estos mensajes a los puntos finales de AWS y a otros dispositivos de forma segura y confiable con la ayuda de MQTT. (MQTT es un protocolo de mensajería basado en suscripción-publicación estándar ISO). 0  Nota: Todos los ejemplos están en Node.js Pasos:

1. Importe el SDK de IoT.

const AWS = require(‘aws-sdk’); const awsIot = require(‘aws-iot-device-sdk’); const iot: new AWS.Iot({ apiVersion: “2015-05-28” }); const iotData: new AWS.IotData({ endpoint: yourIoTHost, apiVersion: yourIoTApiVersion });

2. Cree la cosa con el nombre único.

/** * thingName: Nombre de la cosa única */ iot.createThing({ thingName: <YourThingName> }, (err, thing) => { if (err) { callback(err, null); } else { callback(null, thing); } });

pngbase642fc264bedc0c2578-1  Las cosas creadas se pueden administrar en la pestaña Administrar >> Cosas en la consola de IoT .

3. Cree un certificado y establézcalo como activo..

/** * setAsActive: Un indicador booleano para especificar si el certificado está activo. */ iot.createKeysAndCertificate({ setAsActive: true }, (err, certificate) => { if (err) { callback(err, null); } else { callback(null, certificate); } });

4. Cree la política para las cosas recién creadas.

/** * policyName: Nombre de política. * policyDocument: Datos de formato JSON que especifican detalles sobre la política. */ iot.createPolicy({ policyName: <YourPolicyName>, policyDocument: <YourPolicyDocument> }, (err, policy) => { if (err) { callback(err, null); } else { callback(null, policy); } });

Además de la política, puede agregar restricciones de publicación y suscribirse a la cosa. Al definir el documento de política, puede especificar los recursos que interactuaron con el objeto utilizando la clave “Resource” de “Statement” del documento de política. Está configurado a “*” para permitir a todos.

5. Adjunte la política con sus propios certificados.

/** * policyName: Nombre de la política a adjuntar. * target: Objetivo donde se adjunta la política. */ iot.attachPolicy({ policyName: <PolicyToAttach>, target: <YourTargetPolicy> } , (err, attachPolicyData) => { if (err) { callback(err, null); } else { callback(null, ”); } });

6. Adjunte el principio de la cosa con sus propios certificados.

/** * thingName: Nombre de la cosa. * principal: certificado ARN. */ iot.attachThingPrincipal({ thingName:<YourThingName>, principal: <YourPrincipal> }, (err, attachThingData) => { if (err) { callback(err, null); } else { callback(null, ”); } });

Publicar un mensaje para la cosa : AWS nos proporciona el dispositivo físico configurable para publicar mensajes en el objeto mediante el botón AWS IoT.. O bien, podemos hacer esto usando el código como se muestra a continuación:

/** * topic: El nombre de asunto MQTT. (thingName) * qos: The Quality of Service (QoS) level. * payload: La información de estado, en formato JSON. (message) */ iotData.publish({ topic: <ThingName>, payload: JSON.stringify({ message:<YourMessage> }), qos: 0 }, (err, data) => { if (err) { callback(err, null); } else { callback(null, “”); } });

Suscríbase a la cosa:

Como uno puede publicar los datos en la cosa, en consecuencia uno puede escuchar datos usando el método de suscripción de AWS-IoT.

var awsIot = require(‘aws-iot-device-sdk’);

var myThing = awsIot.device({ keyPath: <YourPrivateKeyPath>, certPath: <YourCertificatePath>, caPath: <YourRootCACertificatePath>, clientId: <YourUniqueClientIdentifier>, host: <YourCustomEndpoint> });

myThing .on(‘connect’, function() { console.log(‘connected’); myThing.subscribe(‘topic_to_subscribe’); });

myThing .on(‘message’, function(topic, payload) { console.log(‘message’, topic, payload.toString()); });

Lambda Function: La función Lambda es otro servicio sólido proporcionado por AWS.Básicamente, esta es una función que se puede invocar en la regla y puede realizar cualquiera de los conjuntos de acciones dados. A menudo se denomina implementación sin Servidor.. Las funciones de Lambda se basan en reglas. Por lo tanto, debe crear reglas para invocar la función lambda y debe crear una función lambda para realizar la acción específica que se realizará en la invocación de la función. Para crear la función lambda, debe crear una función en AWS utilizando el rol IAM.. Otro ejemplo para la función lambda sería, que pueda pasar el mensaje a una cosa la cual invocaría una función lambda y la cual tendría un disparador de notificación de inserción como una acción. Entonces, si recibes un mensaje sobre tu cosa, también lo recibirías como una notificación en tu teléfono. pngbase64e7b44d870c323dcd  La lista de acciones soportadas por la función Lambda se puede ver aquí.. Al crear reglas en AWS IoT, definimos dos cosas:

  • Criterios de regla
  • Acción a realizar cuando los criterios coinciden.

Aquí está el ejemplo de una regla: { “rule”: { “sql”: “SELECT * FROM ‘thingName'”, “ruleDisabled”: false, “actions”: [ { “lambda”: { “functionArn”: “ARNofYourFunction” } } ] } } Concluyendo que AWS ofrece muchas opciones para IoT. Ejemplo de regla JSON para todas las acciones se puede encontrar aquí.. jpegbase6483b508ab721735a3

Además de lo anterior, AWS proporciona los siguientes servicios también:

Request a quote