En raison de spams récurrents, les messages des nouveaux inscrits sont modérés a priori. Ne vous inquiétez pas si vous ne voyez pas apparaitre votre message immédiatement sur le forum. (November 04) x

Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5

Librairie RXB6 pour récepteur 433.92Mhz (DIO/Chacon/Home Easy)
#1

Bonjour à tous,

Comme promis voici ma première contribution à ce forum, une bibliothèque partagée écrite en "C" et qui permet de "Sniffer" les codes de télécommandes reçus avec un module RXB6 connecté à un rapsberry (3 ou 4).

Un peu d'historique:

Comme je suis entrain de développer un logiciel de Domotique autonome, j'avais besoins d'une interaction entre les télécommandes de la maison et le logiciel que j'écris.
L'ensemble de mes appareils actuels étant de marque Chacon/DIO ils utilisent les fréquences radio 433.92Mhz avec un protocole HomeEasy.(DIO 1.0).
J'ai donc acheté sur amazon un kit de trois émetteurs et de trois récepteurs sur cette fréquence.
Après quelques jours de recherche sur différents sites, j'ai réussi à envoyer des commandes depuis mon programmes vers des prises télécommandées via l'émetteur acheté. Tout a bien fonctionné.
Je me suis donc attaqué à la réception d'informations via le récepteur (codes des télécommandes, informations de retour via des capteurs sous le même protocole, etc...), et la c'est la cata. Aucun code reçu ou alors un vrai bazar et encore uniquement si la télécommande est à 2cms du récepteur.
Je suis donc reparti à la recherche d'informations sur les récepteurs pour m'apercevoir que si les émetteurs de cette gamme fonctionnent très bien, les récepteur sont par contre à la ramasse, pas fiable, pas performants, etc...
Me voila donc reparti sur Amazon ou je commande deux récepteur RXB6 réputés efficaces et performant, réception du colis, connexion et lancement de quelques utilitaires du style "Sniffer". Et la encore cata, pas de code reçus, ou alors uniquement les entêtes sans les commandes.
Comme je suis électronicien je me dis, il faut voir ce qui sort de ce foutu récepteur, re-petit tour sur internet, sur le site PIGPIO ou je découvre PISCOPE, un utilitaire qui permet de voir les signaux arrivant sur les pins du gpio en temps réel, et Ho! surprise, quand je branche le récepteur, il y a plus de trafic que dans une tour de contrôle.
Par contre quand j'appuie sur les touches de ma télécommande, le signal est propre et bien visible, par contre les timing (durées des impulsions) sont tous légèrement décalés, du coup les "Sniffers" que j'ai trouvé sur le net n'y retrouvent pas leurs petits.
J'en choisis un qui me semble mieux que les autres, et je commence a triturer les valeurs dans tous les sens, hélas, on change une valeur, on compile (c'est du c), on fait le lien, on test, ça marche pas donc on recommence. Etc....
Las de tout ça, je me lance donc dans l'écriture du programme, tant qu'à faire, je le fais sous forme d'une librairie partagée comme ça je peux l'utiliser avec mon langage de prédilection "Gambas Basic" pour faire une jolie interface.

Au final ça donne ça, une librairie partagée avec les fonctions qui vont bien pour récupérer les codes reçus, et les fonctions qui permettent de modifier les paramètres de façon intuitive, rapide, et sans re-compilation à chaque essai.

Je vous livre le source tel quel, et pour çeux qui ne savent pas voici comment compiler, et installer la librairie:

Pré-requis: la librairie pigpio doit être installée (en général elle l'est de base sur les dernières versions de raspbian) sinon:http://abyz.me.uk/rpi/pigpio/index.html.
librxb6.tar : Première archive à décompresser ou vous voulez (mais souvenez vous quand même ou Smile )
Vous devriez obtenir deux fichiers: librxb6.c et librxb6.h
ouvrez un shell et tapez ce qui suit:
cd /chemin vers ce que vous avez décompressé/
gcc -Wall -c "librxb6.c"        'Vous devriez obtenir un fichier librxb6.o dans le répertoire
gcc -o "librxb6.so" -shared "librxb6.o" -lpigpio 'la vous devez obtenir un fichier librxb6.so dans ce même répertoire
sudo cp "librxb6.so" /usr/lib/"librxb6.so" 'la la librairie est installée dans /usr/lib
sudo cp "librxb6.h" /usr/include/"librxb6.h" 'Et enfin le fichier include installé dans /usr/include.

Voila, la librairie est installée, toutes les fonctions sont décrites dans le fichier .h.

En prime la seconde archive contient le source complet du programme GAMBAS qui l'utilise (n'oubliez pas d'installer avant, GAMBAS en version 3.12 mini, c'est la version dispo pour raspbian, ça tombe bien).

Pour faire Fonctionner, décompressez l'archive dans un répertoire de votre choix.
(Gambas Basic doit être installé ainsi qu'une librairie QT5 ou GTK, Regardez dans l'installeur de logiciels).
Lancez Gambas Basic
Ouvrez le projet: Ouvrir un projet sur la première fenêtre de Gambas et choisissez le répertoire  ou vous avez décompressé (juste le répertoire pas obligé de sélectionner un fichier).
Allez dans le menu: Projet / Générer / Exécutable / Choisissez un nom et un répertoire de destination pour l'exécutable (la racine de votre dossier utilisateur c'est très bien ! )
fermez tout
ouvrez un shell
Faite un cd vers le dossier ou se trouve l'exécutable
Tapez:
sudo '/home/pi/dossier de l'exécutable/restart.gambas'

Le logiciel va se lancer, vous n'avez plus qu'à tester.

   

Testez et amusez vous bien.
PS: Une copie d'écran du programme gambas en cours de réception.

Amitié
Olivier COQUET


Pièces jointes
.tar librxb6.tar Taille : 20 Ko  Téléchargements : 3
.gz projet_de_base-0.0.137.tar.gz Taille : 35.66 Ko  Téléchargements : 1

Développements en:
C/C++/Gambas Basic/PHP - auto-entrepreneur toujours en recherche de clients (même petits Smile )
LIBRXB6 est une suite de librairies partagées gratuites sur Raspberry développées dans le cadre de projets commerciaux 
O.Coquet et Gambas Garden Factory
Répondre
#2

Très intéressant
👍
Répondre
#3

Merci,

La je bosse sur la compatibilité avec les sondes de température OTIO mais je galère pour trouver le protocole.

A noter que je suis sur un projet domotique, pour l'instant il fonctionne a merveille en commande et scénarii mais je voudrais qu'il soit aussi capable de recevoir des informations depuis des sondes (température, hygro, détecteurs de passage, d'ouverture, etc....).

Amitié
Olivier

(02-03-2021, 08:12:46)doudy a écrit :  Très intéressant
👍

Développements en:
C/C++/Gambas Basic/PHP - auto-entrepreneur toujours en recherche de clients (même petits Smile )
LIBRXB6 est une suite de librairies partagées gratuites sur Raspberry développées dans le cadre de projets commerciaux 
O.Coquet et Gambas Garden Factory
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)