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

Librairie (Générique) RXB6 pour récepteur 433.92Mhz
#1

Pour faire suite à mes deux précédentes réalisations, j'ai décidé de m'atteler à une nouvelle tâche: la création d'une librairie "Générique " qui permettait de récupérer les trames d'informations reçues sur un module RXB6 et de les mettre à disposition du programme appelant la librairie, en parallèle, il faudrait aussi avoir la possibilité d'émettre des trames d'informations quel qu’en soit la forme et le protocole (les outils existants dans ce domaine sont assez limités et n'acceptent qu'un protocole).

Cela sous-entend plusieurs choses:

- Etre capable d'éliminer le "bruit de fond" en d'autres termes les parasites radio.
- Comparer les trames reçues à une ou plusieurs "matrices" décrivant le protocole utilisé.
- Décoder les trames reçues sous forme de données brutes non interprétées (suite de bits tel-quel).
- Mettre ces informations à disposition du programme appelant dans un buffer de données consultable à la demande.
- Recevoir une chaîne de bits depuis le programme appelant et les transmettre via un module émetteur selon une matrice de protocole.
- Ne pas monopoliser trop de ressources processeur durant l'écoute.
- Faire tout ceci en temps réel.

Voila, je pense que ça va être un peu plus compliqué que les deux librairies précédentes, mais ça en vaut la peine car avec une telle librairie on pourra écouter à peu près n'importe quoi dès lors que l'on aura créé la matrice (ce qui est facile avec la visualisation des trames sous piscope).

Je vous tiens au courant de l'évolutions des choses en temps réel ici.
Amitié à tous.
Olivier Coquet

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

Bonjour à tous,

Afin de donner des idées à ceux qui voudront développer quelque-chose de similaire, par exemple avec des récepteurs radio sur d'autres fréquences, j'ai décidé d'exposer ici ma méthode de travail. Je vais donc décrire pas à pas les différentes étapes de création de cette librairie partagée.

1 ère étape: les outils que j'utilise:

