Obsah:

Récupérer Les Codes Infra-Rouge Et 433 MHz: 4 kroky
Récupérer Les Codes Infra-Rouge Et 433 MHz: 4 kroky

Video: Récupérer Les Codes Infra-Rouge Et 433 MHz: 4 kroky

Video: Récupérer Les Codes Infra-Rouge Et 433 MHz: 4 kroky
Video: Высокая плотность 2022 2024, November
Anonim
Récupérer Les Codes Infra-Rouge Et 433 MHz
Récupérer Les Codes Infra-Rouge Et 433 MHz

Naše hlavné kódy pre lampu, porta de garage a autre fonctionnant sous 433 MHz (RX433) majú najväčšiu možnú požiadavku na infračervenú rádiu.

Na vlastnú päsť, montáž a montáž montáže, kódy vyslancov a pilotné správy!

Krok 1: Le Montage

Le Montage
Le Montage

Jednoduché, Arduino Nano, infračervené prijímače s diódami s frekvenciou 433 MHz.

Krok 2: Le Code Arduino

// InfraRouge

#zahrnúť

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

IRrecv ircv (recvPin);

// RX433

#zahrnúť

RCSwitch mySwitch = RCSwitch ();

decode_results výsledky;

neplatné nastavenie ()

{

Serial.begin (9600);

unbcv.enableIRIn ();

unbcv.blink13 (true); // všetky vnútorné LED diódy InfraRouge

mySwitch.enableReceive (0); // Recepteur RX433 (XY-MK-5V) sur pin 2 de Arduino Uno et Nano

}

// pridanie kódov InfraRouge

neplatný ircode (decode_results *výsledky)

{

// Panasonic

if (results-> decode_type == PANASONIC) {

Serial.print (výsledky-> adresa, HEX);

Serial.print (":");

}

Serial.print (výsledky-> hodnota, HEX);

} // neplatné

// kódovanie kódov kódov

neplatné kódovanie (decode_results *výsledky)

{

switch (results-> decode_type) {

predvolené:

prípad NEZNÁMY: Serial.print ("Inconnu"); prestávka;

prípad NEC: Serial.print ("NEC"); prestávka;

prípad SONY: Serial.print („SONY“); prestávka;

prípad RC5: Serial.print ("RC5"); prestávka;

prípad RC6: Serial.print ("RC6"); prestávka;

prípad DISH: Serial.print ("DISH"); prestávka;

prípad SHARP: Serial.print ("SHARP"); prestávka;

prípad JVC: Serial.print ("JVC"); prestávka;

prípad SANYO: Serial.print ("SANYO"); prestávka;

prípad MITSUBISHI: Serial.print ("MITSUBISHI"); prestávka;

prípad SAMSUNG: Serial.print („SAMSUNG“); prestávka;

prípad LG: Serial.print ("LG"); prestávka;

prípad WHYNTER: Serial.print ("WHYNTER"); prestávka;

prípad AIWA_RC_T501: Serial.print ("AIWA_RC_T501"); prestávka;

prípad PANASONIC: Serial.print ("PANASONIC"); prestávka;

prípad DENON: Serial.print ("Denon"); prestávka;

}

}

// skládka les résultats

neplatné dumpInfo (decode_results *výsledky)

{

// Skontrolujte, či vyrovnávacia pamäť pretekala

if (results-> overflow) {

Serial.println ("IR kód je príliš dlhý. Upravte IRremoteInt.h a zvýšte RAWBUF");

návrat;

}

// Zobraziť štandard kódovania

Serial.print ("Encodage:");

kódovanie (výsledky);

Serial.println ("");

// Zobraziť kód a dĺžku

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

ircode (výsledky);

Serial.print ("(");

Serial.print (výsledky-> bity, DEC);

Serial.println ("bity" ");

}

// štruktúra

neplatné dumpRaw (decode_results *výsledky)

{

// Tlač nespracovaných údajov

Serial.print ("Načasovanie [");

Serial.print (výsledky-> rawlen-1, DEC);

Serial.println ("]:");

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

bez znamienka x = výsledky-> rawbuf * USECPERTICK;

if (! (i & 1)) {// párne

Serial.print ("-");

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

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

Serial.print (x, DEC);

} else {// nepárne

Serial.print ("");

Serial.print ("+");

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

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

Serial.print (x, DEC);

if (i rawlen-1) Serial.print (","); // ',' nie je potrebné pre posledný

}

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

}

Serial.println (""); // Nový riadok

}

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

// Vyprázdnite štruktúru decode_results.

//

neplatný dumpCode (decode_results *výsledky)

{

// Spustenie deklarácie

Serial.print ("nepodpísaný int"); // typ premennej

Serial.print ("rawData ["); // názov poľa

Serial.print (výsledky-> rawlen - 1, DEC); // veľkosť poľa

Serial.print ("] = {"); // Spustenie deklarácie

// Vypísanie údajov

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

Serial.print (výsledky-> rawbuf * USECPERTICK, DEC);

if (i rawlen-1) Serial.print (","); // ',' pri poslednom nie je potrebný

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

}

// Vyhlásenie konca

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

// Komentovať

Serial.print ("//");

kódovanie (výsledky);

Serial.print ("");

ircode (výsledky);

// Nový riadok

Serial.println ("");

// Teraz vyhoďte „známe“kódy

if (results-> decode_type! = NEZNÁMY) {

// Niektoré protokoly majú adresu

if (results-> decode_type == PANASONIC) {

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

Serial.print (výsledky-> adresa, HEX);

Serial.println (";");

}

// Všetky protokoly majú údaje

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

Serial.print (výsledky-> hodnota, HEX);

Serial.println (";");

}

}

prázdna slučka ()

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

{

decode_results výsledky; // Niekde na uloženie výsledkov

if (unbcv.decode (& results)) {// Získať IR kód

dumpInfo (& výsledky); // Výstup výsledkov

dumpRaw (& výsledky); // Výstup výsledkov vo formáte RAW

dumpCode (& výsledky); // Výstup výsledkov ako zdrojový kód

Serial.println (""); // Prázdny riadok medzi položkami

unbcv.resume (); // Pripravte sa na ďalšiu hodnotu

}

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

ak (mySwitch.available ())

{

int hodnota = mySwitch.getReceivedValue ();

Serial.println ("RX433");

if (hodnota == 0) {

Serial.print ("Codage unfnu");

} inak

{

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

} // slučka

Krok 3: Infos Sur Les Codes Infra-Rouge

Vaše protokoly plusieurs:

NEC: 32 bitov (podrobnosti o protokole)

Sony: 12 alebo 20 bitov (podrobnosti o protokole) (Porozumenie kódom diaľkového ovládača Sony IR.)

RC5: 12 bitov (podrobnosti o protokole)

RC6: 20 alebo 36 bitov (podrobnosti o protokole)

Nalejte Sony a RC5/6, chaotický prenos do 3 opakovaní!

POZOR: la librairie IRremote.h ne sem pasportuje váš hlasový kód kódov plus 32 bitov. Les RC6, 36 doivent doncêres envoyer en raw, qui prennent plus de taille mémoire.

L'envoie des codes se fera avec la librairie IRremote.h

Príklad: (0x devant le code) a menné množstvo bitov irsend.sendNEC (0xA55A38C7, 32);

Krok 4: Infos Sur Codes RX433

L'envoie se fera avec la librairie RCSwitch.h

Príklad mySwitch.send (1975778, 24);

Pilotný výcvik na palubnej doske cela des prises veliteľov.

Odporúča: