Catégories
ElyticBridge Produits

ElyTicBridge

1. Introduction

Le projet ElyTicBridge s’inscrit dans un cadre où la gestion de l’énergie devient un enjeu majeur de notre monde. Ainsi, ce projet va avoir pour objectif d’aider à la transition énergique en utilisant une technologie présente dans nos domiciles : la télé information client d’Enedis. Cette technologie est disponible uniquement avec le réseau électrique français et sur les compteurs adéquats. Parmi ces compteurs, un compteur est désormais le plus populaire en France, le compteur Linky. Ainsi, lors de ce projet, nous n’aurons à notre disponibilité que deux compteurs, tous deux les Linky (un monophasé, un triphasé).  

Un article détaillé sur cette technologie est disponible ici si vous souhaitez en apprendre plus.

L’objectif de ce produit est d’être capable de s’adapter aux besoins des utilisateurs et donc d’être utilisé dans des environnements très variés. Ainsi, nous avons conçu un produit qui est capable de récupérer les informations de la TIC, les traiter et de les retransmettre de différentes manières.

2. Environnement

Comme dit lors de l’introduction, notre objectif est de réaliser un produit qui s’adapte aux différents environnements. Mais quels sont ces environnements ?

Ils se décomposent en deux parties très différentes : l’environnement physique (quels sont les moyens de communication que l’on peut utiliser pour remonter les informations par exemple) et l’environnement d’intégration. Le second type d’environnement consiste plutôt à la cible de ce projet. Nous les détaillerons dans un second temps.

Aujourd’hui, notre compteur électrique peut être à différents endroits, avec différentes conditions d’accessibilité. En effet, on pourrait très bien avoir son compteur électrique dans un local dédié au rez-de-chaussée de son immeuble tout en habitant au 10ème étage ou bien situé dans une pièce de la maison avec un accès direct aux réseaux domestiques ou encore dans un garage à l’autre bout de la propriété. Ces différents environnements nous ont obligé à réfléchir sur comment s’adapter au maximum aux besoins des clients. Ainsi, nous avons décidé de séparer le développement de ce produit en deux parties : la partie principale, sujet de cet article, est en cours de développement (voir 3. Résultat) et une seconde partie qui seront des modules complémentaires (à la manière d’Arduino, des cartes additionnelles autrement appelé « shields ») qui seront à brancher directement sur la partie principale.

La partie principale a été développée dans un environnement spécifique où il y a un accès internet (WiFi ou Ethernet) pour réaliser les remontées d’information avec différents protocoles. Pour les environnements où il n’est pas possible d’avoir un accès internet, certains protocoles permettent une communication avec le réseau local (modbus TCP par exemple) mais des « shields » pourront résoudre ces problèmes dans le futur.

Passons désormais au second type d’environnement, les environnements dans lesquels nous allons nous intégrer. Nous avons identifié 3 grands environnements :

  • L’environnement résidentiel

Il s’agit de l’habitation classique d’un individu. La remontée des informations via certains protocoles (Zigbee par exemple) pourrait permettre d’automatiser des tâches via des éléments intelligents (Google Home par exemple). Le second objectif de l’ElyTicBridge est de permettre aux individus d’avoir un suivi temps réel sur leur consommation électrique (avec un historique).

  • L’environnement Maker

Cet environnement est réservé aux personnes ayant quelques compétences techniques. En effet, ElyTicBridge pourrait alors devenir une carte de développement mettant à disposition des informations qui pourrait être utile dans l’un des nombreux projets de ces individus. Ainsi, il sera possible de le reprogrammer en fonction des besoins et des envies.

  • L’environnement industriel

Ce dernier environnement est un domaine où le suivi énergétique a un enjeu commercial. En effet, nous pouvons utiliser le suivi de consommation pour l’analyser en profondeur et mettre en place des solutions adaptées. On pourrait très bien utiliser cette analyse pour réfléchir à une installation de panneaux solaires. On pourrait aussi chercher à identifier des anomalies électriques (une machine qui s’active de manière périodique alors que nous n’en n’avons ni le besoin, ni conscience) ou encore utiliser ces données pour mettre en place un « Energy Manager » directement.

3. Résultat

Ce projet est un projet qui a commencé en 2023 et a donc déjà des premiers résultats. En effet, aujourd’hui, 2 produits sont installés depuis l’été 2023 et nous avons toujours une remontée des informations fiables sur les différents moyens mis en place. Mais quel est l’état actuel de ces produits qui sont installés et qui fonctionne ?

Cette première version d’ElyTicBridge est déjà utilisée dans deux environnements différents. Le premier produit est installé au siège social d’Elyxoft, équipé d’un compteur Linky triphasé et est utilisé uniquement pour avoir un suivi de la consommation électrique (via l’outil Grafana). Le second est installé dans les locaux d’une entreprise équipée d’un compteur Linky Monophasé. Il a permis de réaliser des tests avec un Energy Manager dans le cadre de leurs activités professionnelles. Ainsi, malgré le fait que le projet n’en était qu’à sa première version, il est déjà capable de s’adapter à différents types d’environnement. Il reste tout de même le développement du dernier environnement, l’environnement résidentiel pour pouvoir communiquer avec des plateformes intelligentes telles que Google home. De plus, ces deux environnements ont un point commun : l’accès facile à une alimentation micro USB ainsi qu’un accès au réseau (via un câble RJ-45, réseau internet pour Elyxoft, réseau local pour l’autre bridge).

Un autre élément important est qu’il existe deux types de TIC, le mode « historique » et le mode « standard » (si vous souhaitez plus d’informations, je vous redirige une nouvelle fois vers notre article traitant ce sujet juste ici). Nous avons fait le choix de ne supporter que le mode historique pour notre première version d’ElyTicBridge car il s’agit du mode par défaut de tous les compteurs et il est le mode le plus répandu. Des tests avec le mode « standard » sont prévus, voir la partie « 4. Futur du projet ».  Ce mode de fonctionnement permet à l’utilisateur d’obtenir certains types d’informations en fonction des contrats (le courant par phase pour un contrat triphasé, par exemple). Ces informations permettent de réaliser des actions et un suivi en temps réel de sa consommation électrique. Elles ont déjà permis d’identifier certains facteurs de consommation et ces deux produits nous ont permis d’être un POC (proof of concept) concluant et de nous orienter vers un développement d’une nouvelle version qui sera ensuite en vente sur le marché.

Cependant, comme nous pouvons le voir sur la photo ci-dessus, le produit utilise des éléments déjà conçus. Ainsi, ces produits présentent des risques de défaillance accrue (un câble qui casse, un composant qui n’est pas correctement connecté…) et nous possédons une preuve que nous pouvons utiliser cette technologie. Ainsi, nous avons décidé de créer une seconde version du projet, toujours en développement à l’heure où j’écris ces lignes.

4. Futur du projet

Nous avons vu, à l’aide des deux produits présentés dans la section précédente, que le principe d’utiliser la TIC pour faire un suivi temps réel de la consommation électrique était possible et peut fonctionner. Nous avons alors lancé le développement d’une nouvelle version de ce produit, qui sera prochainement disponible à la vente.

Cette nouvelle version implique de nombreux domaines :

  • Mécanique

Cette version sera intégrée à un boîtier au format Rail DIN 3 modules. Le format Rail DIN est le format utilisé dans les tableaux électriques pour y fixer les différents éléments électriques (des disjoncteurs par exemple). Ainsi, en respectant ce format, cette nouvelle version du bridge a pour objectif de s’intégrer facilement dans vos installations électriques.

  • Électronique

L’utilisation d’éléments déjà routés et cartes diverses ne sont pas viables pour le produit (pour différentes raisons, dont la fiabilité). Ainsi, nous avons lancé le développement d’un PCB dédié (un circuit électronique imprimé pour les novices) qui utilisera un microcontrôleur plus puissant (ESP32 C6) et permettra donc d’implémenter de nouvelles fonctionnalités. On va alors intégrer les différents éléments nous-mêmes afin d’avoir un contrôle total et d’augmenter la fiabilité d’ElyTicBridge tout en ayant une connaissance complète du produit (allant du logiciel à l’électronique en passant par la mécanique). Ce PCB est actuellement terminé et en cours de fabrication.

  • Logiciel

Nous avons vu certaines limites à la première version de notre produit (par exemple le manque de configuration et un accès complexe aux configurations du bridge). Ainsi, ce premier retour d’expérience nous a permis de prendre conscience de certains aspects pratiques et d’intégrer alors de nouvelles fonctionnalités avec par exemple un web serveur embarqué dédié à la configuration du bridge à l’aide de votre réseau mais aussi la possibilité de réaliser ces mêmes configurations en Bluetooth et donc avec votre smartphone. De plus, nous intégrons de nouvelles fonctionnalités comme la possibilité de choisir entre une connexion au réseau de manière sans fil (WiFi) ou filaire (Ethernet), faciliter la configuration d’ElyTicBridge en le rendant entièrement configurable en fonction des besoins et envies ou l’utilisation de protocoles pour s’intégrer dans les réseaux domestiques (Zigbee ou Matter par exemple).

Cette nouvelle version, prochainement disponible, va donc permettre une adaptation totale à vos besoins, allant du simple suivi de la consommation électrique à une analyse poussée que vous pourrez réaliser pour ensuite réduire votre consommation électrique (ou celle d’un client) ou penser à des manières alternatives de génération électrique (par exemple l’installation de panneaux solaires).

Actuellement, nous développons la dernière partie manquante, la partie logicielle.

Voici quelques images d’un rendu 3D liant la mécanique (boîtier Rail DIN 3 module) et notre carte électronique (en cours de fabrication).

5. Conclusion

En conclusion, quel que soit votre profil, si vous avez besoin d’un suivi de consommation électrique en temps réel (que ça soit pour vous, pour un client ou pour convaincre un futur client d’une action dans l’objectif d’optimiser sa consommation électrique), ce produit est la solution qu’il vous faut. Il est un projet entièrement configurable, facile d’utilisation même pour les novices et très modulable afin de s’adapter à toutes les situations que vous pourriez rencontrer.

Cet article a été rédigé le 22 février 2024.

Catégories
Le coin des étudiants

Raspberry pi – Un outil permettant d’afficher des données en provenance d’un topic MQTT sur des graphiques.

Introduction

Lorsque l’on a un projet IOT utilisant un broker MQTT sur une carte Raspberry pi, il est bien souvent utile de pouvoir visualiser les données sur un affichage graphique.

Cet article va vous présenter comment mettre en place cet affichage. Pour cela, nous allons commencer par configurer un broker MQTT sur une carte Raspberry, puis, mettre en œuvre la chaine telegraf, influxdb, grafana. Nous allons enfin, pour montrer le fonctionnement, créer un script python qui aura pour but de publier des valeurs aléatoires sur un topic MQTT. Sur une carte Raspberry pi, il est toujours utile de pouvoir mettre en unité systemd un script pour pouvoir l’exécuter au démarrage de la carte. C’est pour cela, que dans une partie supplémentaire, vous apprendrez comment faire ceci.

Configuration d’un broker MQTT

installez les packages mosquitto mosquitto-clients grâce à la commande apt. Configurez ensuite mosquitto en créant un fichier /etc/mosquitto/conf.d/broker.conf et en y ajoutant la ligne :

listener 1883 qui définit le port du broker MQTT

allow_anonymous true qui permet aux applications de se connecter sans s’authentifier.

Vous devriez alors un fichier broker.conf qui ressemble à ceci :

Redémarrez le service mosquitto :

sudo systemctl restart mosquitto 

À la fin de cette section, vous devez avoir un broker MQTT fonctionnel qui permet aux clients de se connecter anonymement sur le port 1883.

Mise en place de
la chaine telegraf, influxdb, grafana

Afin de configurer votre raspberry pi avec les serveurs influxdb et grafana, veuillez vous référer au tutoriel suivant : https://simonhearne.com/2020/pi-influx-grafana

Attention, la clé gpg de Influxdata à changé depuis la rédaction du guide de sinomhearne, il y a donc deux solutions possibles pour pouvoir réaliser à bien l’installation :

La première solution est de désactiver la signature du répertoire en modifiant, lors de l’étape 2, après sa création, le fichier /etc/apt/sources.list.d/influxdb.list

