Tartalomjegyzék:

Récupérer Les Codes Infra-Rouge Et 433mhz: 4 lépés
Récupérer Les Codes Infra-Rouge Et 433mhz: 4 lépés

Videó: Récupérer Les Codes Infra-Rouge Et 433mhz: 4 lépés

Videó: Récupérer Les Codes Infra-Rouge Et 433mhz: 4 lépés
Videó: HACKER une Télécommande Infrarouge 2024, November
Anonim
Récupérer Les Codes Infra-Rouge Et 433mhz
Récupérer Les Codes Infra-Rouge Et 433mhz

Le de est d’afficher les kódok des télécommandes du style commande de lampe, porte de garage et autre fonctionnant sous 433 mhz (RX433) more aussi ceux des télécommandes infra-rouge de télévision au autre.

On pourra donc ensuite, grâce à une autre monttage, envoyer ces code et piloter n’importe quoi!

1. lépés: Le Montage

Le Montage
Le Montage

Egyszerű, Arduino Nano, nem dióda réceptrice infra-rouge és un récepteur 433 mhz.

2. lépés: Le Code Arduino

// InfraRouge

#befoglalni

int recvPin = 11; // pin Arduino pour récepteur InfraRouge (TOSP4838)

IRrecv irrecv (recvPin);

RX433

#befoglalni

RCSwitch mySwitch = RCSwitch ();

decode_results eredmények;

üres beállítás ()

{

Sorozat.kezdet (9600);

irrecv.enableIRIn ();

irrecv.blink13 (true); // allume la LED interne lors de l'envoie InfraRouge

mySwitch.enableRecept (0); Récepteur RX433 (XY-MK-5V) sur pin 2 de Arduino Uno et Nano

}

// affichage des kódok InfraRouge

void ircode (decode_results *eredmények)

{

// Panasonic

if (eredmények-> dekódolás_típus == PANASONIC) {

Serial.print (eredmények-> cím, HEX);

Serial.print (":");

}

Serial.print (eredmények-> érték, HEX);

}//üres

// afficahge des code encodés

üres kódolás (decode_results *eredmények)

{

switch (eredmények-> dekódolás_típusa) {

alapértelmezett:

eset ISMERETLEN: Serial.print ("Inconnu"); szünet;

eset NEC: Serial.print ("NEC"); szünet;

tok SONY: Serial.print ("SONY"); szünet;

eset RC5: Soros.nyomtatás ("RC5"); szünet;

eset RC6: Soros.nyomtatás ("RC6"); szünet;

tok DISH: Serial.print ("DISH"); szünet;

tok SHARP: Serial.print ("SHARP"); szünet;

eset JVC: Serial.print ("JVC"); szünet;

tok SANYO: Sorozat.nyomtatás ("SANYO"); szünet;

tok MITSUBISHI: Serial.print ("MITSUBISHI"); szünet;

tok SAMSUNG: Serial.print ("SAMSUNG"); szünet;

LG eset: Serial.print ("LG"); szünet;

eset WHYNTER: Sorozat.nyomtatás ("WHYNTER"); szünet;

eset AIWA_RC_T501: Sorozat.print ("AIWA_RC_T501"); szünet;

tok PANASONIC: Serial.print ("PANASONIC"); szünet;

DENON eset: Sorozat.nyomtatás ("Denon"); szünet;

}

}

// dump les résultats

void dumpInfo (decode_results *eredmények)

{

// Ellenőrizze, hogy a puffer túlcsordult -e

if (eredmények-> túlcsordulás) {

Serial.println ("Az IR -kód túl hosszú. Az IRremoteInt.h szerkesztése és a RAWBUF növelése");

Visszatérés;

}

// Kódolási szabvány megjelenítése

Serial.print ("Kódolás:");

kódolás (eredmények);

Serial.println ("");

// Kód és hossz megjelenítése

Serial.print ("Kód:");

ircode (eredmények);

Serial.print ("(");

Serial.print (eredmények-> bit, DEC);

Serial.println ("bit"));

}

//szerkezet

void dumpRaw (decode_results *eredmények)

