Que devons-nous construire IoT? Votre IoT sur Amazon en une journée

Pour commencer à gérer les plates-formes IoT (Internet of Things), j'ai été arrêté par le manque d'un appareil IoT compatible avec les protocoles et les méthodes d'accès. Mais quand j'ai réalisé que vous pouvez utiliser un smartphone ordinaire comme appareil, la mise en place d'une chaîne de travail a pris un jour.

Prenez un smartphone qui émule un appareil IoT avec des capteurs de température, d'humidité et de pression et envoyez des lectures à la plateforme Amazon IoT. Sur la plate-forme, nous établirons une règle qui, à la réception des données de notre appareil, appellera un service de notification, qui à son tour enverra un e-mail avec les données reçues.

Un tel système, bien sûr, a peu de valeur pratique, mais il vous permet de comprendre comment tout fonctionne:

image

Pourquoi la plate-forme IoT d'Amazon? Et pourquoi avez-vous besoin de comprendre comment fonctionnent les plateformes IoT?

M2M - IoT - IoE


Il existe de plus en plus d'appareils IoT dans le monde, tant les agences d'analyse que les statistiques mondiales en parlent.

Nous pouvons nous-mêmes voir clairement que de plus en plus de systèmes sont connectés à Internet et sont contrôlés automatiquement ou par des personnes: maisons intelligentes, voitures, appareils portables. Et maintenant, ils ne parlent pas seulement de l'IoT, mais de l'IoE (Internet of Everything), parce que les appareils qui se connectent aux plates-formes sont utilisés non seulement dans les systèmes industriels, mais aussi par les personnes.

Par conséquent, nous devons comprendre les principes de travail nous-mêmes, au moins afin de comprendre comment vous pouvez utiliser efficacement vos appareils ou quelles sont les limites et les nuances de la sécurité.

Pourquoi Amazon?


Amazon crée des services en tenant compte des tendances mondiales et, par conséquent, des systèmes «universels» sont obtenus, dont les principes de base sont utilisés par tous les fabricants. La plate-forme cloud a un avantage encore plus important - c'est la possibilité de déployer le système par vous-même en quelques heures, sans impliquer le service informatique et la sécurité de l'entreprise)

Pourquoi un smartphone et pas un kit de démarrage IoT?


En y regardant de plus près, le smartphone émule bien l'appareil IoT:

  • Il a Linux sur lequel exĂ©cuter des applications;
  • Il existe une connexion mobile Ă  Internet;
  • Ă€ l'aide d'un logiciel, vous pouvez Ă©muler des lectures de capteur.

C'est-à-dire travailler avec un véritable appareil IoT ne sera pas différent de travailler avec un smartphone, sauf pour utiliser un SDK spécifique pour obtenir des lectures de capteur. Toutes les autres communications seront similaires.

Permettez-moi de sauter la section avec les normes, l'analyse et la recherche marketing - à la fin de l'article, je donnerai quelques liens pertinents. J'ai hâte de faire quelque chose d'intéressant)

Plateforme AWS IoT


Amazon trace un schéma assez clair de sa plateforme:

image

Ici, en général, tout est clair:

  • (1) Il existe des appareils qui interagissent avec la plate-forme IoT Ă  l'aide du SDK.
  • (2) Les appareils envoient des messages vĂ©rifiĂ©s par le service d'authentification et d'autorisation.
  • (3) Les messages arrivent Ă  Device Gateway en utilisant diffĂ©rents protocoles, puis vont au gestionnaire de règles (4.1) et sont copiĂ©s (4.2) dans Device Shadows.
  • (4.2) Les ombres de pĂ©riphĂ©rique sont des doubles numĂ©riques qui stockent l'Ă©tat actuel des pĂ©riphĂ©riques qui sont toujours disponibles pour les applications. En revanche, en l'absence de communication avec le pĂ©riphĂ©rique, Device Shadow exĂ©cute les commandes de contrĂ´le des applications et, lors de la reconnexion, synchronise l'Ă©tat actuel avec le pĂ©riphĂ©rique.
  • (4.1) En fonction des donnĂ©es reçues, le gestionnaire de règles effectue des actions prĂ©dĂ©terminĂ©es (5.1), par exemple, enregistre les donnĂ©es dans la base de donnĂ©es, envoie des notifications par SMS ou e-mail, appelle l'API HTTP, envoie des donnĂ©es au système d'analyse, etc.
  • (5.2) Les applications utilisent ces donnĂ©es pour contrĂ´ler et gĂ©rer les appareils Ă  l'aide de l'API AWS (6)
  • Les informations sur tous les appareils sont stockĂ©es sur la plateforme AWS IoT (7).

On commence à comprendre, le schéma est un peu compliqué:

image

Apparaissent:

Travaux - effectuez des actions standard sur les appareils, par exemple, installez des applications, mettez à jour le micrologiciel, redémarrez les appareils, etc.
Les sujets sont l'essence du protocole MQTT. Les messages des appareils IoT sont envoyés à des sujets spécifiques.
Rôles IAM - Utilisateurs AWS pour le compte desquels les règles sont exécutées et qui ont accès aux ressources AWS nécessaires.

Les règles consistent en:

  • Filtre - filtre de messages pour le traitement. DĂ©fini comme une requĂŞte SQL.
  • Action - l'action Ă  effectuer.
  • RĂ´le - un ou plusieurs rĂ´les IAM.

Certificat - téléchargé sur l'appareil IoT, avec leur aide, l'authentification des appareils sur la plateforme AWS se produit. Composé de:

  • Certificat d'appareil X.509
  • ClĂ© privĂ©e
  • Certificat racine AWS

Politique - les politiques sont attachées aux certificats qui déterminent les actions que l'appareil peut effectuer. Les politiques autorisent les appareils.
Détails des services AWS qui reçoivent des informations de la plateforme IoT: service de notification Analytics, DB, SNS.

Nous connectons l'appareil


Je ne donnerai pas entièrement des instructions sur la connexion de l'appareil IoT à la plate-forme Amazon: Mise en route avec AWS IoT . Mais pour comprendre la portée de la tâche, je vais énumérer les étapes qui doivent être prises pour faire fonctionner le système:

  • CrĂ©er un appareil my-iot-dev sur la plateforme
  • Nous obtenons le certificat d'appareil X.509, clĂ© privĂ©e, clĂ© publique
  • Obtenir le certificat racine de la plateforme AWS (Root CA pour AWS IoT)
  • CrĂ©ez la stratĂ©gie my-iot-dev-policy. Pour nos dĂ©mos, nous autorisons toutes les actions: iot: *

image

  • Attacher une stratĂ©gie Ă  un certificat
  • Attachez le certificat Ă  l'appareil
  • En consĂ©quence, nous avons reçu un certificat avec l'appareil et la politique:

image

  • CrĂ©ez une règle. La règle appellera le service de notification AWS SNS (Simple Notification Service) pour envoyer un e-mail. Par consĂ©quent, vous devez d'abord crĂ©er une rubrique dans AWS SNS (my-iot-dev-sns-topic):

image

  • Maintenant, nous configurons ce que fera exactement cette rubrique lors de la rĂ©ception des donnĂ©es. Pour ce faire, crĂ©ez un abonnement Ă  la rubrique (Abonnez-vous Ă  la rubrique Amazon SNS), entrez l'adresse e-mail de destination, attendez la lettre de vĂ©rification, confirmez l'e-mail.

image

Créez maintenant la règle elle-même (my_iot_dev_rule), qui appellera le sujet créé:

  • Filtre: SELECT * FROM 'my / dev-topic' - le filtre est dĂ©clenchĂ© lorsqu'un message du sujet nommĂ© 'my / dev-topic' est reçu;
  • Action: envoi d'un message au sujet SNS crĂ©Ă© prĂ©cĂ©demment «arn: aws: sns: eu-central-1: 1219xxx34064: my-iot-dev-sns-topic»;
  • RĂ´le IAM: crĂ©ez le rĂ´le my-dev-role avec accès aux rubriques SNS.

image

  • Toutes les entitĂ©s logiques de notre appareil sont crĂ©Ă©es. Vous pouvez maintenant tester que le schĂ©ma fonctionne thĂ©oriquement. Pour ce faire, AWS dispose d'un outil de test qui vous permet d'envoyer et de recevoir des messages similaires Ă  des appareils rĂ©els. Nous le lançons, souscrivons au sujet (mon / dev-topic) et envoyons "Hello World!" message:

image

  • Nous vĂ©rifions que le message «Bonjour tout le monde!» Est arrivĂ© et conclure que le circuit fonctionne.

Configuration du smartphone


Le moment est venu de configurer l'appareil IoT, qui sera mon smartphone. Pour ce faire, utilisez l'instruction JavaScript AWS SDK . Pour transformer un smartphone en appareil IoT, vous avez besoin de:

  • Copier sur l'appareil: clĂ© privĂ©e, certificats X.509 et «Root CA for AWS»;
  • Installez Node.js et le gestionnaire de packages npm;
  • Installez AWS SDK;
  • Installez et exĂ©cutez le programme de test.

Dans notre cas, tout sera un peu plus facile, car J'ai mis les certificats, le kit SDK AWS et le programme de test sur GitHub et vous pouvez simplement cloner le référentiel IoT-Sensors . Si quelqu'un veut utiliser mon programme de test, il devra alors placer ses certificats dans le répertoire / IoT / certs et écrire dans le fichier / server / src / services / IoT-AOI-Server le point final de l'API Rest pour le périphérique:

device = deviceModule({ … host: 'a2lqo1xxx4zydi-ats.iot.eu-central-1.amazonaws.com', … }) 

Le point de terminaison de l'API Rest est extrait des paramètres de l'appareil:

image

Si vous souhaitez essayer quelque chose de standard, vous pouvez utiliser les programmes de test du kit AWS SDK.

Android est le même Linux, mais avec ses limites, donc pour exécuter des applications JS, vous devez installer un terminal spécial, par exemple, Termux .

