Raspberry Pi B+ : télécommande 433 MHz universelle

Le Raspberry Pi est une plateforme parfaite pour développer de la domotique. Aujourd’hui, voyons comment lui faire reconnaitre un code de télécommande 433 MHz, et comment reproduire ce code en émission.

Commençons par identifier les sorties GPIO de la bestiole :

raspberryBPLUS_header
La broche 1 est celle située la plus près de la LED rouge d’alimentation. Nous allons donc utiliser les broches 2 et 4 pour le +5V nécessaire aux modules 433 MHz, les broches Ground pour la masse (GND) des modules. Les broches 11 et 13 seront utilisées respectivement pour les datas en émission (11) et réception (13).

raspberry_domo_433

Raccordement des modules Tx / Rx 433 MHz

Sur l’image du montage, le module Tx se trouve en haut, le module Rx en bas à gauche, contre la télécommande Phenix.

Occupons-nous maintenant d’installer les gestionnaires, toujours en mode superutilisateur (sudo su depuis une connexion ssh).

Installation de WiringPi :

cd ~/
git clone git://git.drogon.net/wiringPi
cd wiringPi
./build

Installation de 433Utils :

cd ~/
git clone git://github.com/ninjablocks/433Utils.git
cd 433Utils/RPi_utils
make

Nous voici désormais munis de tous les outils pour recevoir et émettre des trames 433 MHz, mais attention, seulement sans Rolling Code, c’est à dire des télécommandes basiques, non cryptées.

Recevoir les codes :

Pour recevoir les codes, lancez la commande :

sudo ./RFSniffer

Une fois le code reçu, vous le verrez s’afficher à l’écran. Notez le pour une utilisation ultérieure.

Emettre un code :

L’émission d’un code est simple :

sudo ./codesend 12345

pour émettre le code 12345.

Ce petit montage, simplifié à l’extrême, va donc vous permettre de venir automatiser une télécommande existante, à condition que cette dernière ne soit pas sécurisée par rolling code. A vous donc l’activation à distance via une petite interface Web, la programmation d’allumage ou d’extinction en fonction des heures via un crontab, l’activation sur détection de mouvement, etc. Comme toujours avec la Framboise, tout est possible, tout est envisageable.

 

Aller plus loin : la réception 433 MHz en tâche de fond avec 433Utils et RFSniffer

 

37 réflexions sur « Raspberry Pi B+ : télécommande 433 MHz universelle »

    1. blog Auteur de l’article

      oui, ça ne marchera pas. Solution : canibaliser une télécommande et venir remplacer l’appui sur les boutons par des relais, avec PiFace par ex. Ca marche, je l’ai fait ici avec succès.

  1. xhark

    Le prix… bon c’est le premier module compatible Somfy RTS donc on ne peut pas leur jetter la pierre 🙂

    1. blog Auteur de l’article

      tu vas le prendre ? Ca m’intéresse un retour sur le Pi, solution à creuser pour ce type de télécom.

  2. Emmanuel

    Bonjour
    J’essaye depuis un moment d’utiliser le recepteur en alimentant en 5V, mais mon GPIO n’apprecie pas trop de recevoir le signal en 5V.
    il fonctionne parfaitement avec le 3,3v, mais la portée est de qqes metres maxi

    ça fonctionne sans pb sur le B+ ?
    Les GPIO sont protégés ?

    Merci

    1. blog Auteur de l’article

      Sur le B+ oui, cela fonctionne. Le test a pour le moment été mis de côté, mais la platine sert tous les jours à télécommander des lampes.
      La protection du GPIO, là par contre pas d’infos, mais tel que le branchement a été effectué rien n’a grillé pour le moment 🙂

  3. Ping : Raspberry Pi : télécommande 433 MHz, domotique…suite… | F6AIU

  4. Romeo

    Bonjour,

    est-il possible de lancer dans une fenêtre une commande
    sudo ./RFSniffer

    et de lancer dans une autre fenêtre commande
    sudo ./codesend 12345

    Je demande cela pour savoir s’il est possible de tester facilement mon émetteur et récepteur.

    J’attends avec impatience votre réponse.

    1. blog Auteur de l’article

      oui, mais le plus simple est de lancer la réception en tâche de fond je pense : sudo ./RFSniffer &

      On reçoit alors un chiffre en retour, à noter : kill chiffre ensuite pour supprimer la tâche de fond (ex : kill 12345)

    1. blog Auteur de l’article

      bien penser à ajouter une antenne sur les platines, sinon la portée sera vraiment TRES réduite 😉

  5. Romeo

    Super, je viens de tester et cela fonctionne.
    Pour tous les lecteurs, l’antenne est très très importante. Cela fait 2 jours que j’essaye sans succès avec une antenne et en pointant ma télécommande à côté.

    Mon bout de cuivre devrait être mal mis sur mon circuit imprimé 🙂

    Et oui, nous pouvons envoyer et recevoir en même temps et ainsi tester notre récepteur et émetteur.

    1. blog Auteur de l’article

      maintenant le plus dur sera de recevoir le code, de le capturer et de l’interpréter, car RFSniffer ne fait que l’afficher si on ne modifie pas un peu.

  6. Ping : Blog WiFi / Wimax / 3G / 4G / Vidéo sans fil – Raspberry Pi : un clignotant 433 MHz

  7. hervé

    bonjour a tous, je voulais vous remercier pour ce tuto, mais je ne comprends pas, aurait-il une erreur ? car vous dites :
    « La broche 1 est celle située la plus près de la LED rouge d’alimentation. Nous allons donc utiliser les broches 2 et 4 pour le +5V nécessaire aux modules 433 MHz,  » <== ok
    les broches Ground pour la masse (GND) des modules.<== ok
    Les broches 11 et 13 seront utilisées respectivement pour les datas en émission (9) et réception (13). <== Non 9 est un ground ? est-ce une erreur ?

    MErci

  8. hervé

    Non Merci a Toi, mais j’ai encore une question je possède des prise Di-o de chacon mais je ne peux pas sélectionner les codes via des curseurs, comment je peux récupérer le code des télécommandes, sachant que j’utilise la centrale myfox qui commande les prises ?

    Merci

    1. blog Auteur de l’article

      J’ai un peu regardé les prises et modules Di-o de Chacon, et j’ai compilé la commande que j’ai indiquée précédemment : cela semble fonctionner à priori, même si je n’ai pas ces modules pour le moment, l’émission se fait bien sur mon module :

      sudo /root/wiringPi/send 0 1234564 1 on
      Let’s start dude…
      ON Signal
      root@raspberrypi:~/wiringPi#

      Je testerai plus tard, car les modules miniatures me plaisent bien, et j’ai envie de jouer un peu avec.

  9. Ping : Blog WiFi / Wimax / 3G / 4G / Vidéo sans fil – Domotique sur Raspberry Pi : détecter le facteur !

  10. Anthony

    bonjour,
    Merci pour l’article c’est ce que je chercher a faire.
    Mais n’y a t’il pas un moyen d’executer codesend sans avoir recourt au sudo ?
    C’est pour l’utiliser dans un script .

    Merci,

    1. blog Auteur de l’article

      eh bien dans un script pourquoi ne pas mettre « sudo codesend xxxxxx » justement ? Quel est le soucis ?

  11. Anthony

    pour éviter le mot de passe, mais je me suis rendu compte qu’il n’y en a pas besoin.
    Par contre je veux faire un script qui lance  » codesend 1381717  » et je c’a ne fonctionne pas. si dans mon terminal je lance la commande  » codesend 1381717  » depuis le répertoire de mon script elle fonctionne, mais pas le script. Ç’a fait déjà un moment que j’y suis sans trouver.

    1. blog Auteur de l’article

      chmod +x script.sh a bien été fait ? Sinon chmod 777 script.sh au pire pour tester, sans doute une question de permissions sur le fichier. Autre solution, indiquer le chemin complet : sudo /root/433Utils/etcetc/codesend xxxxx par exemple

  12. Romeo

    Si tu lances ton script depuis une page php, il faut te mettre les bon droits sur le serveur Apache.

    sudo echo « apache ALL=(ALL) NOPASSWD: ALL » >> /etc/sudoers

  13. Anthony

    le $PATH n’était pas bon.
    je le changé que pour ma session et pas définitivement. Il ne me reste plus qu’a comprendre comment fonctionne le plugin Callbacks2 pour automatisé l’allumage et l’extinction de l’éclairage quand je démarre une vidéo.

  14. Rastapopoupi

    Salut.
    D’abord merci pour ce partage. C’est bien utile.
    Ceci dit quelque chose m’intrigue. En effet, j’ai suivi la procédure à la lettre (me semble-t-il), pourtant il m’est impossible de sniffer le code de ma télécommande chacon.
    Il faut noter que j’ai testé mon récepteur en envoyant un signal via l’émetteur couplé et je reçois parfaitement le code.
    Pourquoi m’est-il impossible de recevoir le code de ma télécommande? Quelqu’un a-t-il une idée?

  15. Rastapopoupi

    Merci pour la réponse.
    Si je comprends bien c’est une carte qui mémorise le code et le renvoie? Si c’est bien le cas pourrais-je, avec cette méthode, déterminer tout de même le code afin de ne pas dépendre de cette carte avec mode apprentissage?
    Je ne sais pas si je suis clair.

    1. blog Auteur de l’article

      rien compris 🙂 Cf le lien, il explique comment émettre le bon code. Pour recevoir, je n’ai par contre pas d’infos.

  16. Rastapopoupi

    Merci.
    J’ai récupérer le code via un autre programme sur le blog idleman.
    Encore merci.

  17. olivotu

    Bonjour,
    D’abord merci pour cet article.

    Où puis-je trouver les modules Tx et Rx que vous avez utilisés? Quelle est leur marque/modèle?

    Merci d’avance.

Les commentaires sont fermés.