Prises télécommandées via internet – Partie 1 : récupération des trames RF
Depuis quelques temps maintenant j’utilise chez moi des prises télécommandées pour contrôler l’allumage des lumières, de mon installation Hifi-vidéo et de mon PC.
Ces prises je les ai trouvé chez Brico-Dépôt ; pour une quinzaine d’euros on se retrouve avec 3 prises et une télécommande. Elles sont programmées sur deux canaux (1 ou 2) et offrent la possibilité de les positionner sur 4 adresses différentes (A, B, C ou D). On peut acheter plusieurs lots pour compléter son installation et étendre ses possibilité, on se retrouve alors avec autant de télécommandes ce qui peut être utile pour en laisser trainer dans plusieurs pièces et ne pas être toujours en train de courir après LA télécommande.
Aujourd’hui ce qui m’intéresse c’est de remplacer ces télécommandes par une interface web (et pourquoi pas à terme une application mobile) afin de pouvoir contrôler mon installation depuis l’extérieur et/ou depuis mon téléphone.
Identification de la méthode de communication
Avant de songer à développer mon propre émetteur il s’agit de comprendre comment fonctionne l’existant. Une coup d’œil sur les différentes étiquettes m’apprend que le tout fonctionne par communication Radio Fréquence (RF) sur une fréquence de 433 MHz. Dans la mesure ou aucune diode infrarouge n’était apparente, la communication RF semblait effectivement la plus évidente.
Pour aller plus loin il faut maintenant ouvrir la télécommande. Ayant acheté trois lots, je dispose de trois télécommandes et ne crains donc pas d’en endommager une en l’ouvrant. Un petit coup de tournevis et la voilà déshabillée.
En regardant rapidement on s’aperçoit que la carte se décompose essentiellement en trois parties : la partie émission RF, les différents interrupteurs de sélection d’adresse, de canal et de commande on-off et enfin l’encodeur.
L’encodeur c’est ce gros composant noir à 18 pattes. Il s’agit ici d’un PT2262, un composant spécialement prévu pour les télécommandes infrarouges ou RF. Il est chargé d’envoyer à la partie émission RF un code spécifique en fonction de la touche sur laquelle ou appuie. Il travaille généralement en binôme avec le PT2272 qui lui est un décodeur que l’on trouve en générale dans le récepteur (l’ouverture d’une des prises m’a ici confirmé que c’était bien le cas). Le décodeur change les niveaux sur ses broches en fonction du code reçu.
Bonne nouvelle donc, la datasheet de l’encodeur et du décodeur étant faciles à trouver sur internet (merci Google) on peut encore en apprendre un petit peu plus sur le fonctionnement du système. Le PT2262 envoie des trames à intervalle régulier avec le code dépendant du réglage d’adresse (gros interrupteur à glissière), du canal sélectionné (poussoirs 1 ou 2) et bien entendu de la commande choisie (on ou off).
En approfondissant un petit peu la datasheet on apprend que le composant envoi en fait des salves de 4 trames, chaque trames étant composée de 13 bits. Sur ces 13 bits, le dernier est un bit de synchronisation, les 12 autres correspondant au codage de l’adresse et des données.
A la lecture du document on découvre quelques subtilités qui peuvent s’avérer déstabilisantes dans un premier temps. Premièrement le composant code une adresse et des données. Quid du numéro de canal qui apparait sur les étiquettes des éléments? Et ensuite, on constate que la frontière entre adresse et données est floue, les 6 premiers bits servent à coder l’adresse, mais les 6 derniers peuvent être utilisés pour coder l’adresse ou les données au choix.
Après avoir réfléchit un peu on réalise qu’en fait on peut faire abstraction de ces notions d’adresse et de données. Le codeur dispose de 12 broches d’entrées qui correspondent à autant de bits dans la trame (si l’on oublie le bit de synchronisation) et de son côté le décodeur dispose également de 12 broches de sorties qui viendront changer d’état en fonction des bits contenus dans la trame reçue. Chaque bit correspond donc à l’état d’une broche, le reste n’est que vue de l’esprit. Il est maintenant facile de considérer par exemple que le premier bit correspond à un canal et que les 11 autres sont les données ou l’inverse.
La datasheet nous apprend enfin une dernière chose, chaque bit peut être codé suivant trois états : 0 lorsque la broche est reliée à la masse, 1 lorsque la broche est reliée à l’alimentation, ou flottant (f) lorsque la broche n’est pas connectée :
Mesures
Maintenant que l’on sait comment communique le système on va pouvoir se mettre au travail. N’ayant pas envie de m’embêter avec la partie RF de ma future commande, je suis aller faire un tour sur ebay et j’ai trouvé ceci :
Il s’agit d’un émetteur et d’un récepteur RF 433 MHz vendus pour quelques euros comme étant un lien sans fil pour Arduino par un vendeur Chinois. Ne prenant pas trop de risques étant donné le prix (moins de 4 euros franco de port) je les ai commandé et reçus quelques semaines plus tard. Il s’agit en fait de clone des modules conçus par Seeed Studio dont on peut trouver les caractéristiques dans leur boutique.
Plutôt que d’éplucher le circuit de la télécommande pour trouver quelles sont les trames envoyées pour chaque bouton, j’ai préféré alimenter le récepteur RF et brancher mon oscilloscope sur sa sortie afin d’observer les trames reçue pour chaque appui sur la télécommande.
Voici un exemple de trame reçue :
On reconnait ainsi les allures des bits détaillés plus haut.
Je vous épargne l’affichage des 16 différentes trames émises par ma télécommande (8 prises et 2 commandes par prise), et voici les résultats obtenus pour chaque réglage.
A1-On -> 00ff00ff0fffS
A1-Off -> 00ff00ff0ff0S
A2-On -> 00fff0ff0fffS
A2-Off -> 00fff0ff0ff0S
B1-On -> f0ff00ff0fffS
B1-Off -> f0ff00ff0ff0S
B2-On -> f0fff0ff0fffS
B2-Off -> f0fff0ff0ff0S
C1-On -> 0fff00ff0fffS
C1-Off -> 0fff00ff0ff0S
C2-On – > 0ffff0ff0fffS
C2-Off -> 0ffff0ff0ff0S
D1-On -> ffff00ff0fffS
D1-Off ->ffff00ff0ff0S
D2-On -> fffff0ff0fffS
D2-On -> fffff0ff0ff0S
S représente ici le bit de Synchronisation. On constate que seul le dernier bit change d’état entre la commande « On » et la commande « Off » de chaque réglage de la télécommande.
Il ne reste donc plus qu’à générer ces trames et les envoyer sur le module émetteur pour pouvoir commander les prises. Ce sera l’objet d’un prochain article sur ce blog.
Merci de m’avoir lu, si vous avez des questions n’hésitez pas à les poster en commentaire.
Bonjour,
Je viens de lire, avec plaisir, votre étude sur la télécommande des prises Brico-dépot. Je ne peux malheureusement pas confectionner ce matériel. Par contre, je serais intéressé de connaître la possibilité de me procurer deux exemplaires supplémentaires de ces télécommandes.
Merci
Bonjour Christian,
le plus simple pour avoir des télécommandes supplémentaires est tout simplement d’acheter de nouveaux lots de prises en magasin.
Je ne crois pas que les télécommandes soient en vente séparément, mais le tarifs des lots n’étant pas exorbitant ça n’est pas un gros problème.
En prime cela fait des prises supplémentaires pour commander d’autres appareils.
Bonne journée,
David.
Bonjour David,
De mon coté je ne peux t’aider malheureusement mais toi peut être si tu le veux bien !
En effet j’ai acheté ce lot mais j’ai beau retourner et démonter les prises mais je ne vois pas comment choisit on le canal 1 ou 2 ?
Merci de m’aider s’il te plaît ?
Seb
Bonjour,
On ne peut pas choisir le Canal 1 ou 2 sur les prises, elles sont pré-réglées sur l’un ou l’autre.
Le Canal est indiqué sur l’étiquette entre le numéro de modèle et la référence (CH-1 ou CH-2).
En général un lot comporte deux prises sur le canal 1 et une prise sur le canal 2.
bonjour.
votre article m’a beaucoup intéressé.
est-il possible d’en connaitre la suite ?
cordialement
Bonjour,
il y a un second article montrant rapidement comment générer les trames à partir d’un micro-contrôleur.
Mais je n’ai malheureusement pas encore pris le temps de terminer la totalité du projet (commande via internet). Cela viendra certainement un jour, mais le temps me manque pour concrétiser toutes mes idées 😉
bonjour,
j’ai moi aussi acheté ces prises et je me suis demandé si on pouvait changer le canal en 1 ou 2.
je crois me souvenir que la difference se trouve au niveau d’une resistance CMS (resistance presente=canal1, pas de resistance=canal2 ou l’inverse)
il y a aussi d’autres emplacements libres pour des resistances qui permettent certainement de modifier le codage et ainsi avoir des prises qui ne fonctionnent qu’avec une seule et unique telecomande
Effectivement c’est très certainement en jouant sur la présence ou non de ces résistances qu’il doit être possible de sélectionner le canal.
Pour ma part ce ne sont pas des résistances, mais de simples fils coupés ou non qui jouent ce rôle.
salut,
post très intéressant.
J’ai démonté deux de mes prises car sur 3, j’en ai une qui s’allume mais ne s’éteint plus, une qui ne s’allume plus et une autre qui fonctionne bien mais qui lors quelle chauffe au bout de 30mn ne s’arrête plus !!
je pense qu’il y a un composant qui doit mal vieillir dans ces modules.
Quelqu’un aurait-il une piste ?
je n’hésiterai pas à publier si je trouve quelque chose.
P.S.: je les ai depuis plusieurs années quand même.