Sisällysluettelo:

Récupérer Les Codes Infra-Rouge Et 433mhz: 4 vaihetta
Récupérer Les Codes Infra-Rouge Et 433mhz: 4 vaihetta

Video: Récupérer Les Codes Infra-Rouge Et 433mhz: 4 vaihetta

Video: Récupérer Les Codes Infra-Rouge Et 433mhz: 4 vaihetta
Video: Télécommande Infra rouge 2/3 2024, Marraskuu
Anonim
Récupérer Les Codes Infra-Rouge ja 433mhz
Récupérer Les Codes Infra-Rouge ja 433mhz

Le de est est d’afficher les code des 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!

Vaihe 1: Le Montage

Le Montage
Le Montage

Yksinkertainen ja Arduino Nano, jossa ei ole diodi-reseptorin infrapuna- ja vastaanotto 433 mhz.

Vaihe 2: Le Code Arduino

// InfraRouge

#sisältää

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

IRrecv irrecv (recvPin);

// RX433

#sisältää

RCSwitch mySwitch = RCSwitch ();

decode_results tulokset;

mitätön asennus ()

{

Sarja.alku (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 -koodit InfraRouge

void ircode (decode_results *tulokset)

{

// Panasonic

if (tulokset-> dekoodaustyyppi == PANASONIC) {

Serial.print (tulokset-> osoite, HEX);

Serial.print (":");

}

Serial.print (tulokset-> arvo, HEX);

} // mitätön

// afficahge des code encodés

mitätön koodaus (decode_results *tulokset)

{

kytkin (tulokset-> dekoodaustyyppi) {

oletus:

tapaus Tuntematon: Serial.print ("Inconnu"); tauko;

tapaus NEC: Serial.print ("NEC"); tauko;

tapaus SONY: Serial.print ("SONY"); tauko;

tapaus RC5: Serial.print ("RC5"); tauko;

tapaus RC6: Serial.print ("RC6"); tauko;

tapaus DISH: Serial.print ("DISH"); tauko;

kotelo SHARP: Serial.print ("SHARP"); tauko;

tapaus JVC: Serial.print ("JVC"); tauko;

tapaus SANYO: Serial.print ("SANYO"); tauko;

kotelo MITSUBISHI: Serial.print ("MITSUBISHI"); tauko;

kotelo SAMSUNG: Serial.print ("SAMSUNG"); tauko;

tapaus LG: Serial.print ("LG"); tauko;

tapaus WHYNTER: Serial.print ("WHYNTER"); tauko;

tapaus AIWA_RC_T501: Serial.print ("AIWA_RC_T501"); tauko;

tapaus PANASONIC: Serial.print ("PANASONIC"); tauko;

tapaus DENON: Serial.print ("Denon"); tauko;

}

}

// dump les résultats

void dumpInfo (decode_results *tulokset)

{

// Tarkista, onko puskuri täynnä

if (tulokset-> ylivuoto) {

Serial.println ("IR -koodi liian pitkä. Muokkaa IRremoteInt.h ja lisää RAWBUF");

palata;

}

// Näytä koodausstandardi

Serial.print ("Koodaus:");

koodaus (tulokset);

Serial.println ("");

// Näytä koodi ja pituus

Serial.print ("Koodi:");

ircode (tulokset);

Serial.print ("(");

Serial.print (tulokset-> bittiä, DEC);

Serial.println ("bittiä"));

}

//rakenne

void dumpRaw (decode_results *tulokset)

{

// Tulosta raakatiedot

Serial.print ("Ajoitus [");

Serial.print (tulokset-> rawlen-1, DEC);

Sarja.println ("]:");

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

unsigned long x = tulokset-> rawbuf * USECPERTICK;

jos (! (i & 1)) {// parillinen

Serial.print ("-");

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

jos (x <100) Serial.print ("");

Sarjanjälki (x, DEC);

} muu {// pariton

Serial.print ("");

Serial.print ("+");

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

jos (x <100) Serial.print ("");

Sarjanjälki (x, DEC);

if (i rawlen-1) Serial.print (","); // ',' ei tarvita viimeksi

}

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

}

Serial.println (""); // Uusi rivi

}

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

// Tyhjennä decode_results -rakenne.

//

void dumpCode (decode_results *tulokset)

{

// Aloita ilmoitus

Serial.print ("unsigned int"); // muuttujan tyyppi

Serial.print ("rawData ["); // taulukon nimi

Serial.print (tulokset-> rawlen - 1, DEC); // taulukon koko

Sarjanjälki ("] = {"); // Aloita ilmoitus

// Dump -tiedot

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

Serial.print (tulokset-> rawbuf * USECPERTICK, DEC);

if (i rawlen-1) Serial.print (","); // ',' ei tarvita viimeisessä

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

}

// Loppuilmoitus

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

// Kommentoi

Serial.print ("//");

koodaus (tulokset);

Serial.print ("");

ircode (tulokset);

// Uusi rivi

Serial.println ("");

// Poista nyt "tunnetut" koodit

if (tulokset-> dekoodaustyyppi! = Tuntematon) {

// Joillakin protokollilla on osoite

if (tulokset-> dekoodaustyyppi == PANASONIC) {

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

Serial.print (tulokset-> osoite, HEX);

Sarja.println (";");

}

// Kaikissa protokollissa on tietoja

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

Serial.print (tulokset-> arvo, HEX);

Sarja.println (";");

}

}

tyhjä silmukka ()

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

{

decode_results tulokset; // Jossain tulosten tallentamiseen

if (irrecv.decode (& results)) {// Nappaa IR -koodi

dumpInfo (& tulokset); // Tulosten tulostaminen

dumpRaw (& tulokset); // Tulokset tulostetaan RAW -muodossa

dumpCode (& tulokset); // Tulosta tulokset lähdekoodina

Serial.println (""); // Tyhjä rivi merkintöjen välillä

irrecv.resume (); // Valmistaudu seuraavaan arvoon

}

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

jos (mySwitch.available ())

{

int -arvo = mySwitch.getReceivedValue ();

Serial.println ("RX433");

jos (arvo == 0) {

Serial.print ("Codage inconnu");

} muuta

{

Serial.print ("Reçu");

Serial.print (mySwitch.getReceivedValue ());

Serial.print (" /");

Serial.print (mySwitch.getReceivedBitlength ());

Serial.print ("bit");

Serial.print ("Protocole:");

Serial.println (mySwitch.getReceivedProtocol ());

}

mySwitch.resetAvailable ();

} // RX433

} // silmukka

Vaihe 3: Infos Sur Les Codes Infra-Rouge

Il y a plusieurs -protokollat:

NEC: 32 bittiä (protokollan tiedot)

Sony: 12 tai 20 bittiä (protokollan tiedot) (Sony IR -kaukokoodien ymmärtäminen.)

RC5: 12 bittiä (protokollan tiedot)

RC6: 20 tai 36 bittiä (protokollan tiedot)

Kaada Sony ja RC5/6, Chaque -lähetys, voit tehdä kolme kuvaa!

HUOMIO: 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

Esimerkki: (0x devant le code) et le nombre de bits irsend.sendNEC (0xA55A38C7, 32);

Vaihe 4: Infos Sur -koodit RX433

L'envoie se fera avec la librairie RCSwitch.h

Esimerkki mySwitch.send (1975778, 24);

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

Suositeltava: