Para comenzar a lidiar con las plataformas IoT (Internet de las cosas), me detuvo la falta de un dispositivo IoT que fuera compatible con los protocolos y métodos de acceso. Pero cuando me di cuenta de que puedes usar un teléfono inteligente común como dispositivo, la implementación de una cadena de trabajo tomó un día.
Tome un teléfono inteligente que emule un dispositivo IoT con sensores de temperatura, humedad y presión y envíe lecturas a la plataforma Amazon IoT. En la plataforma, estableceremos una regla que al recibir los datos de nuestro dispositivo llamará a un servicio de notificación, que a su vez enviará un correo electrónico con los datos recibidos.
Tal sistema, por supuesto, tiene poco valor práctico, pero le permite comprender cómo funciona todo:

¿Por qué la plataforma IoT de Amazon? ¿Y por qué necesita comprender cómo funcionan las plataformas IoT?
M2M - IoT - IoE
Cada vez hay más dispositivos de IoT en el mundo, tanto las agencias analíticas como las estadísticas mundiales hablan de esto.
Nosotros mismos podemos ver claramente que cada vez más sistemas están conectados a Internet y son controlados automáticamente o por personas: hogares inteligentes, automóviles, dispositivos portátiles. Y ahora están hablando no solo de IoT, sino también de IoE (Internet of Everything), porque Los dispositivos que se conectan a plataformas se utilizan no solo en sistemas industriales, sino también por personas.
Por lo tanto, debemos comprender los principios del trabajo nosotros mismos, al menos para comprender cómo puede usar sus dispositivos de manera efectiva o cuáles son las limitaciones y los matices de la seguridad.
¿Por qué amazon?
Amazon crea servicios teniendo en cuenta las tendencias mundiales y, como resultado, se obtienen sistemas "universales", cuyos principios básicos son utilizados por todos los fabricantes. La plataforma en la nube tiene una ventaja aún mayor: esta es la capacidad de implementar el sistema por su cuenta en un par de horas, sin involucrar el servicio de TI corporativo y la seguridad)
¿Por qué un teléfono inteligente y no un kit de inicio de IoT?
En una inspección más cercana, el teléfono inteligente emula bien el dispositivo IoT:
- Tiene Linux para ejecutar aplicaciones;
- Hay una conexión móvil a Internet;
- Con el software, puede emular las lecturas del sensor.
Es decir trabajar con un dispositivo IoT real no será diferente de trabajar con un teléfono inteligente, a excepción de usar un SDK específico para obtener lecturas del sensor. Todas las demás comunicaciones serán similares.
Permítanme omitir la sección con estándares, análisis e investigación de mercado; al final del artículo le daré algunos enlaces relevantes. Estoy ansioso por hacer algo interesante)
Plataforma AWS IoT
Amazon dibuja un diagrama bastante claro de su plataforma:

Aquí, en general, todo está claro:
- (1) Existen dispositivos que interactúan con la plataforma IoT utilizando el SDK.
- (2) Los dispositivos envían mensajes que son verificados por el servicio de autenticación y autorización.
- (3) Los mensajes llegan a Device Gateway usando diferentes protocolos y luego van al controlador de reglas (4.1) y se copian (4.2) a Device Shadows.
- (4.2) Las sombras de dispositivos son dobles digitales que almacenan el estado actual de los dispositivos que siempre están disponibles para las aplicaciones. Por otro lado, en ausencia de comunicación con el dispositivo, Device Shadow ejecuta comandos de control desde las aplicaciones y, al reconectarse, sincroniza el estado actual con el dispositivo.
- (4.1) Dependiendo de los datos recibidos, el controlador de reglas realiza acciones predeterminadas (5.1), por ejemplo, guarda datos en DB, envía notificaciones por SMS o correo electrónico, llama a la API HTTP, envía datos al sistema de análisis, etc.
- (5.2) Las aplicaciones usan estos datos para controlar y administrar dispositivos usando la API de AWS (6)
- La información de todos los dispositivos se almacena en la plataforma AWS IoT (7).
Comenzamos a entender, el esquema es un poco complicado:

Aparecer:
Trabajos : realice acciones estándar en dispositivos, por ejemplo, instale aplicaciones, actualice firmware, reinicie dispositivos, etc.
Los temas son la esencia del protocolo MQTT. Los mensajes de los dispositivos IoT se envían a temas específicos.
Roles de IAM : usuarios de AWS en nombre de los cuales se ejecutan las reglas y que tienen acceso a los recursos necesarios de AWS.
Las reglas consisten en:
- Filtro: filtro de mensajes para su procesamiento. Establecer como una consulta SQL.
- Acción: la acción a realizar.
- Rol: uno o más roles de IAM.
Certificado : cargado en el dispositivo IoT, con su ayuda se produce la autenticación de dispositivos en la plataforma AWS. Consiste en:
- Certificado de dispositivo X.509
- Clave privada
- Certificado raíz de AWS
Política : las políticas se adjuntan a los certificados que determinan qué acciones puede realizar el dispositivo. Las políticas autorizan dispositivos.
Detalles de los
servicios de AWS que reciben información de la plataforma IoT: análisis, DB, servicio de notificación SNS.
Conectamos el dispositivo
No daré instrucciones completas sobre cómo conectar el dispositivo IoT a la plataforma Amazon:
Introducción a AWS IoT . Pero para comprender el alcance de la tarea, enumeraré los pasos que deben seguirse para que el esquema funcione:
- Crear un dispositivo my-iot-dev en la plataforma
- Obtenemos el certificado del dispositivo X.509, clave privada, clave pública
- Obtenga el certificado raíz de la plataforma AWS (CA raíz para AWS IoT)
- Cree la política my-iot-dev-policy. Para nuestras demostraciones, permitimos todas las acciones: iot: *

- Adjuntar una política a un certificado
- Adjunte el certificado al dispositivo
- Como resultado, recibimos un certificado con el dispositivo y la política:

- Crea una regla. La regla llamará al servicio de notificación de AWS SNS (Servicio de notificación simple) para enviar un correo electrónico. Por lo tanto, primero debe crear un tema en AWS SNS (my-iot-dev-sns-topic):

- Ahora configuramos qué hará exactamente este tema al recibir datos. Para hacer esto, cree una suscripción al tema (Suscríbase al tema de Amazon SNS), ingrese la dirección de correo electrónico de destino, espere la carta de verificación y confirme el correo electrónico.

Ahora cree la regla misma (my_iot_dev_rule), que llamará al tema creado:
- Filtro: SELECT * FROM 'my / dev-topic': el filtro se activa cuando se recibe cualquier mensaje en el tema llamado 'my / dev-topic';
- Acción: enviar un mensaje al tema de SNS creado anteriormente "arn: aws: sns: eu-central-1: 1219xxx34064: my-iot-dev-sns-topic";
- Rol IAM: cree el rol my-dev-role con acceso a temas de SNS.

- Se crean todas las entidades lógicas para nuestro dispositivo. Ahora puede probar que el esquema funciona teóricamente. Para hacer esto, AWS tiene una herramienta de prueba que le permite enviar y recibir mensajes similares a los dispositivos reales. Lo lanzamos, suscribimos al tema (my / dev-topic) y enviamos "Hello World!" mensaje:

- Verificamos que ha llegado el mensaje "¡Hola Mundo!" y concluir que el circuito funciona.
Configuración de teléfono inteligente
Ha llegado el momento de configurar el dispositivo IoT, que será mi teléfono inteligente. Para hacer esto, use
las instrucciones de AWS SDK JavaScript . Para convertir un teléfono inteligente en un dispositivo IoT, necesita:
- Copiar al dispositivo: clave privada, X.509 y certificados de "CA raíz para AWS";
- Instale Node.js y npm package manager;
- Instalar AWS SDK;
- Instala y ejecuta el programa de prueba.
En nuestro caso, todo será un poco más fácil, porque Puse los certificados, AWS SDK y el programa de prueba en GitHub y puedes clonar
el repositorio IoT-Sensors . Si alguien quiere usar mi programa de prueba, deberá colocar sus certificados en el directorio / IoT / certs y escribir en el archivo / server / src / services / IoT-AOI-Server el punto final de Rest API real para el dispositivo:
device = deviceModule({ … host: 'a2lqo1xxx4zydi-ats.iot.eu-central-1.amazonaws.com', … })
El punto final de Rest API se toma de la configuración del dispositivo:

Si desea probar algo estándar, puede usar los programas de prueba del AWS SDK.
Android es el mismo Linux, pero con sus limitaciones, por lo que para ejecutar aplicaciones JS necesita instalar un terminal especial,
por ejemplo, Termux .
Para el desarrollo inicial de Termux, hay una serie de artículos, por ejemplo:
Iniciar una aplicación NodeJS en Android . Pero en general, después de instalar Termux, solo necesita ejecutar algunos comandos mágicos:
git clone https://github.com/AlexeySushkov/IoT-Sensors.git
Instalación del servidor
cd ~/IoT-Sensors/server npm install npm start
Si todo salió bien, la línea aparecerá en la terminal:
El servidor comenzó en el puerto: 8081
Vive se ve así:

Instalación del cliente
cd ~/IoT-Sensors/client npm install npm run serve
Si todo salió bien, la línea aparecerá en la terminal:
Aplicación ejecutándose en el puerto: 8080
Luego, en el navegador del teléfono inteligente, ingrese:
http: // localhost: 8080Y aparecerá una aplicación de prueba en la pantalla:

Presione el botón "INIT DEV". Esto autentica y autoriza el dispositivo IoT en la plataforma AWS IoT. Si tiene éxito, el estado se convierte en "Init OK".
A continuación, ingresamos los valores de los sensores de temperatura, humedad y presión, por ejemplo:
Temperatura: 23
Humedad: 65
Presión: 787
Y presione el botón "ENVIAR DATOS".

Después de eso, la aplicación agrega una marca de tiempo y envía los datos en forma de mensajes MQTT al tema "my / dev-topic". La plataforma IoT recibe un mensaje y activa una regla que envía un mensaje al servicio de notificación de AWS SNS, que envía un correo electrónico con los datos recibidos en formato JSON:
{"time":"Mon, 30 Sep 2019 13:54:52 GMT", "temperature":"23", "humidity":"65", "pressure":"787"}
Si el mensaje se envía correctamente, el estado cambia a: "publicar OK" y se envía un correo electrónico al correo:

La plataforma AWS IoT tiene un sistema de monitoreo que muestra la cantidad de conexiones y mensajes de dispositivos IoT, estadísticas sobre protocolos, tipos de mensajes, etc.

¡Así que ahora todo funciona de verdad!
Conclusión
Construimos un IoT pequeño pero real usando una plataforma de Amazon. Todas las plataformas se basan en los mismos principios, por lo que si surge la pregunta de elegir un sistema IoT, estaremos listos para hacer las siguientes preguntas. Y además, conociendo las respuestas de Amazon, podemos concluir cuán madura se ofrece la plataforma:
Dispositivos- ¿Cómo se agregan los dispositivos al sistema?
- ¿Cómo se garantiza la autenticación y autorización del dispositivo?
- ¿Se produce el cifrado de los datos enviados a la plataforma?
Plataforma- ¿Cómo se protegen las claves y los certificados en la plataforma?
- ¿Cómo se forman las reglas?
- ¿Qué acciones pueden seguir las reglas?
- ¿Cómo se monitorean y administran los dispositivos?
- ¿Hay sombras (dobles digitales) de dispositivos en la plataforma?
- ¿Qué informes y análisis están disponibles?
Interacción- ¿Qué protocolos se utilizan para conectar dispositivos?
- ¿Cómo es la interacción de las aplicaciones con el dispositivo?
- ¿Cómo se prueba la lógica de interacción?
Según lo prometido, proporcionaré algunos enlaces relevantes a estándares y análisis:
Estándares de IoT
Sorprendentemente, los gigantes de la estandarización (
ISO / IEC ,
IEEE ,
ITU-T ) han perdido interés en IoT después de 2016. Ellos, por supuesto, están haciendo algo, pero de alguna manera sin un brillo). NIST también lanzó su estudio de
Redes de 'Cosas' , pero después de 2016 no hay nada más interesante.
Los institutos de telecomunicaciones se ven mejor, lo cual no es sorprendente ya que sin conectividad, IoT no es IoT. TM-Forum, bajo su paraguas, recopila casos y proyectos de
IoE y Ecosistemas Digitales , ETSI es más fácil y se unió a
OneM2M .
Y ahora llegamos a dos organizaciones que se formaron relativamente recientemente, pero que ya determinan la dirección mundial del desarrollo de IoT:
OneM2MOneM2M es una
asociación de
organizaciones de estandarización, compañías de telecomunicaciones y fabricantes de diferentes países. Tienen docenas de documentos relevantes en el dominio público que calientan el alma con
modelos arquitectónicos y diagramas funcionales .
IICIIC (Industrial Internet Consortium), una organización para estandarizar el Internet industrial de las cosas, estos son principalmente
fabricantes de software y dispositivos . También lanzan sus
arquitecturas de referencia. En general, ¡hay un lugar para mirar el mundo perfecto! )
IoT Analytics
Todas nuestras agencias analíticas favoritas lanzan investigaciones de IoT, pero no todas están disponibles gratuitamente. Como ejemplo, daré algunos artículos relevantes que demuestran pronósticos optimistas para el desarrollo de IoT:
¡Es solo el comienzo!