en remplaçant la ligne :

deb https://repos.influxdata.com/debian bullseye stable 

par :

deb [trusted=yes] https://repos.influxdata.com/debian bullseye stable

cela a l’avantage de pouvoir être fait grâce à la commande sed :

sudo sed -i 's/deb/deb\ \[trusted=yes\]/' \  
/etc/apt/sources.list.d/influxdb.list

La seconde solution, qui est certainement la meilleure d’un point de vue de la sécurité, est de remplacer pendant l’installation

repos.influxdata.com/influxdb.key 

par

 repos.influxdata.com/influxdata-archive_compat.key

Une fois que vous avez installé InfluxDB et Grafana et connecté Grafana à Influxdb, il faut installer telegraf. Pour ce faire, utilisez la commande :

sudo apt install -y telegraf

Vous allez ensuite devoir configurer telegraf pour qu’il se connecte au broker MQTT puis qu’il remonte les données sur la base influx. Créez un fichier de configuration config.conf dans le répertoire /etc/telegraf/telegraf.d

Ajoutez dans ce fichier les lignes suivantes :

Ces lignes permettent d’indiquer à télégraf de souscrire au topic data, de récupérer des float dessus, et de les rediriger dans une base de données influxdb. Démarrez telegraf à l’aide de la commande suivante :

sudo sh -c 'systemctl enable telegraf && systemctl start telegraf'

À la fin de cette section vous devriez avoir un serveur Influxdb avec un username « grafana », un mot de passe que vous avez vous même entré, et une table home. Vous avez enfin un serveur grafana qui utilise cet utilisateur pour récupérer ses données dessus. Vous devriez aussi avoir un module telegraf qui récupère ses données sur un topic data pour les rediriger dans la table home.

Réalisation d’un script python qui envoie des données aléatoires sur un topic MQTT

Nous avons précédemment fait souscrire telegraf à un topic mqtt data. Nous allons désormais démontrer l’utilité de notre installation en réalisant un script python que nous appellerons script-py.py. Ce script publie sur le topic data toutes les secondes une valeur aléatoire comprise entre 0 et 100.
Voici le script python :

Pour pouvoir lancer ce script, il faut installer le module python grâce à la commande

sudo apt install python3-paho-mqtt 

Nous allons aussi créer un nouveau Dashboard Grafana pour pouvoir visualiser ces données. Pour pouvoir créer un dashboard, il faut tout d’abord lancer le script python pour remplir un minimum la base de donnée. Ensuite, connectez-vous au serveur grafana sur le port 3000 depuis un navigateur, faites nouveau Dashboard, et sélectionnez les données à afficher comme sur la figure.

Vous devriez ainsi voir les données retournées par le script python sur le serveur grafana comme ci-dessous :

Réalisation d’un script pour lancer automatiquement
le script python.

Au point actuel, vous pouvez observer que le script python envoie bien des données sur le serveur Grafana. Cependant, il est rare, lorsque l’on est dans un projet qui nécessite une carte raspberry pi, de lancer manuellement un script. C’est pour cette raison que vous allez voir une méthode utilisant systemd afin de lancer le script python au démarrage de la carte automatiquement.

Cette méthode induit de réaliser une unité systemd ainsi qu’un script bash pour lancer le script python.

Le script python créé plus tôt est placé dans /home/pi et s’appelle script-py.py. Placer le script bash dans le dossier /home/pi/bin et lui donner le nom lanceur.sh . Ouvrez le script bash et copier le code suivant :

Donnez lui les droits d’exécutions :

chmod a+x /home/pi/bin/launceur.sh

Enfin, je vais placer l’unitée systemd dans le dossier /etc/systemd/system. Il portera le nom de l’unité systemd créée. Dans mon cas cela sera lanceur-script.service . Écrivez dedans les lignes suivantes :

Et voilà, vous n’avez plus qu’à exécuter la ligne

sudo sh -c ’systemctl enable lanceur-script.service && \
systemctl start lanceur-script.service’

Vous avez désormais un programme qui tourne sur une carte raspberry dont les données générées sont affichées de manière graphique sur un serveur grafana.

Sitographie

