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




Raspberry Pi : Construire un récepteur 433MHz

Catégories : Domotique, Geek, Informatique, Linux, Raspberry Pi · par 1 Avr 2020

Introduction

Dans un précédent article, j’avais abordé le contrôle de périphériques 433Mhz à l’aide d’un Raspberry Pi. Il était alors possible d’allumer ou d’éteindre divers prises ou récepteurs.

Nous allons voir ici qu’il est tout à fait possible de faire l’inverse et de recevoir des informations émises depuis une télécommande ou des appareils comme les détecteurs d’intrusions.

Malheureusement, cette fonction d’écoute permanente de la bande 433,92MHz consomme beaucoup de ressources processeur (aux alentours de 30% en permanence) et il est peut-être intéressant d’y consacrer un ancien RPi qui enverra une instruction générique en SSH à une autre RPi à chaque réception d’un signal.

Montage

Concernant le montage, je vous renvoie vers mon précédent article qui décrit les branchements du récepteur sur le Pi : https://www.fanjoe.be/?p=2301.

Ce module de réception peut se trouver pour quelques euros sur des sites comme Amazon : https://amzn.to/3bFSeEI.

Les antennes hélicoïdale peuvent simplifier le montage : https://amzn.to/2R3YEpo

Software

Installation

Pour la partie software, pareil, tout est expliqué sur l’autre article. On installe WiringPi et 433Utils.

Modifications

Une fois tout cela installé et testé, nous allons éditer le fichier /home/pi/433Utils/RPi_utils .

Nous allons supprimer la ligne :

printf("Received %i\n", mySwitch.getReceivedValue() );

Et la remplacer par ces lignes :

char command[150];
sprintf (command, "ssh pi@192.168.0.250 /home/pi/scripts/./receive-433-actions.sh %d", value);
// printf("Received %i\n", value );
system(command);
usleep(3000000); // Pause de 3 secondes

Ceci aura pour effet de déclencher le script receive-433-action.sh sur un autre Raspberry Pi (192.168.0.250).

La variable « value » contient le code émis par la télécommande et est passée en arguments dans le script.

Une fois les modifications terminées, on compile le code avec la commande make.

S’il n’y a pas d’erreur dans les modifications apportées au fichier, vous devriez obtenir le message ci-dessus.

Un exemple de script que vous pourriez utiliser :

#!/bin/bash

# $1 est le code émis reçu en argument par le script
case $1 in
   15037246) <Action pour ce code>
   ;;
   5845481) <Action pour ce code>
   ;;
   5440005) <Action pour ce code>
   ;;
   5440004) <Action pour ce code>
   ;;
esac

A chaque exécution du script, le code sera vérifié et une action sera déclenchée s’il correspond. Par exemple, envoyer une notification avec PushBullet.

Pour que la commande SSH passe sans mot de passe, il faudra utiliser une authentification par certificats : https://www.fanjoe.be/?p=1600.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.