[TUTORIEL] Récupérer des codes 433.92 Mhz (maj)

Forum d'échange autour du Raspberry-Pi

[TUTORIEL] Récupérer des codes 433.92 Mhz (maj)

Message non lude kelav » Jeu 24 Jan 2013 20:36

Comment récupérer des codes émis par une télécommande en 433.92 Mhz

Pas la peine d'essayer de récupérer des codes de clés de voiture ou de portails, il y a de fortes chances qu'il soit protégés contre le Replay (qui consiste à rejouer un code)

EDIT: Sinon en VACHEMENT plus simple vous pouvez utiliser cette bibliothèque
http://code.google.com/p/rc-switch/
Dans les exemples il y a deux codes receive_demo_advance et receive_demo_simple qui affichera le code des télécommandes sur le Moniteur série
Image


Ce tutoriel est basé sur l'article sur la "Home Automation" du magpi 8 http://www.themagpi.com/view/?issue=8

Matériel nécessaire

- Un récepteur 433.92Mhz
http://snootlab.com/composants/145-recepteur-rf-434-mhz.html

- Un Jack 3,5 mm
Image

- Une résistance 1MOhm
http://snootlab.com/composants/193-resistances-1-mohms-5-1-4w.html

Logiciel nécessaire
Audacity
http://audacity.sourceforge.net/download/?lang=fr

Partie électronique

Il va tout d'abord falloir sacrifier votre jack en dénudant une des deux parties
Vous devriez vous retrouver avec un câble rouge et un câble blanc recouvert de pleins de petits fils , vous pouvez vous débarrasser de ces petits fils , il va vous falloir uniquement le câble blanc.

Image

D'habitude le câble blanc est la terre , ici ce n'est pas le cas:
Le rouge est la droite (Conseil mnémotechnique du zikos: Rouge -> Right -> Droite)
Le blanc est la gauche
En effet le câble sont en stéréo.

Evidemment pour "écouter" les ondes radio, vous n'aurez besoin que d'un seul des deux câbles (le blanc je vous explique pourquoi après...)

Quatres petites choses avant de continuer:
- Il est conseillé de mettre un peu de soudure sur les câbles afin d'éviter d’abîmer la breadboard et d'en faciliter les branchements
- vous n'avez pas besoin de brancher la partie droite du récepteur.
- Ça marche aussi en 3.3V
- Vous n'êtes pas obligé d'utiliser un arduino il ne sert ici qu'à alimenter le récepteur (Un raspberry PI peut très bien faire l'affaire par ex)

Voici les branchements
Image

La partie Informatique

- Brancher le jack sur l'entrée Micro (Rouge, Rose ... selon les ordinateurs)
- Lancer Audacity (ou votre logiciel d'enregistrement audio préféré)
- Appuyer sur le gros bouton rouge.

Je vous disais précédemment de brancher le câble blanc et pas le rouge.
Lorsque je branche le câble rouge j'obtiens ça (en zoomant grâce à ctrl + la molette de la souris)
Image
Mauvaise nouvelle l'enregistrement est raté.

Avec le blanc j'obtiens cela.
Image
Vous avez enregistrer votre code!

Je ne sais pas pourquoi c'est le cas...

Analyser le code
Il va vous falloir beaucoup de rigueur surtout si vous avez plusieurs codes à récupérer, c'est très fatiguant et les erreurs se font rapidement. Préparer vous un répertoire et garder le fichier son, une capture d'écran, un fichier texte avec les codes, comme cela vous aurez toujours de quoi revérifier si vous ne vous êtes pas trompez.

Je n'ai pas fait d'analyse sur de nombreux codes, mais j'ai constaté qu'il commence toujours par un bloc de 0 et finissent par un bloc de 0:
Comme ici:
Image
Donc il vous faut découper cette partie du son (ctrl-c) et la recopier dans un nouveau fichier (ctrl-n ctrl-v)

Voici comment analyser votre fichier son, dans mon cas seul trois 0 suffisaient pour les blocs du début et de fin (mais c'est purement arbitraire)
Image

Si vous avez l'inverse (les blocs du début sont haut), il se peut que tout soit inversé (Encore une fois je ne sais pas pourquoi, lorsque je l'avais fait c'était le cas mais là en faisant le tutoriel tout est dans le bon sens)
Image
Le même code qu'en haut mais à l'envers (et sur adobe audition)

Recherche du delai et Test
Donc vous avez passer 5 heures à recopier bêtement des codes en disant à haute voix "001100 ... 1 mince j'en suis à où là?", toute personne proche de vous commence à se demander si vous êtes devenu un robot ou si vous êtes dans la matrix. Vous êtes sur la bonne voie!

Vous imaginez surement que tout est fini, mais malheureusement il vous reste la dernière partie qui est la plus ... frustrante ...

En effet savoir quel code envoie votre télécommande est une bonne chose mais encore faut-il savoir à quel vitesse elle envoie le code.
Résultat il n'y a pas de moyen de vérifier rapidement si vos codes sont juste...

Je vais passer assez rapidement sur comment j'ai fait, en vérité l'idéal serait de faire un code pour tester en changeant le délai automatique à chaque envoi du message.

Je peux vous trouver le délai pour vous sinon, il vous suffit de poster les images/fichiers sons en réponse

Nous allons faire nos tests sur le Raspberry PI
Pour cela il va nous falloir mon code
(cf http://forum.snootlab.com/viewtopic.php?f=46&t=767)

Vous pouvez le récupérer en faisant
Code: Tout sélectionner
wget https://raw.github.com/maditnerd/433wirelessPI/master/rpi/scs_s3162.cpp

Vous pouvez le visionner ici:
https://github.com/maditnerd/433wirelessPI/blob/master/rpi/scs_s3162.cpp

- Remplacer le code par le votre dans strcpy(code,"")
L70:
Code: Tout sélectionner
// A1
         case '1':
            switch(argv[2][0]){
            case '0':
            strcpy(code,"0001001001001101001101001101001101001101001101001101001101001001101101001001000");


Et en fin du code (l562)
Code: Tout sélectionner
sleeptime.tv_nsec = 550000; // Delay of SCS s3616 outlet


Changer le délai afin de trouver le votre, le délai est en nanosecondes (ici c'est 5.5ms), je vous conseille d'essayer par cran de 0.5ms.

La procédure pour savoir si vous toucher au but:

- Idéalement garder votre montage du début et lancer l'enregistrement audio

- Compiler le programme
Code: Tout sélectionner
gcc -o scs_s3162 scs_s3162.cpp


- Lancer le programme
Code: Tout sélectionner
./scs_s3162 a1 1


- Comparer le fichier audio pris avec la télécommande, avec celui que vous venez d'enregistrer avec votre raspberry PI

Il faut vraiment couper précisément les deux fichiers pour vérifier la synchro, du coup il vaut mieux tester en incrémentant le délai au fur et à mesure en priant que le constructeur n'a pas mis un délai étrange.

Voilà désolé de pas être plus exhaustif sur la fin, je reviendrais sur le tuto avec de quoi tester le code plus facilement quand j'aurais le temps (Je vous empèche pas de le faire vous même si vous voulez :mrgreen: )

Dans tout les cas, n'hésiter pas à partager vos trouvailles !

Bon courage!
Dernière édition par kelav le Mer 14 Aoû 2013 19:51, édité 3 fois.
Pour plus d'infos ! une seul adresse
http://smarturl.it/remi
kelav
 
Messages: 51
Inscription: Jeu 29 Nov 2012 19:00
Localisation: Montpellier

Re: [TUTORIEL] Récupérer des codes 433.92 Mhz

Message non lude phil » Ven 25 Jan 2013 10:21

pas bête du tout d'utiliser un logiciel audio pour "regarder" les codes !!!
Merci et bravo pour le tuto !!!
all your shields are belong to us...
Avatar de l’utilisateur
phil
 
Messages: 192
Inscription: Mer 7 Sep 2011 11:19

Re: [TUTORIEL] Récupérer des codes 433.92 Mhz

Message non lude Galen » Lun 28 Jan 2013 13:48

Pour compléter il existe ce soft http://wiki.nethome.nu/doku.php/analyzer/start

qui remplace audacity et a quelques avantages voir les codes bruts ou décodés suivant quelques protocoles

cela peut donner un bon coup de main
Galen
 
Messages: 2
Inscription: Lun 28 Jan 2013 13:45

Re: [TUTORIEL] Récupérer des codes 433.92 Mhz

Message non lude kelav » Mer 30 Jan 2013 10:58

Excellent ce programme, faut que je teste ça. Merci pour le lien!
Pour plus d'infos ! une seul adresse
http://smarturl.it/remi
kelav
 
Messages: 51
Inscription: Jeu 29 Nov 2012 19:00
Localisation: Montpellier

Re: [TUTORIEL] Récupérer des codes 433.92 Mhz

Message non lude Galen » Mer 30 Jan 2013 12:05

De rien pour le lien

J'avoue que je me bats un peu avec mon raspberry pour qu'il recupere les infos de mes sondes oregon :)

enfin je me bats le truc c'est que je suis grand debutant dans le domaine ...bref je part depuis le sable et je rame encore :)

pour tant j'ai l'impression que j'ai toute les infos :
http://www.raspberrypi.org/phpBB3/viewt ... 17#p237517 en bas de page un bout de code qui a mon avis devrait faire le truc
http://www.altelectronics.co.uk/oregon- ... -protocol/
la doc avec toutes les infos
bref j'ai encore beaucoup a apprendre

donc merci à tous de partager vos infos cela aide
Galen
 
Messages: 2
Inscription: Lun 28 Jan 2013 13:45

Re: [TUTORIEL] Récupérer des codes 433.92 Mhz

Message non lude cpolos » Mar 12 Mar 2013 23:20

Salut !

J'ai suivi ton tuto et je me retrouve avec un signal brouillé avec du bruit et pas du tout clair comme le tien :

http://www.hostingpics.net/viewer.php?i ... Signal.png
On voit le signal à décoder au milieu avec une légère augmentation

J'essaye d'analyser le signal de ces prises :
http://scs-laboutique.com/Electricite/C ... mmande-566


Tu aurais un conseil ? :geek:
cpolos
 
Messages: 5
Inscription: Mer 26 Déc 2012 12:14

Re: [TUTORIEL] Récupérer des codes 433.92 Mhz

Message non lude kelav » Jeu 14 Mar 2013 15:12

'ai suivi ton tuto et je me retrouve avec un signal brouillé avec du bruit et pas du tout clair comme le tien :


Ça m'est arrivé aussi, étrangement en changeant le fil du jack (en utilisant le rouge au lieu du blanc ou inversement) ou en tripatouillant un peu j'ai fini par avoir un meilleur signal. Je trouve ça assez frustrant de ne pas avoir une meilleur explication du pourquoi de ce phénomène et surtout de ne pas pouvoir proposer une solution aux problèmes que l'on peut rencontrer (brouillage du signal, valeur inversés...) mais bon...

D'ailleurs si tu arrives à enregistrer les codes, poste les comme ça on peut s'entraider.

Bon courage !

EDIT: J'ai mis la main sur les prises 3063 F (cf tuto) je vais récupérer ça ASAP.
Pour plus d'infos ! une seul adresse
http://smarturl.it/remi
kelav
 
Messages: 51
Inscription: Jeu 29 Nov 2012 19:00
Localisation: Montpellier

Re: [TUTORIEL] Récupérer des codes 433.92 Mhz

Message non lude DidierRDV12 » Lun 22 Avr 2013 18:17

bonjour
je suis tomber sur les code des station meteo la http://www.lacrossetechnology.fr/
pour les station ws2200 ws 2500 ws 7000-13 dataloger

soure http://www.f6fbb.org/domo/sensors/index.php

et si cela peux servir
DidierRDV12
 
Messages: 13
Inscription: Sam 18 Fév 2012 13:44

Re: [TUTORIEL] Récupérer des codes 433.92 Mhz (maj)

Message non lude bwigle » Mer 21 Jan 2015 14:29

Bonjour,

Je viens ici pour chercher un peu d'aide.
Pour tous vous dire, j'essaye de reproduire le signal d'une télécommande de garage, mais pas avec un code fixe ! (malheureusement trop simple ^^), mais avec ce qu'on appelle rolling code ( une partir fixe+ une partie variable).

A vrai dire je me suis servie d'une petite radio de poche ou après quelques petite soudure j'ai pu relié un câble jack pour enregistrer le signal de la petite télécommande.

J'ai obtenu ça :
image onde garage.jpg
image onde garage.jpg (24.78 Kio) Vu 10687 fois


Et zommé, sa donne ça :
zoom.jpg
zoom.jpg (8.61 Kio) Vu 10687 fois


Puis vu que l'on est sur un rolling code, j'ai fais plusieurs enregistrements pour arriver à dissocier les partie toujours avec la même technique (110100...)

Après plusieurs enregistrements j'ai trouvé ma partie fixe :
1 1 0 1 1 0 1 1 0 1 1 0 1 0 0 1 0 0 1 0 0 1 0 0 1 1 0 1 0 0 1 1 0 1 1 0 1 1 0 1 0 0 1 1 0 1 0 0 1 0 0 1 0 0 1 1 0 1 1 0 1 0 0 1 0 0 1 0 0 1 1 0 1 0 0 1 1 0 1 1 0 1 0 0 1 0 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0


Puis ma partie variable (plusieurs exemple):

1)
1 1 0 1 0 0 1 0 0 1 0 0 1 1 0 1 0 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 0 0 1 0 0 1 0 0 1 1 0 1 1 0 1

2)
1 0 0 1 0 0 1 0 0 1 0 0 1 1 0 1 1 0 1 0 0 1 0 0 1 1 0 1 1 0 1 1 0 1 0 0 1 1 0 1 0 0 1 0 0 1 1 0 1

3)
1 0 0 1 1 0 1 0 0 1 0 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1

4)
1 0 0 1 1 0 1 0 0 1 0 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1

5)
1 1 0 1 0 0 1 1 0 1 1 0 1 1 0 1 1 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 1 0 1 1 0 1 0 0 1 0 0 1


Voila ou j'en suis, de ce que j'ai pu observer, il y a 16 parties dans la parti variable ou soit ou il y a un grand signal suivi d'un creu (110) soit un petit signal suivi de 2 creux (100).

Maintenant j'aimerais créer un code qui recréer le signal de ce que j'ai trouver, j'aimerais savoir comment je dois m'y prendre, (matériel, logiciel ...)

Sachant que j'aurais aussi voulu savoir si il existait pas des petite télécommande à relier au PC, que l'on peut configurer avec notre code, ou des composant que l'on peut programmer pour ensuite les souder sur une télécommande pour émettre le signal ?

Merci d'avance pour vos réponse !!!! ;)
bwigle
 
Messages: 1
Inscription: Mar 20 Jan 2015 08:15

Re: [TUTORIEL] Récupérer des codes 433.92 Mhz (maj)

Message non lude Arthur » Sam 4 Avr 2015 16:59

Bonjour,

J'ai acheté le récepteur radio 433Mhz sur votre site (réf RFL-00002) pour capter des trames via mon raspberry pi.

Je n'arrive pas à la faire fonctionner. Pourriez vous me confirmer les branchements sur un raspberry ?