Blog sur le site officiel influxdata pour apprendre à configurer telegraf : https://www.influxdata.com/blog/mqtt-topic-payload-parsing-telegraf/

lien git pour aider à configurer telegraf : https://github.com/influxdata/telegraf/blob/master/plugins/outputs/influxdb/README.md

Catégories
Recherche technologique

Raspberry Pi – Un outils pour surveiller vos développement IoT

Lorsque l’on développe un objet communicant arrive le moment ou l’on souhaite s’assurer de son fonctionnement dans le temps, cet article va vous présenter comment configurer en quelques heures un Raspberry Pi pour répondre à ce besoin.

Pour cela nous allons commencer par faire un capteur température/pression/humidité Wi-Fi sur base STM32, puis nous utiliserons le Raspberry Pi en point d’accès Wi-Fi avec les outils nécessaire pour surveiller l’évolution des valeurs sous forme de courbes.

Capteur Wi-Fi – STM32F401

Ce capteur est basé sur la carte RUSHUP Cloud-JAM qui est le condensé des carte NUCLEO-F401RE, X-NUCLEO-IDW01M1, X-NUCLEO-IKS01A2 et X-NUCLEO-NFC01A1. Nous allons modifier le code exemple pour n’utiliser que la partie W-Fi et capteurs de température/pression/humidité le tout connecté à un broker MQTT local.

Le capteur publiera toute les minutes sur un broker MQTT ses valeurs de température, humidité et pression.

https://raw.githubusercontent.com/rushup/Cloud-JAM/master/JAM-TOP.jpg

Liens site officiel

Étapes

  • Installation de l’environnement de développement de STMicroélectronic STM32CubeIDE
    • https://www.st.com/en/development-tools/stm32cubeide.html
  • Récupérer les sources modifiée depuis le dépôt gitlab Elyxoft en utilisant la branch « develop »
  • Importer sous STM32CubeIDE, Compiler et charger sur la cible
  • A ce point si l’on se connecte à l’aide d’un terminal série sur le port série virtuel de la carte en 460800bauds on voit apparaître les informations de debug et le fait que la carte ne se connecte pas au Wi-Fi de notre Raspberry Pi, celui-ci n’étant pas configurer …

Monitoring – Raspberry Pi

Plusieurs éléments sont à installer sur le Raspberry Pi, pour cela nous allons suivre quelques guides :

Arrivé à ce point, notre Tag doit être en mesure de ce connecter en Wi-Fi au Raspberry et publier toute les minutes ces information sur le topic « stm32 », il est facile de vérifier cela en regardant les log de la console série, puis en souscrivant au topic stm32 depuis MQTT.fx.

Il faut maintenant créer une base dans infuxdb dans laquelle nous allons enregistrer nos valeurs. Depuis un terminal sur le Raspberry Pi :

pi@raspberrypi:~ $ influx
Connected to http://localhost:8086 version 1.8.0
InfluxDB shell version: 1.8.0
> CREATE DATABASE stm32
> SHOW DATABASES
name: databases
name
----
_internal
stm32

Notre base de donnée est prête à recevoir des enregistrement, on utilise Node-RED pour récupérer les informations qui arrive sur le topic MQTT, les mettre en forme et les envoyé dans la base de donnée.

Description des différents module :

  • mqtt in
  • Fonction de transformation
  • influxdb batch
  • N’oublier pas de « déployer » le flow pour le rendre actif. Les modules de debug permette de vérifier la bonne transformation des messages.

La dernière étape connecté grafana à influxdb et afficher les informations.

La première chose va être de configurer une source de donnée :

Maintenant on va ajouter un dashboard et un premier panel pour la température :

Les deux champs à renseigner sont :

  • « Nucleo » dans la ligne FROM, il doit apparaitre dans une liste déroulante, si ce n’est pas le cas, c’est que la connexion à influxdb n’a pas eu lieu.
  • « temperature » dans la ligne SELECT, même remarque que précédemment.

On ajoute dans le même dashboard deux autre pannel pour la pression et l’humidité et l’on doit obtenir :

Conclusion

Avec très peu d’effort on obtient un outils capable de présenter les résultats de nos capteurs de façon agréable et facilement exploitable.