Dans les applications de l’IoT, il est de plus en plus fréquent d'intégrer un serveur Web embarqué dans les objets connectés, une approche qui offre de la souplesse et qui permet d’intégrer facilement de nouvelles fonctionnalités. ...Cependant, côté développement, cette solution impose d’utiliser plusieurs langages de programmation et demande des compétences complémentaires au sein des équipes de développement. Pour faciliter cette tâche et réduire les coûts, le français AIM, spécialisé dans la conception et la fabrication d’automates temps réel, a mis au point la fonction WebUI (Web User Interface) au coeur de son outil logiciel Agilia Intuitive Automation.
WebUI permet de créer les pages d’un serveur Web embarqué sans écrire de lignes de code en HTML, CSS, JavaScript, PHP ou Ajax, mais à partir d’une classe d’objets, les WebWidgets. Il s’agit d’éléments graphiques que l'utilisateur positionne sur sa page Web en lui donnant la taille et les caractéristiques graphiques qu’il souhaite. Dans l’environnement Agilia, le WebWidget est une entité logicielle complexe, représentée par un bloc fonctionnel doté d’entrées/sorties. Par exemple avec le WebWidget “Curves”, le développeur pose directement cette entité graphique sur sa page Web. Et pour la programmation, il câble les trois entrées analogiques sur le bloc fonctionnel associé à ce WebWidget. Lorsque la page Web est accédée par l’utilisateur final, les courbes des trois grandeurs analogiques sont alors affichées en temps réel.
Rappelons que Agilia est un outil de programmation graphique qui permet à un développeur de créer un programme, non pas en écrivant des lignes de code, mais en glissant/déposant sur une “feuille de travail" des blocs fonctionnels qui contiennent un code applicatif (codeurs, commandes de moteurs PWM, blocs d’E/S…). Ces blocs sont ensuite reliés entre eux et donc connectés avec des liens fonctionnels. Basé sur le concept de moteur d’instanciation (utilisé en particulier dans le monde des automatismes), l’outil Agilia permet ainsi de concevoir, simuler et déboguer en temps réel des applications installées sur des microcontrôleurs STM32. Au niveau système d’exploitation, l’ensemble fonctionne avec le noyau µRTS développé par AIM et qui est un système d'exploitation temps réel multitâche.