Faut-il connecter les 7 broches (la 8ème est pour l'antenne) ? Sinon peut-on se contenter de 3 (VCC, Data et Ground) et dans ce cas lesquelles ? Et enfin comment peut on vérifier que le récepteur fonctionne correctement ?

Merci par avance de votre aide.
Arthur
 
Messages: 2
Inscription: Sam 4 Avr 2015 16:55

Re: [TUTORIEL] Récupérer des codes 433.92 Mhz (maj)

Message non lude kelav » Mer 8 Avr 2015 06:22

peut-on se contenter de 3 (VCC, Data et Ground)

Oui ça devrait fonctionner avec uniquement ces broches.

Pour vérifier si le récepteur fonctionnent , j'ai fait un programme vite fait qui
* vérifie si le GPIO où est branché le récepteur reçoit des données (il regarde simplement si le GPIO change d'état plusieurs fois)
* Puis attends un code RCSWITCH (venant d'une télécommande/arduino par ex)

Pour l'utiliser il suffit de faire ça:
(Il faut préalablement avoir installer wiringpi)
Code: Tout sélectionner
wget smarturl.it/rftester
sudo chmod +x rftester
sudo rftester PIN

(Remplacer PIN par la broche où est branché le récepteur radio)

Sinon en passant je vous conseille de jeter un coup d'oeil sur http://www.pilight.org/ qui permet de gérer un paquet de chose à l'aide d'un simple récepteur/émetteur sur un Raspberry Pi et même de rajouter un filtre passe bas à base d'attiny pour améliorer la réception!

Il y a même des explications sur les branchements ici :
http://wiki.pilight.org/doku.php/electronics
Pour plus d'infos ! une seul adresse
http://smarturl.it/remi
kelav
 
Messages: 51
Inscription: Jeu 29 Nov 2012 19:00
Localisation: Montpellier

Re: [TUTORIEL] Récupérer des codes 433.92 Mhz (maj)

Message non lude Arthur » Mer 8 Avr 2015 13:17

Bonjour,

Merci pour votre réponse. Avec votre application, il m'indique que le récepteur fonctionne avec uniquement 3 broches de connectées. C'est un bon début.

Je voudrais en fait recevoir les trames de sondes Oregon THGR122NX. Cela fonctionne bien avec un module récepteur chinois mais j'ai des problèmes de portée faible. C'est pour cela que je voulais utiliser le module snootlab a priori bien meilleur. Seulement avec exactement le même programme (wiringPi, RCSwitch), cela ne marche pas. Y a-t-il un paramètre à modifier et qui m'aurait échappé ?

Merci par avance pour votre aide.
Arthur
 
Messages: 2
Inscription: Sam 4 Avr 2015 16:55

Re: [TUTORIEL] Récupérer des codes 433.92 Mhz (maj)

Message non lude persovip » Dim 5 Juin 2016 16:34

Bonjour,
Je viens de modifier légèrement le sketch initial pour commander une LED, relais ou autre.
Cela fonctionne correctement, mais seulement lorsque le moniteur série est démarré (Connecté via USB sur un micro)
Pourriez vous me dire ce qu'il faut modifier pour que cela fonctionne sur une Arduino connectée uniquement sur le 5V ?
Merci d'avance
Voici le code

#include <RCSwitch.h>
#define BtA 8892400 //Télécommande 4 cannaux
#define BtB 8892500
#define BtC 8892600
#define BtD 8855700

RCSwitch mySwitch = RCSwitch();

void setup() {
Serial.begin(9600);
mySwitch.enableReceive(0);
pinMode(5, OUTPUT);
}

void loop() {
if (mySwitch.available()) {

int value = mySwitch.getReceivedValue();

while (!Serial) ;

switch (value)
{
case BtA:
Serial.println("Bouton A!");
digitalWrite(5, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000);
digitalWrite(5, LOW); // turn the LED off by making the voltage LOW
break;

case BtB:
Serial.println("Bouton B!");
digitalWrite(5, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000);
digitalWrite(5, LOW); // turn the LED off by making the voltage LOW
delay(1000);
digitalWrite(5, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000);
digitalWrite(5, LOW); // turn the LED off by making the voltage LOW
break;

case BtC:
Serial.println("Bouton C!");
break;

case BtD:
Serial.println("Bouton D!");
break;

default:
Serial.print("Dispositif inconnu: ");
Serial.println(value);
break;

}

mySwitch.resetAvailable();
}
}
persovip
 
Messages: 1
Inscription: Dim 5 Juin 2016 16:09

Re: [TUTORIEL] Récupérer des codes 433.92 Mhz (maj)

Message non lude Laetitia » Lun 6 Juin 2016 09:51

Bonjour,

Il y a une ligne à commenter :

Code: Tout sélectionner
while (!Serial); // attendre l'ouverture de la liaison série avant d'exécuter la suite du sketch

Cette ligne n'est nécessaire que pour les cartes à base d'ATmega32u4 comme la Leonardo ou la Yùn, lorsque vous voulez vous assurer de ne pas manquer de données sur le moniteur série.
"If it's itchy, scratch it !" - "DIY or die"

RTFM (À lire avant de poster) - ANDb (Arduino Noob Database)
Avatar de l’utilisateur
Laetitia
 
Messages: 296
Inscription: Mar 7 Aoû 2012 15:07
Localisation: Toulouse


Retourner vers Raspberry-Pi

Qui est en ligne

Utilisateurs parcourant ce forum: Google [Bot] et 1 invité

cron