Sisukord:

Récupérer Les Codes Infra-Rouge ja 433mhz: 4 sammu
Récupérer Les Codes Infra-Rouge ja 433mhz: 4 sammu

Video: Récupérer Les Codes Infra-Rouge ja 433mhz: 4 sammu

Video: Récupérer Les Codes Infra-Rouge ja 433mhz: 4 sammu
Video: Télécommande universelle, pour portail ou garage automatique. 2024, November
Anonim
Récupérer Les Codes Infra-Rouge ja 433mhz
Récupérer Les Codes Infra-Rouge ja 433mhz

Kui see on olemas, on selle stiili juhtimisseadmete koodid, garaaži ja autokontrolli 433 mhz (RX433) infra-rouge de télévision au autre.

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

Samm: Le Montage

Le Montage
Le Montage

Lihtne, Arduino Nano, infrapunakiirguse ja dioodiga 433 mhz.

2. samm: Le Code Arduino

// InfraRouge

#kaasake

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

IRrecv irrecv (recvPin);

// RX433

#kaasake

RCSwitch mySwitch = RCSwitch ();

decode_results tulemused;

tühine seadistus ()

{

Seriaalne algus (9600);

irrecv.enableIRIn ();

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

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

}

// affichage des koodid InfraRouge

void ircode (decode_results *tulemused)

{

// Panasonic

if (tulemused-> dekodeerimise_tüüp == PANASONIC) {

Serial.print (tulemused-> aadress, HEX);

Serial.print (":");

}

Serial.print (tulemused-> väärtus, HEX);

} // tühine

// afficahge des code encodés

tühine kodeering (decode_results *tulemused)

{

lüliti (tulemused-> dekodeerimise_tüüp) {

vaikimisi:

juhtum TUNDMATU: Serial.print ("Inconnu"); murda;

juhtum NEC: Serial.print ("NEC"); murda;

juhtum SONY: Serial.print ("SONY"); murda;

juhtum RC5: Serial.print ("RC5"); murda;

juhtum RC6: Serial.print ("RC6"); murda;

juhtum DISH: Serial.print ("DISH"); murda;

ümbris SHARP: Serial.print ("SHARP"); murda;

juhtum JVC: Serial.print ("JVC"); murda;

juhtum SANYO: Serial.print ("SANYO"); murda;

korpus MITSUBISHI: Serial.print ("MITSUBISHI"); murda;

ümbris SAMSUNG: Serial.print ("SAMSUNG"); murda;

juhtum LG: Serial.print ("LG"); murda;

juhtum WHYNTER: Serial.print ("WHYNTER"); murda;

juhtum AIWA_RC_T501: Serial.print ("AIWA_RC_T501"); murda;

juhtum PANASONIC: Serial.print ("PANASONIC"); murda;

juhtum DENON: Serial.print ("Denon"); murda;

}

}

// dump les résultats

void dumpInfo (decode_results *tulemused)

{

// Kontrollige, kas puhver on üle voolanud

if (tulemused-> ületäitumine) {

Serial.println ("IR -kood on liiga pikk. Muutke IRremoteInt.h ja suurendage RAWBUF -i");

tagasipöördumine;

}

// Näita kodeerimisstandardit

Serial.print ("Kodeerimine:");

kodeerimine (tulemused);

Serial.println ("");

// Näita koodi ja pikkust

Serial.print ("Kood:");

ircode (tulemused);

Serial.print ("(");

Serial.print (tulemused-> bitti, DEC);

Serial.println ("bitti"));

}

// struktuur

void dumpRaw (decode_results *tulemused)

{

// Prindi toorandmed

Serial.print ("Ajastus [");

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

Serial.println ("]:");

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

allkirjata pikk x = tulemused-> rawbuf * USECPERTICK;

kui (! (i & 1)) {// isegi

Serial.print ("-");

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

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

Serial.print (x, DEC);

} muu {// veider

Serial.print ("");

Serial.print ("+");

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

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

Serial.print (x, DEC);

if (i rawlen-1) Serial.print (","); // ',' pole viimase jaoks vajalik

}

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

}

Serial.println (""); // Uus rida

}

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

// Eemaldage struktuur decode_results.

//

void dumpCode (decode_results *tulemused)

{

// Alusta deklareerimist

Serial.print ("unsigned int"); // muutuja tüüp

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

Serial.print (tulemused-> rawlen - 1, DEC); // massiivi suurus

Seeria.print ("] = {"); // Alusta deklareerimist

// Andmete tühjendamine

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

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

if (i rawlen-1) Serial.print (","); // ',' viimasel pole vaja

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

}

// Lõppdeklaratsioon

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

// Kommentaar

Serial.print ("//");

kodeerimine (tulemused);

Serial.print ("");

ircode (tulemused);

// Uus rida

Serial.println ("");

// Nüüd tühjendage "teadaolevad" koodid

if (tulemused-> dekodeerimise_tüüp! = TUNDMATU) {

// Mõnel protokollil on aadress

if (tulemused-> dekodeerimise_tüüp == PANASONIC) {

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

Serial.print (tulemused-> aadress, HEX);

Serial.println (";");

}

// Kõigil protokollidel on andmed

Serial.print ("allkirjastamata int andmed = 0x");

Serial.print (tulemused-> väärtus, HEX);

Serial.println (";");

}

}

tühine tsükkel ()

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

{

decode_results tulemused; // Kuhugi tulemuste salvestamiseks

if (irrecv.decode (& results)) {// Haara IR -kood

dumpInfo (& tulemused); // Väljundi tulemused

dumpRaw (& tulemused); // Väljastage tulemused RAW -vormingus

dumpCode (& tulemused); // Väljundi tulemused lähtekoodina

Serial.println (""); // Tühi rida kirjete vahel

irrecv.resume (); // Valmistuge järgmiseks väärtuseks

}

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

kui (mySwitch.available ())

{

int väärtus = mySwitch.getReceivedValue ();

Serial.println ("RX433");

kui (väärtus == 0) {

Serial.print ("Codage inconnu");

} muud

{

Serial.print ("Reçu");

Serial.print (mySwitch.getReceivedValue ());

Serial.print (" /");

Serial.print (mySwitch.getReceivedBitlength ());

Serial.print ("bit");

Serial.print ("Protokoll:");

Serial.println (mySwitch.getReceivedProtocol ());

}

mySwitch.resetAvailable ();

} // RX433

} // silmus

3. samm: Infos Sur Les Codes Infra-Rouge

Lisaprotokollid:

NEC: 32 bitti (protokolli üksikasjad)

Sony: 12 või 20 bitti (protokolli üksikasjad) (Sony IR kaugkoodide mõistmine.)

RC5: 12 bitti (protokolli üksikasjad)

RC6: 20 ou 36 bitti (protokolli üksikasjad)

Valage Sony ja RC5/6, tehke käigukast 3 tassi!

TÄHELEPANU: 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 koodid se fera avec la librairie IRremote.h

Näide: (0x devant le code) ja nbspre bits irsend.sendNEC (0xA55A38C7, 32);

Samm 4: Teave Sur koodid RX433

L’envoie se fera avec la librairie RCSwitch.h

Näide mySwitch.send (1975778, 24);

Peut facilement piloot avec cela des prises commandés.

Soovitan: