Le concept de l'IoT (Internet des objets) fait depuis longtemps partie du vocabulaire des informaticiens. Bien que je n'aie pas trouvé un tel hub, mais j'espère qu'il sera bientôt corrigé :)
Cependant, de nombreuses personnes confondent toujours l'architecture IoT avec l'architecture d'automatisation, où la tâche principale est d'obtenir des informations des capteurs, et sur leur base, les mécanismes exécutifs sont contrôlés.

L'architecture informatique comprend deux choses apparemment incompatibles: d'une part, il s'agit d'un grand nombre de périphériques avec une faible puissance de calcul, une faible consommation d'énergie, une grande vitesse de réaction aux événements, et d'autre part, des serveurs cloud avec une puissance de calcul élevée pour le traitement de grands tableau de données, son stockage et sa classification, souvent avec des éléments d'intelligence artificielle et d'analyse. Ces deux mondes utilisent des principes de construction et d'architecture interne complètement différents. Ils semblent incompatibles et aujourd'hui, sur le marché du travail, peu de spécialistes connaissent également les solutions embarquées et cloud. C'est une sorte de «Full Stack». Mais dans cette connaissance réside la puissance qui unit à première vue deux technologies totalement indépendantes. De leur intégration, nous obtenons un effet synergique incroyable. C'est comme l'union d'un homme et d'une femme - grossière et forte, raffinée et faible. Dans cet article, je vais essayer de décrire l'architecture de base de l'IoT, en considérant l'application «en général».
La figure ci-dessous montre l'architecture générale de la solution IoT. Il est très prévisible que tout commence par des capteurs. De plus, plus le capteur est adapté à sa tâche, plus le système sera efficace. Il s'agit d'une sorte de «pierre angulaire» du système. Il est important de noter que le capteur détecte un changement dans l'environnement, pas son état statique. Les capteurs sont divisés en actifs - émettant les signaux eux-mêmes et recevant la réflexion; et passif - travaillant uniquement à la réception. Naturellement, ces derniers bénéficient significativement en termes de consommation d'énergie. La plupart des capteurs sont basés sur la réception des ondes - son, ultrasons, lumière de différentes plages, thermique. Cependant, il existe une catégorie de capteurs basée sur des changements dans leurs caractéristiques physiques, telles que l'inductance, la capacité, la pression. De bons résultats sont obtenus à partir d'une combinaison de plusieurs capteurs, tels qu'un détecteur PIR et un capteur capacitif pour détecter le mouvement.

Dans tous les cas, le capteur génère un signal analogique, qui doit être converti en un chiffre pour un traitement ultérieur, ce que fait le convertisseur AtoD. Après avoir reçu des informations numériques, elles doivent être traitées par le processeur local du périphérique. Sa tâche principale est de mettre une étiquette des informations reçues ou simplement de les classer. Les balises peuvent être simples, comme par exemple - il y a du mouvement, et plus complexes - mouvement + vitesse. Parfois, des balises multidimensionnelles sont nécessaires - Mouvement, Machine. Plus l'étiquette est complexe, plus la puissance du processeur périphérique est naturellement élevée et la consommation électrique correspondante. D'un autre côté, plus l'étiquette est informative, moins la quantité requise d'informations transmises au cloud et la bande passante correspondante sont moins importantes, et la vitesse de réaction à l'événement augmente également. Bien sûr, toutes les balises ont une étiquette d'horodatage.
Le lien suivant peut être à la fois dans le cloud et à la périphérie, et parfois dans les deux parties. Le commutateur redirige les informations reçues vers divers objets, en classant les balises. Ces objets peuvent être des serveurs, des files d'attente, lambda ou simplement du stockage. Jusqu'à présent, le travail a été effectué avec des informations provenant d'un périphérique spécifique et n'est en fait pas différent du travail des systèmes de contrôle automatisés. Cependant, au niveau suivant - l'intégration, une différence qualitative commence. Les informations provenant de divers périphériques sont résumées par le même type de balises. De plus, les types de périphériques eux-mêmes peuvent même être différents. Il est important que les balises tombent en un seul point responsable de la réception de l'événement correspondant - la balise.
De plus amples informations sur tous les objets totalisant les balises sont systématisées par le bloc analytique. Il se compose de la logique de base ou, pour ainsi dire, du cerveau du système. Il y a l'IA, l'apprentissage automatique, etc. Le résultat du travail du bloc analytique est transmis au bloc Présentation pour être affiché à l'utilisateur. Cela peut ressembler à l'envoi d'un message à un appareil mobile, à un planning sur un WEB ou autre.
Étant donné que le système IoT est distribué et connecté par un canal de communication peu fiable, il est nécessaire de disposer de mécanismes garantissant la fourniture d'informations. Dans le cas où il n'est pas possible de transférer des informations du périphérique vers le cloud, des tentatives de transmission répétées sont effectuées. La même chose devrait se produire dans l'autre sens. À ces fins, une unité de présentation virtuelle du périphérique est introduite dans laquelle sont enregistrées les informations à transmettre au périphérique ou son nouvel état. Il s'agit souvent d'un simple fichier texte, mais il peut exister un modèle de représentation plus précis. Il est à noter que les modifications apportées au module Virtual View peuvent être initialisées à partir de divers modules du circuit d'entrée, comme indiqué sur la figure.
Après avoir analysé le schéma fonctionnel de l'architecture IoT, nous pouvons considérer son schéma logique

Ainsi, tout recommence avec des capteurs qui enregistrent l'évolution de l'environnement au fil du temps. Le module de balisage suivant effectue la segmentation initiale pour certains événements système. En principe, le développement de l'architecture de l'application IoT devrait commencer par une liste de ces événements. La sommation des balises est effectuée selon un groupe de périphériques avec le même type de balises. Le module d'intégration est conçu pour prendre des décisions sur l'approximation (prédiction des événements ultérieurs) ou la détermination (identifier une situation à partir d'une variété d'options). Ces informations servent comme une sorte de coefficient clé pour le module du modèle virtuel du périphérique, dans lequel les informations réelles du périphérique lui-même sont converties sur la base du coefficient clé dans le nouvel état du périphérique.
Maintenant, un peu sur ce qui n'est pas tombé dans le schéma d'architecture décrit ci-dessus, mais certainement ce que vous devez garder à l'esprit:
- Stockage d'informations . Le stockage des informations doit avoir lieu à la fois au niveau du périphérique et dans le cloud. Le périphérique enregistre son programme, ses paramètres, son état et stocke temporairement les informations des capteurs jusqu'à ce qu'il soit garanti de les transférer dans le cloud. Le stockage d'informations dans le cloud est évident et ne nécessite aucune explication, du moins dans le cadre de cet article.
- Sécurité / autorisation . Chaque périphérique doit être autorisé dans le système et individuellement. Il s'agit d'un sujet distinct qui dépasse également le cadre de cet article.
- Files d'attente et pipeline . Une catégorie distincte d'architecture est le moyen de transmettre des informations à travers le système, à la fois à l'intérieur des périphériques et dans le cloud et entre eux.
J'espère que cette courte critique vous sera utile. À l'avenir, je prévois de continuer les articles et de créer un cycle de surnoms dédié aux solutions IoT. Je serais reconnaissant à tous pour les commentaires et les sujets qui vous intéressent.