10

PiTInfo : Téléinfo, Emoncms avec Node Red sur Raspberry PI, moins de 30 min, moins de 10€

Après le Dongle téléinfo le plus petit, j’ai eu pas mal de demandes de personnes souhaitant pouvoir réaliser de manière simple l’intégration de la téléinformation sur Raspberry PI avec un montage. Voilà qui est fait. De plus, j’en ai profité pour changer d’optique et simplifier les choses au niveau logiciel et gestion de l’information.

Edit du 13/10/2015La nouvelle version de PITinfo V1.2 possède maintenant la modification basée sur un transistor FET. Voir le nouvel article dédié ici.

Bien que cette carte fonctionne parfaitement avec le programme que j’ai réalisé qui envoi les trames sur le réseau ainsi que vers une base mysql et emoncms, il faut néanmoins le compiler avec les dépendances nécessaires et faire un fichier de configuration correct, puissant mais pas si simple de prime abord.

J’ai donc choisi de faire exactement la même chose avec Node Red, et vous allez voir que c’est ultra simple, super rapide, très visuel et surtout extensible à l’infini. Oui, ok, je kiffe node red, mais vous aussi à la fin de cet article, du moins je l’espère.

Bon, reprenons… mais pour commencer voici le montage final avec la carte enfichée sur le Pi

PiTinfo montée sur Raspberry PI

PiTinfo montée sur Raspberry PI

La carte électronique

J’ai utilisé le montage le plus classique du net et très éprouvé par la carte ArduiPi et réalisé un PCB afin de faire propre. J’ai choisi volontairement des composants classiques afin qu’ils soient soudables même par des débutants.

Schéma de fonctionnement

Schéma de fonctionnement

Les composants nécessaires :

PiTInfo matériel nécessaire

PiTInfo matériel nécessaire

J’ai commandé les PCB chez mon fournisseur habituel pour les prototypes, vous pouvez en commander chez OSHPark pour $3.20 les 3, frais de port compris. Voici le lien direct pour les commander.

Au minimum, vous avez 2 composants à souder, l’optocoupleur et une résistance (R3). Comme prévu la résistance R1 n’est pas nécessaire sur un Raspberry PI et peut être omise. Optionnellement j’ai ajouté une LED au format 3mm ou CMS et sa résistance associée R2. Ceci afin de la faire clignoter à réception de trame valide de téléinfo, mais c’est plus ludique et visuel que fonctionnel, ce n’est absolument pas obligatoire.

Aujourd’hui, je viens de monter les composants, et voici les 3 cartes montées, dont une avec une LED cms. Le connecteur téléinfo (les 2 fils qui viennent du compteur) est soudé dessous (pas obligatoire) afin de ne pas être ennuyé si votre Pi est dans un boitier. J’ai aussi “écarté” les trous du connecteur s’enfichant sur le Pi, ainsi, pour faire des tests, pas besoin de le souder, ça tient tout seul grâce à cette astuce.

PiTinfo, Connecteur Téléinfo dessous et LED cms

PiTinfo, Connecteur Téléinfo dessous et LED cms

PiTInfo 3 cartes montées

PiTInfo 3 cartes montées

 

Configuration du Raspberry PI

Se connecter sur le Pi en ssh puis commencer par un update en exécutant les commandes suivantes:

Installation des packages nécessaires, picocom est un terminal série permettant de vérifier que les informations de la téléinfo arrivent bien. screen est un outil génial quand on souhaite lancer des processus en arrière plan et pouvoir consulter à posteriori les affichage (stdout). Le temps d’écrire cet article et j’ai découvert le management de node red (startup) via pm2, donc picocom et screen ne sont pas nécessaires. Ceci dit, il font partie d’une toolbox de base à mon sens donc je les installe.

Installation des modules de développement

Désactiver le terminal via la liaison série (car elle va être utilisée par la téléinfo)

Aller dans le menu “Advanced Options”, sélectionner “‘Serial” et à la question ” Would you like a login shell to be accessible over serial? ” sélectionner No puis Ok et enfin Finish. Il est possible que vous deviez rebooter le Pi après cela.

Installation de nodejs

Rien de bien fancy, je suis allé chercher les informations sur le site de nodejs, les voici:

Pour ma part c’est un Pi avec 256M de RAM alors j’ai opté pour la dernière version 0.10.x de nodejs. J’ai remplacé dans les commandes précédentes
node_latest_armhf.deb
par
node_0.10.36_armhf.deb
c’est pour cela que les versions indiquées peuvent être différentes.

Vérification que node et npm sont ok:

Installation de Node Red

Installation de node-red et de quelques dépendances, notez que npm peut vous lancer plein de warning, aucun soucis ne vous inquiétez pas. La 1ère fois çà fait peur car c’est en couleur, mais c’est normal.

Pour le démarrage de node red, nous allons utiliser pm2

Et enfin démarrer node red

Attention le Raspberry PI étant limité en RAM bien mettre le paramètre –max-old-space-size=128 (128Mo), pour ma part c’est un Pi 256Mo donc j’ai mis 64Mo

Pendant que j’y suis, pm2 est vraiment génial, il vous relance le process en cas de crash de celui-ci, pratique. De plus on peut aussi voir les infos qui sortent normalement vers la console avec le paramètre
logs
et des informations avec le paramètre
info
.