Mes passions, le boulots, mes coups de gueule...




Contrôler des prises radiocommandées avec un Raspberry Pi

Categorie : Domotique, Geek, Informatique, Raspberry Pi · par 7 Mar 2017

Introduction

Pour Noël, je me suis fait offrir un kit de 3 prises radiocommandées ON/OFF.
J’avais une petite idée en tête : les contrôler avec mon Raspberry Pi.

Matériel

Les prises

De nombreuses prises sont disponibles sur le marché en 433MHz. Il suffit généralement de rechercher la fréquence utilisée inscrite sur la boîte.

Les miennes sont de marque  Chacon en 433MHz ou plus précisément en 433,92MHz.

Équipements du Raspberry Pi

Il existe de nombreux émetteurs / récepteurs que l’on peut connecter au port GPIO du RPi. On les trouve pour 1 ou 2 euros sur des sites comme eBay, Amazon, AliExpress ou DealExtreme en recherchant les termes : « module 433MHz ».

Attention à bien choisir la fréquence parmi celles qui peuvent être proposées comme : 315MHz / 433MHz / 418MHz / 915MHz

La tension d’alimentation recommandée pour l’émetteur, indiquée sur certains sites, se situe dans une fourchette comprise entre 3,3V et 12V.

La portée de l’émetteur (à 5V) est d’environ 40m en intérieur et 100m en plein air.

Emetteur

J’ai opté pour un modèle FS1000A en 5 Volts dont les dimensions font 19mm x 19mm.

Les 3 pattes permettent d’y connecter :

  • GND : La masse (-)
  • VCC : L’alimentation positive (+5V)
  • DATA : Les données transmises

Le minuscule contact en cuivre permet de souder une antenne.

Récepteur

J’ai acheté le récepteur dans un combo émetteur/récepteur et je ne lui trouve pas de référence précise.

Ses dimensions sont de 30mm x 13mm.

Les 4 pattes permettent d’y connecter :

  • GND : La masse (-)
  • DATA : Les données reçues
  • DATA : Idem. On peut voir le pontage de ces 2 pins au verso du circuit imprimé
  • VCC : L’alimentation positive (+5V)

Antenne

L’antenne est soudée sur le connecteur comme indiqué ci-dessus.

Sa dimension respectera la norme du 1/4 d’onde.
C’est la longueur la plus classique et la meilleure des antennes fouet.

Longueur d’onde entière = vitesse de la lumière / fréquence
=> 300 000 / 433 = 693 mm
=> 1/4 d’onde = 173 mm

Notre antenne mesurera donc 17,3cm.

Pour améliorer encore l’émission ou la réception, il est possible de se procurer ce type d’antenne hélicoïdale pour quelques dizaines de centimes sur des sites chinois.

Connexion au Raspberry Pi

La connexion au RPi se fera selon le schéma suivant :

  • Le VCC (+5V) est connecté aux Pins 2 et 4.
  • La masse est connectée aux Pins 6 et 9.
  • Le DATA du récepteur est connecté à la Pin 13.
  • L’émetteur est connecté à la Pin 11.

Installation logicielle

WiringPi

Nous allons commencer par installer WiringPi :

WiringPi est une bibliothèque d’accès au GPIO écrite en C pour le processeur BCM2835 utilisé dans le Raspberry Pi.

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

433Utils

Ensuite, nous allons installer 433Utils :

433Kit est une collection de codes et de documentations conçue pour connecter et utiliser des modules d’émission et de réception RF 433MHz avec des cartes Arduino et/ou Rapberry Pi.

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

Utilisation de 433Utils

Vérifiez que vous êtes toujours dans le dossier ~/433Utils/RPi_utils :

$ cd ~/433Utils/RPi_utils

Recevoir les codes

Pour recevoir le code spécifique à chaque touche de la télécommande, nous allons exécuter la commande suivante :

$ ./RFSniffer

Une fois la commande exécutée, approchez la télécommande du Raspberry Pi et pressez-y un des boutons durant plusieurs secondes.

Le code de ce bouton apparait.

Attention aux premiers et derniers codes qui peuvent être erronés à cause de la partie tronquée du massage reçu.

Pour interrompre la boucle, pressez Ctrl+C.

Emettre un code

Pour émettre un code, nous utiliserons la commande :

$ ./codesend xxxxxxx

Où les x représentent les 7 chiffres capturés à l’étape précédente.

Exemple pour cloner le bouton capturé juste avant :

$ ./codesend 5326165

Remarques

Chez moi, la portée de réception est relativement réduite (quelques dizaines de centimètres), même avec une antenne 1/4 d’onde correctement soudée.
Il s’agit peut-être d’un problème de qualité d’alimentation et/ou de parasites transmis par le RPi.
On se souvient que la sortie jack audio subit un bruit de fond important.

Par contre, la portée d’émission avec l’alimentation 5V prise sur le GPIO suffit pour une bonne dizaine de mètres au-travers des murs de mon appartement.

La technique vue ici ne s’applique pas aux dispositifs utilisant le rolling code (voiture, porte de garage, portail, …) où les codes changent à chaque pression d’un même bouton sur la télécommande.

Laisser un commentaire