Huit environnements de développement pour l'internet des objets

Huit environnements de développement pour l'internet des objets Assemblage d'applications, programmation de capteurs, de cartes imprimées ou de nano-ordinateurs... Grâce à ces langages, l'IoT devient possible.

De nombreux environnements de développement (IDE), propriétaires ou open source, sont conçus pour le monde des objets connectés et des applications qui les motorisent. Certains s'adressent aux geeks qui souhaitent programmer eux-mêmes leur carte imprimée ou leur nano-ordinateur. A l'autre bout du spectre, on trouve des plateformes dédiées aux capteurs du monde industriel.

1. Arduino Software, pour les cartes du même nom

Arduino Software est connu pour ses cartes matérielles dont les schémas de conception sont publiés en licence libre. L'éditeur est à l'origine d'un grand nombre de projets privés dans la mouvance du "do it yoursel" et des "makers". Arduino propose aussi un environnement de développement intégré pour écrire du code, le compiler puis l'envoyer vers le microcontrôleur de ses circuits imprimés. Placé lui aussi en open source, cet IDE est disponible à la fois en ligne et sous la forme d'un logiciel pour Mac OS X, Linux ou Windows. Il s'adresse aux débutants mais aussi aux développeurs plus chevronnés. L'outil peut être étendu via des bibliothèques C++. Il est possible aussi de soulever le capot pour manipuler le langage de programmation AVR-C sur lequel il se base.

2. Cayenne, pour les fabricants d'objets communicants

Lancé en octobre 2015 par myDevices, une division de l'éditeur français Avanquest, Cayenne s'adresse aux fabricants d'appareils et intégrateurs systèmes. Son interface vise la simplicité. Taillé pour reconnaître automatiquement les objets connectés et autres capteurs, Cayenne peut leur appliquer des règles par glisser-déposer. L'environnement comprend ainsi une série de "déclencheurs" pour lancer des actions automatiques (activation ou arrêt de l'objet à une heure donnée, envoi d'un e-mail ou d'un SMS d'alerte quand un seuil est dépassé...). Le service est pour l'heure gratuit. Après avoir conclu des partenariats avec Actility, Sigfox et Arduino, myDevices a présenté, en novembre 2016, Cayenne pour LoRa, une solution spécifique à ce réseau bas débit et basse consommation optimisé pour l'IoT.

3. Eclipse IoT, pour les développeurs Java

Émanant de la fondation Eclipse, Eclipse IoT est né en septembre 2014. Il fournit un ensemble de frameworks open source pour assembler des applications ciblant les objets connectés. Parmi eux, l'Open IoT Stack for Java réunit des composants Java et services OSGi qui ciblent la gestion des périphériques IoT. Paho fournit, lui, une implémentation Java du protocole de communication MQTT. Smarthome vise la conception de solutions dédiées à la maison intelligente tandis qu'OM2M est une implémentation de la norme ETSI M2M. Enfin, Eclipse Scada se destine aux systèmes de supervision du monde industriel. Très active, la communauté Eclipse IoT organise régulièrement des meetup (les Eclipse IoT Day), notamment en France.

4. Kinoma, la programmation en JavaScript

Fondé en 2002 par deux anciens d'Apple, Kinoma a rejoint le fabricant de semi-conducteurs Marvell en 2011. Sa plateforme, qui s'adressait initialement aux terminaux Palm puis Android, réunit aujourd'hui un ensemble d'outils pour prototyper des applications orientées IoT en JavaScript. Elle comprend un framework applicatif (KinomaJS), un environnement de développement sous Eclipse (Kinoma Studio) et un éditeur/débogueur (Kinoma Code). En parallèle, Marvell, qui équipe en puces les tablettes Samsung ou les TV connectées de Lenovo, a développé une gamme de matériels nativement programmables avec Kinoma. On y retrouve par exemple un microcontrôleur Wi-Fi auquel on peut ajouter des capteurs, ou encore des lumières led.

5. Losant, pour les déploiements de masse

Losant est une plateforme de développement ciblant les déploiements à grande échelle pouvant représenter jusqu'à plusieurs millions d'objets connectés. Solution tout-en-un, elle fournit des fonctionnalités de collecte, d'agrégation et de visualisation de données issues de capteurs. Pour se connecter aux objets, elle s'appuie sur des protocoles de communication comme Rest et MQTT. Losant propose aussi un éditeur de workflow. Via un environnement graphique, l'utilisateur pourra programmer par glisser-déposer des interactions entre objets ou l'envoi d'alertes par SMS en fonction d'événements. La solution est gratuite jusqu'à dix appareils connectés. 

6. Node-RED, pour les geeks

Créé par IBM puis placé sous licence libre fin 2013, Node-RED est un langage de programmation graphique qui permet de relier des objets connectés à des services web ou des API. Pas besoin de code. A partir de nœuds, l'utilisateur dessine la relation avec entre objets et services, puis visualise les entrées et sorties des traitements. Ecrit en Node.js, Node-RED est disponible sous Windows, Mac OS, Linux et Raspian. L'outil se destine aux geeks cherchant à programmer eux-mêmes leurs matériels de type Raspberry Pi. On trouve sur le web quantité de tutoriels pour concevoir soi-même via Node-RED un détecteur de présence, automatiser la fermeture de volets ou connecter un réfrigérateur. Il existe d'autres solutions comparables dans leur approche, notamment ThingBox.

7. Platform.IO, la plateforme agnostique

Lancé en 2014, PlatformIO se présente sous la forme d'un framework open source de développement multiplateforme. Ecrit en Python, il prend en charge d'autres IDE comme Eclipse, CLion, Emacs ou NetBeans. PlatformIO fonctionne sous différents systèmes d'exploitation et supporte plus de 350 cartes embarquées - comme celles d'Arduino et ARM. Tout au long de la configuration d'un projet, PlatformIO laisse ainsi la possibilité de choisir un IDE, l'OS d'exécution puis la carte matérielle qui embarquera le code. Un développeur pourra ainsi commencer à coder sur son PC et finir sur un nano-ordinateur de type Raspberry Pi, BeagleBone ou CubieBoard.

8. Simplicity Studio, pour l'embarqué industriel

En octobre dernier, Silicon Labs présentait la version 4 de Simplicity Studio. Basé sur Eclipse, cet environnement de développement intégré s'adresse aux développeurs de systèmes embarqués pour le secteur industriel. Il vise à simplifier la programmation de microcontrôleurs sans-fil (MCU 8 ou 32 bits) et de SoC (system-on-chip, ou système sur puce). Simplicity Studio détecte automatiquement ces composants matériels puis propose différentes options de configuration. Il analyse aussi leur besoin en énergie en vue d'optimiser la taille des batteries. Les développeurs préférant utiliser leur propre IDE pourront lancer Keil µVision ou IAR Embedded Workbench via Simplicity Studio. Silicon Labs a récemment commercialisé une solution de développement d'applications pour l'HomeKit d'Apple.

A lire aussi :

IoT