Archives du blog

Cloner une télécommande Radio Fréquence (433MHz) – Part 1 – Acquisition

La domotique arrive de plus en plus dans nos foyers, depuis des années j’avais des prises commandées par radio fréquence mais je ne les utilisaient pas car la télécommande n’était pas assez puissante (et pourtant je n’ai pas un château 😦 ). De plus j’ai toujours trouvé inconfortable de chercher la télécommande a chance fois que je veux allumer la lumière (n’avez vous jamais remarqué la timidité de ces dernières ? La preuve elles adorent se cacher derrière les coussins 😉 )

Bref j’avais dans l’idée de cloner ces télécommandes, voir d’automatiser tout ça (avec des capteurs de présence, via des « crontab », via commande vocale, …).

Les télécommandes auxquelles j’ai décidé de m’attaquer sont basées sur la fréquence 433MHz.
Coté matériel, j’ai trouvé des kits émetteur + récepteur pour un prix dérisoire via e-bay (4€ les 5 kits).
[pour ceux qui cherchent la référence on doit en trouver avec ce genre de recherche « 433Mhz RF transmitter receiver kit » ]

433Mhz emetteur-recepteur

433Mhz emetteur-recepteur

Première étape : voir à quoi on a affaire

montage

J’ai trouvé un montage d’une grand simplicité qui permet de « lire » le signal à partir d’un bête PC sans matériel coûteux.
Pour ce faire j’utilise un simple montage trouvé sur http://davehouston.net/learn.htm.
Le schéma à utiliser est le suivant :

Recepteur RF vers Line-In

Recepteur RF vers Line-In

Au niveau de l’alimentation j’utilise une alimentation variable. Du coup j’ai pu tester la réception entre 5 et 9V, je me suis fixé vers 8V ce qui affaibli le nombre de parasites reçus. Pour mes tests je n’ai pas branché d’antenne sur le récepteur, je préfères éviter de récupérer les signaux de tout le quartier 😉

Dans mes recherches je suis tombé sur une phrase concernant les jack, le fil Rouge serait toujours la voie de Droite (Right Red), si ça se confirme ça peut éviter de faire des tests pour trouver le bon câblage. (sur celui que j’ai récupéré Jaune : GND, Rouge : Droite, Bleu : Gauche. À voir si l’axiome RedRight est vérifié ailleurs ). Chez moi les deux fils (rouge et bleu) ont été joints, certains considèrent qu’on peut enregistrer deux signaux en parallèle (deux sources), moi je n’en ai pas besoin, donc on joint ;).

Audacity

Une fois le cablage vérifié (vérifiez deux fois, une boulette est si vite arrivée, je nierais avoir eu connaissance de vos actes en cas d’explosion de votre carte son) et le jack branché sur l’entré Ligne ( Line-In PAS le microphone, je ne sais pas si ça fait tout exploser mais mes sources étaient claires, ce montage est pour l’entrée Line-In !), lancez Audacity;
Ce programme est un enregistreur de son avec la possibilité de visualiser le son sous forme d’ondes. Et c’est exactement ce dont nous avons besoin ici !

Donc lançons l’enregistrement (je répète pour les deux du fonds qui discutent : en sélectionnant l’entrée Ligne ) et appuyons sur une touche de notre télécommande.
Un signal devrait apparaître, zoomez dessus :
Audacity_049

J’ai mis des 0 et des 1 pour bien comprendre ce qu’on voit. La télécommande utilise un codage (Manchester ?) où chaque bit est représenté sous forme d’un « escalier » entre un front haut et un front bas. La durée de ce front haut défini si c’est un « 1 » (front haut long) ou si c’est un « 0 » (front haut court).
Dans l’exemple pris ici nous avons une trame binaire 011111111111100101101, chaque bouton de ma télécommande envoi une trame différente.

Zoomons encore, cette fois en prenant un « 1 » et un « 0 » (idéalement, mais ça m’étonnerais que vous n’ayez pas un 1 à coté d’un 0 au moins une fois).
Le but cette fois va être de comprendre le protocole Radio Fréquence utilisé ici. Je n’ai pas la savoir pour expliquer ici les différentes méthodes existantes, mais j’ai compris qu’au moins ici c’est la durée de chaque front qui doit être mesuré.

Pour facilité l’analyse j’ai demandé à Audacity d’afficher par « sample » et non en millisecondes, un front durant quelques centaines de µs.

Mesure des temps de chaque front

Mesure des temps de chaque front


Dans l’exemple ci-dessus j’ai sélectionné le front haut du « 1 » et l’ai mesuré à 55 « échantillons ». Sachant que j’ai échantillonné à 44100Hz, il y a donc 44100 échantillons dans une seconde. Sortez vos calculettes, ce front haut dure donc ? Allez un effort … 55/44100 soit 0,001247166s soit 1.247ms. J’ai recommencé les mesures pour le front bas du « 1 » et les deux fronts du « 0 ». J’ai noté ces résultats précieusement ils seront utiles dans la partie suivante où l’on va se mettre à émettre des trames.

Suite dans la partie 2

Documentation :
http://davehouston.net/learn.htm
http://rayshobby.net/?p=3381
http://www.homautomation.org/2014/03/02/433mhtz-rf-communication-between-arduino-and-raspberry-pi-arduino-as-receiver/

Publicités