Pour le développement initial de Termux, il y a un certain nombre d'articles, par exemple: Lancement d'une application NodeJS sur Android . Mais dans l'ensemble, après l'installation de Termux, vous devez exécuter seulement quelques commandes magiques:

 git clone https://github.com/AlexeySushkov/IoT-Sensors.git 

Installation du serveur


 cd ~/IoT-Sensors/server npm install npm start 

Si tout s'est bien passé, la ligne apparaîtra dans le terminal:
Le serveur a démarré sur le port: 8081

En direct, cela ressemble Ă  ceci:

image

Installation du client


 cd ~/IoT-Sensors/client npm install npm run serve 

Si tout s'est bien passé, la ligne apparaîtra dans le terminal:
Application en cours d'exécution sur le port: 8080

Ensuite, dans le navigateur du smartphone, entrez: http: // localhost: 8080

Et une application de test apparaîtra à l'écran:

image

Appuyez sur le bouton "INIT DEV". Cela authentifie et autorise le périphérique IoT sur la plateforme AWS IoT. En cas de succès, le statut devient «Init OK».

Ensuite, nous saisissons les valeurs des capteurs de température, d'humidité et de pression, par exemple:
Température: 23
Humidité: 65
Pression: 787

Et appuyez sur le bouton «SEND DATA».

image

Après cela, l'application ajoute un horodatage et envoie les données sous forme de messages MQTT à la rubrique «my / dev-topic». La plateforme IoT reçoit un message et active une règle qui envoie un message au service de notification AWS SNS, qui envoie un e-mail avec les données reçues au format JSON:

 {"time":"Mon, 30 Sep 2019 13:54:52 GMT", "temperature":"23", "humidity":"65", "pressure":"787"} 

Si le message est envoyé avec succès, le statut passe à: «publier OK» et un e-mail est envoyé à l'e-mail:

image

La plate-forme AWS IoT dispose d'un système de surveillance qui affiche le nombre de connexions et de messages provenant des appareils IoT, des statistiques sur les protocoles, les types de messages, etc.:

image

Alors maintenant, tout fonctionne pour de vrai!

Conclusion


Nous avons construit un IoT petit mais réel en utilisant une plateforme Amazon. Toutes les plateformes sont construites sur les mêmes principes, donc si la question se pose de choisir un système IoT, nous serons prêts à poser les questions suivantes. De plus, connaissant les réponses d'Amazon, nous pouvons conclure à la maturité de la plateforme:

Appareils

  • Comment les appareils sont-ils ajoutĂ©s au système?
  • Comment l'authentification et l'autorisation des appareils sont-elles assurĂ©es?
  • Le cryptage des donnĂ©es envoyĂ©es Ă  la plateforme a-t-il lieu?

Plateforme

  • Comment les clĂ©s et certificats sont-ils protĂ©gĂ©s sur la plateforme?
  • Comment les règles sont-elles formĂ©es?
  • Quelles actions les règles peuvent-elles suivre?
  • Comment les appareils sont-ils surveillĂ©s et gĂ©rĂ©s?
  • Y a-t-il des ombres (doubles numĂ©riques) d'appareils sur la plate-forme?
  • Quels rapports et analyses sont disponibles?

L'interaction

  • Quels protocoles sont utilisĂ©s pour connecter des appareils?
  • Comment est l'interaction des applications avec l'appareil?
  • Comment la logique d'interaction est-elle testĂ©e?

Comme promis, je fournirai des liens pertinents vers les normes et les analyses:

Normes IoT


Étonnamment, les géants de la normalisation ( ISO / IEC , IEEE , UIT-T ) se sont désintéressés de l'IoT après 2016. Ils font, bien sûr, quelque chose, mais en quelque sorte sans un clin d'œil). Le NIST a également publié son étude sur les réseaux de «choses» , mais après 2016, rien de plus intéressant.

Les instituts de télécommunications sont plus beaux, ce qui n'est pas surprenant car sans connectivité, l'IoT n'est pas l'IoT. TM-Forum, sous son égide, recueille des cas et des projets d' IoE et d'écosystèmes numériques , ETSI est plus facile et rejoint OneM2M .

Et maintenant, nous arrivons à deux organisations qui ont été formées relativement récemment, mais qui déterminent déjà l'orientation mondiale du développement de l'IoT:

OneM2M

OneM2M est une association d' organisations de normalisation, de sociétés de télécommunications et de fabricants de différents pays. Ils ont des dizaines de documents pertinents dans le domaine public qui réchauffent l'âme avec des modèles architecturaux et des diagrammes fonctionnels .

IIC

IIC (Industrial Internet Consortium) - une organisation de normalisation de l'Internet industriel des objets - ce sont principalement des fabricants de logiciels et d'appareils . Ils publient également leurs architectures de référence. En général, il y a où regarder le monde parfait! )

IoT Analytics


Toutes nos agences d'analyse préférées publient des recherches sur l'IoT, mais elles ne sont pas toutes disponibles gratuitement. À titre d'exemple, je vais vous donner quelques articles pertinents qui démontrent des prévisions optimistes pour le développement de l'IoT:



Ce n'est qu'un début!

Source: https://habr.com/ru/post/fr472216/


All Articles