Créons dans ce tutoriel un petit moniteur pour afficher en temps réel des StateObjects de votre Constellation sur un écran OLED comme par exemple la consommation CPU d’une de vos machines Windows récupérée grâce au package HWMonitor.

Monitor connecté

Prérequis

  • Un ESP8266 ou un Arduino avec interface réseau
  • Un petit écran OLED
  • Un serveur Constellation

Etape 1 : le montage

Nous utilisons ici un ESP8266 de type D1 Mini Pro. Nous pouvons alors utiliser un écran OLED en Shield qu’on a juste à « déposer » sur le D1 Mini :

Shield OLED

Autre solution, utilisez un écran OLED classique :

Ecran OLED I2C

Ces deux écrans OLED sont pilotables en I²C. Pour les connexions du 2ème écran, il suffit de connecter les masses (GND) ensemble, la pin « Vcc » de l’écran sur la pin « 3V3 » de la D1 Mini et le « SLK » sur « D2 » et « SDA » sur « D1 ».

Etape 2 : la programmation

Pour démarrer vous devez dans Constellation déclarer une sentinelle associée à une clé d’accès et un package virtuel. Ici notre ESP8266 est représenté par la sentinelle nommée “ESP8266” et le package virtuel se nomme “MyMonitor”.

Dans l’Arduino IDE, nous créons un nouveau projet à partir du Starter Kit Constellation pour ESP8266 dans lequel nous allons définir le nom de notre réseau Wifi (SSID) ainsi que sa clé d’accès  puis nous configurerons le client Constellation en spécifiant l’identité de notre package virtuel, sa clé d’accès et l’adresse/port de notre serveur Constellation :

Encore une fois si tout cela est nouveau pour vous, je vous recommande de suivre ce guide d’introduction à l’API Constellation pour Arduino/ESP8266.

Maintenant que la coquille de notre package virtuel sur ESP8266 est prête, installons la librairie « ESP8266 Oled Driver for SSD1306 » pour pouvoir piloter l’écran OLED depuis le gestionnaire de bibliothèque :

Installation de la librarie

Il vous suffit ensuite d’importer cette librairie et déclarer l’objet « display » de cette façon :

Au démarrage de votre programme, dans la méthode « setup() », initialisez votre écran :

Toujours la méthode « setup() » et une fois connecté au Wifi, récupérez le setting « Machine » en prenant soin de recopier la valeur par les lignes :

Il ne nous reste plus qu’à enregistrer un ou plusieurs « StateObjectLink » pour récuperer les informations que vous souhaitez suivre.

Dans notre exemple nous allons enregistrer un « StateObjectLink » vers le StateObject « /intelcpu/0/load/0 » du package « HWMonitor » pour la sentinelle définie dans le setting « Machine ».

A chaque mise à jour du StateObject, nous afficherons sa valeur textuellement avec la méthode « drawString » ainsi que dans une barre de progression avec la méthode « drawProgressBar » :

Demos

Avant de lancer votre code, assurez-vous d’avoir bien déclaré le setting « Machine » avec le nom de la sentinelle sur laquelle est déployé le package « HWMonitor » :

Setting du package

Il ne vous reste plus qu’à téléverser votre programme sur la D1 Mini et observer le résultat.

MyMonitor en action

Et voilà comment en quelque ligne de code vous avez un moniteur temps réel de votre consommation CPU Windows sur un écran OLED piloté par un ESP8266.

Pour aller plus loin

Vous pouvez bien entendu adapter le ou les StateObjects à afficher. Nous avons dans ce tutoriel affiché la consommation CPU mesurée par le package « HWMonitor » mais ce même package met à disposition beaucoup d’autre StateObject : consommation RAM, des disques dur, réseau, température du châssis, consommation énergétique, etc. N’hésitez pas à utiliser le StateObject Explorer pour explorer les StateObjects de ce package.

Il existe aussi plein d’autres packages qui produisent des StateObjects que vous pourrez afficher sur votre écran OLED. Quelques exemples : le package « NetAtmo » pour les mesures sur la T°, humidité, taux de CO², ambiance sonore, pluviomètre et autre ; le package « Nest » sur l’état de votre chauffage, T° ambiante et de consigne ; package « Tesla » pour récupérer en temps réel toutes les données sur votre voiture ; package « DayInfo » pour connaitre les heures du soleil ou la fête du jour ; le package « NetworkTools » où vous pourrez superviser des services TCP ou les temps de réponse de vos sites Web ou encore le package « SNMP » pour pouvoir afficher sur votre écran OLED des informations issues du SNMP, comme par exemple la bande passante de votre routeur.

Bref vous l’aurez compris, la seule limite sera votre imagination !

Créer un moniteur connecté pour surveiller vos machines, équipements réseau et autres capteurs
Editer la page sur GitHub
Étiqueté avec :                    

Rejoignez la discussion sur le forum Constellation