{

// Nyers adatok nyomtatása

Serial.print ("Időzítés [");

Serial.print (eredmények-> rawlen-1, DEC);

Sorozat.println ("]:");

for (int i = 1; i rawlen; i ++) {

unsigned long x = eredmények-> rawbuf * USECPERTICK;

ha (! (i & 1)) {// páros

Soros.nyomtatás ("-");

if (x <1000) Serial.print ("");

if (x <100) Sorozat.nyomtatás ("");

Sorozatnyomat (x, DEC);

} else {// páratlan

Serial.print ("");

Soros.nyomtatás ("+");

if (x <1000) Serial.print ("");

if (x <100) Sorozat.nyomtatás ("");

Sorozatnyomat (x, DEC);

if (i rawlen-1) Serial.print (","); // ',' nem szükséges az utolsóhoz

}

if (! (i % 8)) Serial.println ("");

}

Serial.println (""); // Új sor

}

//+=============================================================================

// Dumpd ki a decode_results struktúrát.

//

void dumpCode (decode_results *eredmények)

{

// Nyilatkozat indítása

Serial.print ("unsigned int"); // változó típusa

Serial.print ("rawData ["); // tömb neve

Serial.print (eredmények-> rawlen - 1, DEC); // tömb mérete

Sorozat.nyomtatás ("] = {"); // Nyilatkozat indítása

// Adatok kiürítése

for (int i = 1; i rawlen; i ++) {

Serial.print (eredmények-> rawbuf * USECPERTICK, DEC);

if (i rawlen-1) Serial.print (","); // ',' nem szükséges az utolsónál

if (! (i & 1)) Serial.print ("");

}

// Befejező nyilatkozat

Serial.print ("};"); //

// megjegyzés

Serial.print ("//");

kódolás (eredmények);

Serial.print ("");

ircode (eredmények);

// Új sor

Serial.println ("");

// Most dobja ki az "ismert" kódokat

if (eredmények-> decode_type! = ISMERETLEN) {

// Néhány protokollnak címe van

if (eredmények-> dekódolás_típus == PANASONIC) {

Serial.print ("unsigned int addr = 0x");

Serial.print (eredmények-> cím, HEX);

Soros.println (";");

}

// Minden protokoll rendelkezik adatokkal

Serial.print ("unsigned int data = 0x");

Serial.print (eredmények-> érték, HEX);

Soros.println (";");

}

}

üres hurok ()

/************************************************* *InfraRouge *****************************************/

{

decode_results eredmények; // Valahol az eredmények tárolására

if (irrecv.decode (& results)) {// Fogj egy IR -kódot

dumpInfo (& results); // Adja ki az eredményeket

dumpRaw (& eredmények); // Az eredményeket RAW formátumban adja ki

dumpCode (& results); // Az eredményeket forráskódként adja ki

Serial.println (""); // Üres sor a bejegyzések között

irrecv.resume (); // Készüljön fel a következő értékre

}

/************************************************* *** RX433 *******************************************/

ha (mySwitch.available ())

{

int érték = mySwitch.getReceivedValue ();

Serial.println ("RX433");

if (érték == 0) {

Serial.print ("Codage inconnu");

} más

{

Serial.print ("Reçu");

Serial.print (mySwitch.getReceivedValue ());

Soros.nyomtatás (" /");

Serial.print (mySwitch.getReceivedBitlength ());

Serial.print ("bit");

Serial.print ("Protocole:");

Serial.println (mySwitch.getReceivedProtocol ());

}

mySwitch.resetAvailable ();

} // RX433

}//hurok

3. lépés: Infos Sur Les Codes Infra-Rouge

A további protokollok:

NEC: 32 bit (a protokoll részletei)

Sony: 12 ou 20 bit (protokoll adatai) (A Sony IR távoli kódok megértése.)

RC5: 12 bit (protokoll részletei)

RC6: 20 vagy 36 bit (a protokoll részletei)

Öntsön Sony -t és RC5/6 -ot, hamis átviteli sebességgel 3 fóliát!

FIGYELEM: la librairie IRremote.h ne semble pas pouvoir envoyer des code codés sur plus de 32bits. Les RC6, 36 doivent donc êtres envoyer en raw, qui prennent plus de taille mémoire.

L’envoie des code se fera avec la librairie IRremote.h

Példa: (0x devant le code) és nombre de bit bit irsend.sendNEC (0xA55A38C7, 32);

4. lépés: Infó Sur kódok RX433

L’envoie se fera avec la librairie RCSwitch.h

Példa mySwitch.send (1975778, 24);

On peut facilement piloter avec cela des prises commandés.

Ajánlott: