[Raspberry Pi] Thermostat pour radiateur Pass Program

by Matthieu

J’ai laissé un peu de côté mon p’tit robot RPi-kee pour m’atteler à un autre projet, un peu plus terre à terre, et nettement plus utile pour l’humanité. Sous cette introduction un peu pompeuse, se cache sauvegarde de la planète, économie d’énergie et tout le bullshit marketing qui va avec.

Depuis maintenant plus d’un an, j’ai l’honneur d’avoir dans mon salon un Raspberry Pi avec une sonde DS18xxx et un système logiciel pour récupérer cette température et la coller dans une base de données. Si vous me demandez quelle était la température le 4 juin 2014 à 11h dans mon appartement, je suis capable de vous répondre ! C’est beau la technologie. Mais pas très utile.

Avec l’hiver qui vient (TM de la famille Stark), nous avons remis en route un radiateur sur les 5 disponibles chez nous. J’ai beau avec un appartement neuf (refait en 2008), il a été construit avec des jolis convecteurs peuvent être un gouffre financier. Nous avons donc pris l’habitude de le mettre en route le matin au réveil, de le couper en partant, de le relancer le soir en rentrant et finalement de l’éteindre au coucher.

Et si on automatisait tout ça ?

J’ai donc commencé par regarder de plus près mes radiateurs. Il s’agit de modèle F18 de chez Atlantic (mais si, la pub radio avec Charlotte de Turkeim…), qui ne sont pas vraiment haut de gamme, bien au contraire. Néanmoins, ils ont l’avantage d’être « programmable ». Ils disposent de base de 2 thermostats (un « jour » et un « nuit ») ainsi qu’un mode hors gel, et off. On peut donc avec un curseur passé de jour à nuit, à off et à hors gel. Mais alors, programmable, ça veut dire quoi ?
Ça veut dire qu’ils sont connectés à mon réseau électrique par 3 fils : Phase (fil marron, 220V alternatif), Neutre (fil bleu), et le p’tit dernier, le Pilote (fil noir). J’ai donc enquêté un peu, et j’ai regardé comment était câblé tout ça en démontant le cache dans le mur où vont (les putes, TM Tywin Lannister) les fils du radiateur. Comme je le disais plus haut, mon appartement est à peu près neuf, et donc l’électricité est bien faite. Je suis descendu voir mon tableau électrique, et que vois-je : 5 fils noirs qui ne sont connectés à rien, et un fil marron. J’ai pris l’initiative de penser que tout ça est un pré câblage pour un boitier de contrôle.

En regardant la documentation du radiateur, j’ai appris que le fil pilote permet de mettre le radiateur dans des modes de fonctionnement particuliers en fonction du signal envoyé sur le fil pilote. Les différents signaux sont les suivants :

  • Rien : mode jour
  • 220V double alternance : mode nuit
  • 220V alternance positive : mode arrêt délestage
  • 220V alternance négative : mode hors gel
  • 220V double alternance un peu déphasée: mode jour -1°C
  • 220V double alternance un peu plus déphasée: mode jour -2°C

Au final, chaque mode est une transformation du signal 220V plus ou moins compliqué. Quand on regarde la doc toujours, on voit qu’il est possible d’installer (ou de faire installer) un boitier dans le tableau électrique pour réaliser ses opérations. Après, il existe plusieurs options genre thermostat sans fil à placer dans le salon, programmateur plus ou moins complexe, et tout ça, pour faire des sous ! Pour vous donner une idée, le programmateur simple pour UN radiateur coûte entre 50 et 100 euros, et je ne vous parle même pas du thermostat central, et j’évite le sujet du prix de l’intervention de l’installateur agréé.

Le truc quand même bien fait, c’est que le pilotage entre le mode jour et le mode nuit est super simple : soit on déconnecte le fil pilote, soit on y colle 220V.

Voilà, l’objectif est défini, faire un interrupteur commandé par une électronique, le Raspberry Pi en l’occurrence. Et coup de bol, celui qui trône dans mon salon est à 2m du radiateur (caché derrière un meuble, parce que le côté esthétique est important aussi).

Hardware requis :

Le mot clé, c’est « relai ». Un relai en électronique, c’est un interrupteur commandé. On met une tension à la borne du relai, il se ferme. On met 0V, il s’ouvre. De l’autre côté du relai, on branche le 220V et le fil pilote, et zou, terminé.
Evidemment, en pratique, il faut rajouter quelques fioritures pour avoir quelques choses d’utilisable. Et par chance (ou bien alors parce que c’est un besoin pas si exceptionnel) j’ai trouvé sur le site mchobby.be un joli pack « Relai 220V« , avec la doc de montage adéquat.

Ce kit est composé d’un relai pilotable en 5V, d’une diode de roue libre (l’entrée d’un relai est une bobine dans lequel le courant est stocké, la diode de roue libre permet au relai de se vider proprement quand vous le déconnecter), d’un couple transistor/résistance pour piloter le relai (en gros, ça fait la conversion entre une GPIO 3,3V du RPi ou du 5V d’un Arduino pour avoir suffisamment de patate pour attaquer le relai), et pour la rigolade d’une LED pour voir quand le relai est fermé (d’ailleurs elle est monté à l’envers sur le schéma de mchobby, pensez à la retourner si vous l’utilisez). Comme support le site conseil une carte permaproto, ce qui est un très bon conseil. Avoir un support solide quand on joue avec le secteur, c’est plutôt sécurisant.
Coût total : moins de 20€ (hors Raspberry Pi que j’avais déjà).

J’ai rajouté un câble pour relier le triplet 5V/Gnd/GPIO au RPi, un câble pour relier le 220V et le fil pilote (pour le coup, je me suis branché directement au domino reliant le radiateur au réseau câblé dans le mur), et voilà pour le hardware.

Côté Soft :

J’utilise la même librairie de pilotage de GPIO que pour RPi-kee, qui dispose pour le test d’un petit utilitaire pour switcher les GPIO à partir du shell de Debian, très pratique pour les premiers tests, permettant de vérifier le concept.
Ensuite, j’ai préparé un petit tableau Excel avec quelques infos pertinentes, comme une température de consigne, et également des plages horaires pendant lesquelles le radiateur doit être en mode jour. Une fois le tableau sauvegardé au format CSV, reste à faire une bout de code en C pour lire le fichier, trouvé la température de consigne, et déterminer si le radiateur doit être en mode jour ou en mode nuit. Condition supplémentaire, si la température de la pièce est supérieure à la consigne, alors on passe forcément en mode nuit.
La seule opération qui reste à faire sur le radiateur est donc de configurer correctement les deux roulettes de puissance. Celle du mode nuit le plus bas possible, est celle du mode jour assez haute pour chauffer la pièce normalement.
Le plus « difficile » pour ce programme, c’est surtout le décodage du fichier texte contenant les données de la sonde de température, et le décodage du fichier de consigne. Oui, piloter une GPIO avec WiringPi, c’est juste tout con.

Le soft final est lancé avec une tâche planifiée (crontab) tous les quarts d’heure, et roulez jeunesse. Ensuite on peut faire un peu tout et n’importe quoi pour rendre le truc plus facile d’accès, comme une interface web pour la configuration du fichier de consigne ou la lecture en live de la sonde de température, histoire que d’autres personnes du foyer puisse modifier le chauffage sans avoir à modifier le CSV via SSH.

Au final j’ai donc un radiateur qui s’allume le matin avant que je me lève, et qui se coupe tout seul quand il fait bon. Mission accomplie, et si je veux utiliser mes autres radiateurs, je n’ai plus qu’à relier les fils pilotes dans mon tableau électrique.

Note de bas de page : quand on touche au 220V, on met le circuit hors tension avec le disjoncteur AVANT ! Si vous mourrez en faisant de la merde dans votre tableau électrique, spa dma faute !


2 Responses to “[Raspberry Pi] Thermostat pour radiateur Pass Program”

  1. […] vous souvenez du thermostat pour mon radiateur électrique ? Bien. Ce Raspberry Pi avait donc 2 rôles : faire des acquisitions de températures pour les […]

  2. Fraifrai dit :

    Salut,

    J’ai co-réalisé une solution qui fonctionne bien avec un PI3 et un circuit imprimé. Alim en 220V et signal pilote en 220.

    https://www.fraifrai.net/index.php?pages/Mon-projet-domotique-libre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Theme by Ali Han | Copyright 2024 Embarquement ! | Powered by WordPress