Le matériel:
- Un Raspberry pi 4b 4G (config idéale pour faire tourner les logiciels adéquats)
- Un écran 23" (à mon age les yeux c'est plus ça Smile )
- Un clavier et une sourie sans fil (c'est plus pratique)
- Un récepteur RXB6 433.92 mhz (la paire est à un peu moins de 10€ sur Amazon)
- Un Émetteur 433.92 mhz (9€ les trois sur Amazon)
- Un disque USB3 pur le boot et le stockage (plus fiable qu'une carte sd)
- Un carnet pour prendre des notes (moi quand j'écris je pense !)

Les logiciels:
- Un Raspbian à jour, ça s'impose (la version 32 bits est stable en attendant la 64).
- Le compilateur gcc (de base sur raspbian).
- Gambas Basic 3.12 (version officielle sur raspbian, plus pratique pour réaliser les interfaces utilisateurs).
- Code::Block version 17.12 (pour programmer en C, j'ai pas trouvé mieux).

Voila, l'atelier est en place, je reprendrais le clavier cet après-midi pour décrire le montage électronique (simple) des émetteurs et récepteurs.
Amitié à tous.
Olivier Coquet

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
#3

Bonjour à tous,

Bon, aujourd'hui on met les mains dans le cambouis, Voici donc les deux modules que nous allons ajouter à notre Raspberry.

Le module récepteur RXB6 (le grand long a gauche) qu'on trouve sur Amazon aux alentours de 4€ pièce (en général ils sont vendus par deux).
Et le module émetteur (le petit carré à droite)  idem sur Amazon pour environ 2€ (souvent vendus par trois).
   

Voici le câblage de chacun:
RXB6 (récepteur)
   

A la patte 1, soudez une antenne (généralement un petit boudin de cuivre fourni avec, vérifiez au moment de l'achat qu'ils sont bien fournis).
A la patte 5 reliez au +3.3v du raspberry  (surtout pas au 5.5v)
A la patte 6 et 7 reliez au port gpio 27 du raspberry
A la patte 8 reliez au gnd du raspberry.

Emetteur 433.92mhz
   

A la pate (ATAD) reliez au gpio 17 du raspberry
A la patte VCC reliez au +5.5v du raspberry
A la patte GND reliez a une patte gnd du gpio du raspberry.

Et enfin le brochage du gpio du raspberry pour pas se gourer de patte.
   

Voila, tout y est, y'a plus qu'à.
Bon à savoir, à partir de cet instant et si tout est bien connecté, le gpio 27 du raspberry reçois en permanence des signaux issus du rxb6 et qui correspondent à des parasites, et faites moi confiance, il y en a beaucoup.

Mon prochain message concernera la réception de ces signaux et l'élimination au mieux des signaux parasites.

Amitié à tous
Olivier Coquet

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
#4

Bonjour à tous,

Petit message du we pour vous tenir au courant, un souci de carte sd m'a obligé à m'embarquer dans le passage du rpi avec boot sur ssd usb3 et bien sur une tonne de galères avant de trouver pourquoi ça ne voulait pas booter Smile

Maintenant ça marche et ma librairie avance un peu, je vous fais la suite de mon article demain dans la journée.

Bon week-end à tous
Olivier Coquet

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
#5

Bonjour.

Pour la réalisation de la librairie, nous reprenons tout à zéro.
On est ici dans le cadre d'une librairie évolutive, on doit donc pouvoir ajouter différents protocoles qui peuvent à tout moment s'entre-croiser. La précision est donc de mise si on veut des résultats intéressants.

Voici donc la première analyse du signal d'une télécommande DIO1.0 vue avec Piscope sur le port gpio27 via un récepteur RXB6.
   

Si on regarde attentivement, les informations sont envoyées par paquet précédés de deux signaux particuliers.
Le premier, d'une durée de 250µs au niveau haut et 9000µs au niveau bas est suivi d'un second (synchro) d'une durée de 250µs au niveau haut et de 2650µs au niveau bas.
Suivent les bits codés avec niveau haut/niveau bas, on s'en occupera plus tard.
La chose la plus importante est cette séquence de préambule, en effet dans ma première librairie, je ne m'occupais pas du signal de 9000µs, je partais du principe que la synchro suffisait, sauf que la on développe une librairie qui est censée détecter plusieurs types de protocole, il est donc important de tenir compte de tout ce qui peut différencier un protocole d'un autre.

Voici la seconde analyse, le signal émis par une sonde de température OTIO S606(tx):
   

On constate cette fois ci que les informations sont toujours envoyées par paquet précédés de deux signaux particuliers:
Chaque paquet est précédé de deux signaux de 525µs niveau haut et 8000µs niveau bas.

Avec cette analyse, nous savons différentier trois choses:

Tout ce qui n'est pas compris dans l'un de ces signaux est 
soit du bruit(parasites)
Soit des restes d'un paquet dont on a pas le début.
Soit un autre protocole.

Tout ce qui est compris dans l'un de ces signaux est potentiellement le début d'un des deux protocoles décrits. Il faut donc voir le signal qui suit pour l'identifier.

Tout ce qui est exactement l'un des deux motifs complet est un paquet dont on peut clairement identifier le protocole.

Nous avons donc trouvé le moyen d'identifier de manière sure un protocole. (et accessoirement d'éliminer tout (parasites/bruit) ce qui ne nous intéresse pas ! )

Dans l'article qui suivra cet après-midi, je décrirais le début de l'écriture de la "carcasse de la librairie" ainsi que la manière dont nous décrirons les protocoles, sachant que cette manière doit être suffisamment générique pour être commune à tous les protocoles que nous voudrons identifier.

Voila, maintenant je vais me prendre un café Smile
amitié à tous
Olivier Coquet

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
#6

Bonjour à tous,

Petit message pour vous dire que je ne vous oublie pas pour la suite mais j'ai bien galéré pour les algorithmes de la librairie et je voulais impérativement avancer dessus.

A demain pour la suite.

Amitié à tous.
Olivier Coquet

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
#7

Bonjour,

Bon, oui, je sais, j'ai plein de retard, mais les clients se réveillent du coup j'ai moins de temps, de plus, je me suis aperçu que vous faire partager mes galères n'est pas des plus pédagogique Smile

Du coup, j'ai voulu emmener ma librairie au bout avant de vous décrire comment faire, mais ça y' est presque, elle fonctionne !

De plus, je travaille en parallèle sur un logiciel (enfin un ensemble) domotique qui est déjà bien avancé, ça aussi je vous le décrirais dans un autre thread.

je reviens vers vous très vite.
Amitié
Olivier Coquet

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)