C++ 4 min de lecture

En C++, le SDK Macchina.io Edge est un excellent choix pour les applications IoT

Share this article
En C++, le SDK Macchina.io Edge est un excellent choix pour les applications IoT

L’Internet des objets (IoT) désigne le réseau d’objets physiques — appareils, véhicules, bâtiments et autres éléments — dotés de capteurs, de logiciels et d’autres technologies pour se connecter et échanger des données avec d’autres appareils et systèmes via Internet. L’IoT englobe un large éventail d’applications, des gadgets grand public aux systèmes industriels, transformant notre façon d’interagir avec le monde physique.

Les composants clés de l’IoT

Appareils et capteurs

  • Capteurs: Captent des données de l’environnement, comme la température, l’humidité, la lumière, le mouvement, et plus encore.
  • Actionneurs: Exécutent des actions sur commande, comme allumer des lumières, ouvrir des portes ou régler des thermostats.
  • Systèmes embarqués: Appareils dotés de capacités de calcul intégrées, comme les thermostats intelligents, les objets connectés portables et les contrôleurs industriels.

Connectivité

  • Réseaux: Les appareils IoT communiquent via divers réseaux, dont le Wi-Fi, le Bluetooth, Zigbee, le cellulaire (4G/5G), LoRaWAN, et plus encore.
  • Protocoles: Des protocoles standard comme MQTT, HTTP/HTTPS, CoAP et WebSockets permettent l’échange de données entre appareils et serveurs.

Traitement des données

  • Edge computing: Traitement des données à la source ou à proximité (sur l’appareil) pour réduire la latence et l’usage de bande passante.
  • Cloud computing: Traitement et stockage centralisés des données, impliquant souvent de l’analytique à grande échelle et du machine learning.

Sécurité

Mesures pour protéger les données et les appareils contre les accès non autorisés et les cybermenaces.

Interface utilisateur

  • Applications: Applications mobiles et web permettant aux utilisateurs d’interagir avec les appareils IoT et de les contrôler.
  • Tableaux de bord: Interfaces visuelles pour surveiller et gérer les appareils connectés et leurs données.

Cas d’usage :

  • La domotique: Contrôler et automatiser les appareils de la maison.
  • L’IoT industriel: Surveiller et contrôler les machines industrielles.
  • Les villes intelligentes: Gérer et contrôler les infrastructures urbaines intelligentes.
  • Le suivi de la santé: Collecter et traiter des données de santé issues d’appareils médicaux.

En C++, de nombreuses bibliothèques peuvent vous aider à implémenter une application IoT, mais la plupart opèrent à un niveau relativement bas. Pour un SDK haut niveau, Macchina.io est un excellent choix, surtout si vous recherchez un framework robuste qui simplifie la création d’applications IoT.

Comme la bibliothèque C++ POCO, Macchina.io EDGE est bien conçu et construit avec une architecture modulaire et extensible.

Voici quelques-unes des caractéristiques clés de la conception de Macchina.io :

  1. Modularité: Macchina.io est hautement modulaire, permettant aux développeurs de n’utiliser que les composants dont ils ont besoin.
  2. C++ et JavaScript: Supporte le développement en C++ comme en JavaScript, offrant de la flexibilité aux développeurs.
  3. Gestion des appareils: Inclut des outils pour la gestion et la communication des appareils.
  4. Connectivité: Supporte de multiples protocoles, dont HTTP, MQTT, WebSockets et CoAP, ce qui le rend polyvalent pour divers cas d’usage IoT.
  5. Traitement des données: Fournit des composants pour l’acquisition, le stockage et le traitement des données.
  6. Automatisation: Inclut un moteur d’automatisation permettant de créer des tâches automatisées basées sur des règles.
  7. Sécurité: Met l’accent sur la sécurité avec des composants pour le chiffrement, l’authentification et la communication sécurisée.

Les avantages de Macchina.io EDGE

  1. Réduit la complexité: Fournit des API de haut niveau en JavaScript et en C++, simplifiant le développement d’applications IoT.
  2. Concentration sur le cœur de métier: Fait gagner du temps en prenant en charge l’infrastructure et le code bas niveau, permettant aux développeurs de se concentrer sur les fonctionnalités uniques de leur produit.
  3. Indépendance matérielle: Permet d’écrire des applications indépendantes du matériel, facilitant les changements de plateforme.
  4. Hautes performances et faible empreinte: Idéal pour les applications exigeantes et les appareils économiques.
  5. Modernise le code legacy: Facilite la pérennisation du code C++ et C existant.

Comment démarrer avec Macchina.io Edge

Si vous souhaitez explorer les capacités de Macchina.io Edge, vous devez d’abord créer un bundle. En effet, Macchina.io EDGE est entièrement implémenté dans une architecture modulaire à base de plugins, utilisant un framework C++ nommé Open Service Platform (OSP). Ainsi, pratiquement tout le code qui s’exécute dans Macchina.io EDGE provient d’un plugin, ou bundle, comme on l’appelle dans OSP et Macchina.io EDGE.

Un bundle est essentiellement un répertoire avec une structure spécifique ou, plus communément, une archive ZIP (avec l’extension .bndl) contenant cette hiérarchie de répertoires. Un bundle contient des métadonnées obligatoires (le fameux manifest), ainsi que des fichiers de configuration, des bibliothèques dynamiques et d’autres ressources comme des fichiers HTML, des images ou des feuilles de style.

Généralement, il existe deux façons d’exécuter du code dans un bundle. Premièrement, un bundle peut fournir une classe BundleActivator, qui doit être une sous-classe de Poco::OSP::BundleActivator. En plus d’implémenter la classe, celle-ci doit aussi être déclarée dans les métadonnées du bundle, le fameux manifest du bundle.

Deuxièmement, un bundle peut aussi implémenter un ou plusieurs points d’extension. Un point d’extension est, d’une manière générale, un point d’ancrage défini par un bundle, auquel un autre bundle peut se greffer.

Voici une documentation détaillée qui vous aidera à créer votre premier bundle.

Pour résumer, Macchina.io EDGE est une boîte à outils logicielle IoT puissante, conçue pour simplifier le développement d’appareils et de passerelles edge. Avec des API de haut niveau en JavaScript et en C++, elle réduit la complexité et permet aux développeurs de se concentrer sur leur cœur de métier. La plateforme offre l’indépendance matérielle, facilitant la migration entre différents systèmes, tout en offrant de hautes performances avec une faible empreinte — idéal pour les applications exigeantes. De plus, elle supporte la modernisation du code legacy, aidant à pérenniser les applications existantes.

Share this article