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:

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:

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é:

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: *

- 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:

- 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):

- 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.

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.

- 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:

- 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:

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:

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: 8080Et une application de test apparaîtra à l'écran:

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».

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:

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.:

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:
OneM2MOneM2M 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 .
IICIIC (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!