Publié le

TIC du Linky sur Arduino

TIC du Linky sur Arduino

Repo GitHub du projet : https://github.com/imPBH/arduino-linky

Qu'est ce que le TIC du Linky

Le TIC (Télé-Information Client) est une interface de communication du compteur Linky. Elle permet de récupérer des informations sur la consommation électrique et d'autres données en temps réel. Ici les prises TIC sont entourées en rouge :

Compteur Linky

Liaison entre l'Arduino et le Linky

Nous avons connecté l'Arduino au compteur Linky via ce module :

Module Linky vers Arduino

Nous relions la LINKY I1 et LINKY I2 du module TTL sur les prises I1 et I2 du compteur Linky. Nous relions ensuite la prise GND sur la terre, la prise VCC sur le 5V, et la prise TTL sur un pin de l’Arduino qui nous servira de Rx, c’est là où nous recevrons les informations du compteur Linky. Évidemment, le compteur Linky ne nous envoie pas les informations directement lisibles, il faut d’abord les déchiffrer. Pour cela, nous avons utilisé la bibliothèque LinkyHistTIC créée par MicroQuettas sur le forum Arduino (lien). Il nous suffit juste d’appeler les fonctions qui nous intéressent pour récupérer les bonnes informations, dans notre cas, nous utilisons la fonction Linky.papp() qui va nous retourner la la puissance apparente en V.A., cela nous sert donc à obtenir la consommation en temps réel !

Désactiver un appareil en cas de consommation trop importante

Pour simuler un appareil, nous avons utilisé un moteur connecté à l’Arduino via un mosfet et alimenté par une pile 9V afin que celui-ci puisse tourner de façon optimale. Lorsque l'Arduino détecte une consommation qui dépasse une certaine valeur, et si l’alerte de consommation est activée, alors l’Arduino va couper l’alimentation de la porte du mosfet, ce qui va ouvrir le circuit du moteur, et qui va donc l'arrêter. De plus, nous avons intégré une LED rouge qui clignote toutes les 250 millisecondes ainsi qu’un buzzer qui va émettre un bip en même temps que la LED clignote. Tout cela est géré de façon à ne pas bloquer le reste du code, pour cela nous avons utilisé un calcul grâce à la fonction millis() de l’Arduino qui va nous renvoyer le nombre de millisecondes depuis le démarrage de la carte, grâce cela nous pouvons donc déterminer si il faut allumer ou éteindre la LED et le buzzer. Il n’aurait pas été possible d’utiliser la fonction delay() de l’Arduino car celle-ci bloque entièrement le code de l’Arduino, ce qui nous embête car nous avons d’autres LED à faire clignoter, des valeurs à récupérer en même temps etc.

Alerte désactivé, le moteur tourne à pleine puissance, la LED d’alerte est éteinte, rien n’est affiché dans la console :

Alerte de consommation éteinte

Alerte activée, le moteur est arrêté, la LED est allumée, le buzzer sonne et un message d’alerte est affiché :

Alerte de consommation activéeMessage d'alerte

Détection d’intrusion dans l’installation électrique

Pour renforcer la sécurité de l'installation électrique, nous avons ajouté un capteur de distance à ultrason capable de détecter à quelle distance se trouve un obstacle. En cas de détection d'un obstacle à moins de 15cm du capteur, l'Arduino envoie une alerte à l'utilisateur et fait clignoter une LED toutes les 250 millisecondes.

Alerte activée, la LED jaune s’allume, il y a un message dans la console :

Message d'alrte intrusion

Service rendu à l’utilisateur

Cette installation offre à l'utilisateur une meilleure compréhension de sa consommation d'énergie, ainsi que la possibilité de mettre en place une alerte de consommation et d’intrusion. Quand l’Arduino démarre, toutes les alertes sont désactivées par défaut. Un message apparaît et indique à l’utilisateur qu’il peut appuyer sur M pour afficher ses moyennes de consommation.

Moyennes de consommation

Vidéo démonstrative du projet

Cette vidéo n'est pas la version finale qui est présentée dans ce post, mais une version précedente assez proche du résultat final.