Fil pilote 433Mhz DIY


Présentation

Il y a quelque temps, j'ai voulu installé un programmateur hebdomadaire pour piloter les radiateurs électriques d'un appartement. Seulement voilà, l'installation électrique n'était pas prévu pour ça: pas de fil pilote dans mes gaines électriques .

Après avoir cherché des solutions dans le commerce (que j'ai trouvé hors de prix), je me suis lancé dans la réalisation d'une passerelle 433Mhz <-> fil pilote DIY. C'est ce que je vous propose de découvrir dans cet article.

Le but du dispositif est donc de pouvoir piloter des radiateurs avec un programmateur en utilisant l’interface du « fil pilote », mais sans fil...C'est pas clair ce que je raconte? Oui j'avoue, on va donc faire un petit schéma.
Dans une installation conventionnelle, le programmateur est relié physiquement aux différents radiateurs au travers d’un fil, dit « pilote » qui transmet l’ordre de commande :



Le dispositif que je vais vous présenter remplace cette liaison filaire par une liaison sans fil RF 433MHz :


 Il est constitué de 2 boitiers:
  • Un boitier transmetteur Tx qui sert de convertisseur ‘Fil Pilote -> Emetteur RF 433MHz’. Ce boitier est connecté localement au programmateur. Son rôle est de lire et décoder l’ordre « fil pilote » émanant  du programmateur en local. Il diffuse ensuite cet ordre grâce à l’émetteur RF.
  •  Un boitier Récepteur Rx qui sert de convertisseur ‘Récepteur RF 433MHz -> Fil pilote’. Ce boitier est relié localement au niveau de chaque radiateur. Son rôle est de réceptionner et décoder la trame reçu en liaison RF. Il se charge ensuite de retranscrire l’ordre sur l’interface fil pilote local à destination du radiateur sur lequel il est raccordé. Il faut donc un boitier Rx par radiateur.

Le fil pilote, c'est quoi?

Ce terme désigne en fait un système de commande basé sur le signal électrique alternatif 230 Vac.

Le radiateur va réguler la température  grâce à son thermostat interne en fonction du mode envoyé par le fil pilote.

On se rend compte ici que la gestion des 4 ordres de bases est ultra basique: un montage avec  2 optocoupleurs à sortie triac + 2 diodes est suffisant. Le net regorge d'exemple:


Présentation du boîtier récepteur Rx

La partie Hard

Ce boîtier est destiné à être relié à un radiateur pourvu d'un fil pilote. Voici à quoi il ressemble une fois terminé:
"Wahoou! Il est beau..."

Il est destiné à être installé en saillie juste quelque par à proximité du radiateur qu'il pilote. Ce boitier est conçu à partir d'un PCB simple face:

"Quand je dis DIY, c'est pas pour rien"
La taille du PCB de 50x50mm a été spécialement étudiée pour prendre le moins de place possible et rentrer dans une boite de dérivation Legrand référence 860 57 disponible dans n’importe quel GSB.

La carte est structurée autour d’un microcontrôleur PIC16F1825. D’un côté il lit les trames en provenance du récepteur  433Mhz, et de l’autre il génère l’ordre du fil pilote au travers d’un ensemble d’optocoupleur triac et de diodes.
La carte est également munie de 2 leds d’indication d’état ainsi que d’un bouton reset. Celui-ci permet de reseter le PIC si besoin sans devoir couper l’alimentation. C'est le petit trou en façade que l'on voit sur la photo.

Le tout est alimenté par un montage à capa chutrice branché directement sur le 230V, et protégé en amont par un fusible. Il est également possible d’alimenter la partie basse tension à l’aide d’une pile 9V branché sur le bornier 2 voies lors de phases de tests pour vérifier le bon fonctionnement de la partie basse tension. Cette dernière partie est totalement optionnelle et n’est pas indispensable au bon fonctionnement de la carte.

Et voici l'antre de la bête:


Vue de dessous
Vue de dessus

Une fois intégrer sans le capot

La partie Soft

Je ne vais pas détaillé ici le code source. Si cela vous intéresse, je vous invite à parcourir le dépôt Github.

Voici le principe utilisé: Le PIC reçoit le signal en provenance du récepteur 433Mhz sur 2 modules CCP. Le premier va détecter les fronts montants  tandis que le second va détecter les fronts descendants.


Il est alors possible de connaitre exactement la durée des fronts hauts et des fronts bas en comparant la valeur du Timer entre 2 interruptions générés par les modules CCP.

Le protocole HomeEasy

C'est le principal intérêt de ce projet: il utilise un protocole standard compatible avec de de nombreux systèmes domotiques tel que Chacon (gamme DI-O), Zibase ou Rxfcom.

...Et?

Hé bien voilà où je veux en venir: ce petit boîtier Rx dont je vous rebats les oreilles depuis quelques dizaines de lignes s'apparent à un module Qubino ZMNHJD1 (le Z-Wave en moins). Il peut donc être détourné facilement pour être utiliser avec n'importe quelle box domotique en lieu et place du boitier Tx.


Voici l'adresse du dépot Github où vous trouverez tous les détails pour la réalisation, les codes sources, et les fichiers du PCB:
https://github.com/Sooun/fil_pilote

Merci de m'avoir lu et n'hésitez pas à poster!

Sooun

Commentaires

  1. Bonjour,

    Quel board/interface faut-il disposer pour pouvoir programmer le PIC ?
    Par ailleurs, je souhaiterais pouvoir commander envoyer des ordres au boitier RX directement depuis mon Rpi avec Domoticz/RFLink. Le boitier RX filtre t'il les messages HomeEasy reçu suivant un ID matériel ?

    Merci par avance.

    RépondreSupprimer
  2. Bonjour,

    Pour pouvoir programmer le PIC, il vous faut un programmateur Pickit 3. On en trouve facilement aux alentours de 20€.
    Concernant le traitement des messages reçus, voici comment ça marche:
    Les trames pour lesquelles le boitier RX va réagir sont définies dans le code source du programme. Voici à quoi cela ressemble:

    // CONSTANTES
    #define ARRET 0x2C674E81
    #define CONF 0x2C674E90
    #define ECO 0x2C674E91
    #define HORS_GEL 0x2C674E92

    Donc pour pour répondre à votre question, oui il y a filtrage des messages.
    Pour que le boitier RX fonctionne correctement avec le RFlink, il faut effectivement que le code ID que vous renseignez dans Domoticz pour chaque mode (Arrêt, Confort, Eco...) corresponde à la trame attendu dans le boitier RX.

    Il n'y a pas de "mode apprentissage" dans le boitier RX, tout est prédéfini directement dans le code source (que vous pouvez modifiez bien sûr)

    Sooun

    RépondreSupprimer
  3. Bonjour,

    Les liens sur le dépot github ne sont plus valides. Est-il possible de les actualiser?

    De plus, dans l'hypothèse où les commandes sont envoyées par une box domotique ("custom" genre domoticz ou jeedom), est-il possible de se contenter du boitier RX seul?

    Merci d'avance pour vos réponses.

    RépondreSupprimer
  4. Bonjour,

    Je viens de mettre à jour les liens sur Github, merci pour l'info.

    Et oui, il est tout à fait possible d'utiliser le boitier RX en association avec une box domotique. Je pense même que c'est son principal intérêt. J'ai fait le test avec un Arduino + RFLink + Domoticz et ça fonctionne très bien. Il y a quelques subtilités pour la configuration des"interrupteurs" dans Domoticz, mais dès que j'aurais un plus de temps, je ferais un petit article.

    Sooun

    RépondreSupprimer

Enregistrer un commentaire

Posts les plus consultés de ce blog

Emetteur RF 433Mhz pour fil pilote