Problématique du jour : comment utiliser le petit module de réception 433 MHz sur le Raspberry Pi, sans être pour autant coincé sur la seule réception ?

raspberry433

En bas à droite, récepteur 433 MHz

Je m’explique : ce petit récepteur est installé avec les outils 433Utils (procédure d’installation sur ce billet). Pour recevoir un code 433 MHz, la solution de base était de le récupérer via une simple commande :

sudo ./RFSniffer

chaque code reçu était alors affiché à l’écran du terminal, une méthode totalement inexploitable pour venir détecter le code, le comparer à une liste, et lancer des actions appropriées. Par exemple, je reçois le code 12345, je détecte qu’il s’agit de mon alarme incendie, je peux donc envoyer un email d’alerte. Avec le RFSniffer actuel, c’est impossible !

Nous allons donc légèrement modifier ce RFSniffer pour qu’il vienne enregistrer le code reçu dans un bête fichier .txt :

sudo su
nano ./RFSniffer.cpp

et modifions la partie qui se trouve sous } else:

//
// Sauvegarde du code recu dans /home/pi/recu.txt
//
          FILE *f = fopen(“/home/pi/recu.txt”, “w”);
fprintf(f, “%i”, value );
//
// Supprimez ou commentez la ligne ci dessous pour n avoir aucun affichage
//
//          printf(“recu %i/n”, value );
          fclose(f);

Lançons maintenant RFSniffer en tâche de fond :

./RFSniffer &

Il fonctionnera en permanence, et désormais tout code reçu se trouvera dans /home/pi/recu.txt, à vous alors de venir le récupérer. Si vous souhaitez interrompre RFSniffer, pensez à noter le nombre indiqué lors de son lancement en tâche de fond :

root@raspberrypi:~/433Utils/RPi_utils# ./RFSniffer &
[2] 2578
root@raspberrypi:~/433Utils/RPi_utils#

2578 ici, nous allons donc supprimer la tâche avec :

kill 2578

Si vous avez zappé ce nombre, exécutez la commande :

ps

et observez le résultat :

root@raspberrypi:~/433Utils/RPi_utils# ps
PID TTY          TIME CMD
2120 pts/0    00:00:00 sudo
2121 pts/0    00:00:00 su
2122 pts/0    00:00:01 bash
2578 pts/0    00:00:02 RFSniffer
2581 pts/0    00:00:00 ps
root@raspberrypi:~/433Utils/RPi_utils#

On identifie le processus RFSniffer, et son numéro de tâche : 2578 ! Simple non ? 🙂

CONCLUSION :

Il ne vous reste désormais plus qu’à écrire un script avec une boucle lisant /home/pi/recu.txt et exécutant certaines commandes selon le code reçu, et à lancer RFSniffer au démarrage de la Framboise bien entendu.

Au boulot 🙂