Kazalo:

Oddajnik Les Codes Infra-Rouge Et 433mhz: 4 koraki
Oddajnik Les Codes Infra-Rouge Et 433mhz: 4 koraki

Video: Oddajnik Les Codes Infra-Rouge Et 433mhz: 4 koraki

Video: Oddajnik Les Codes Infra-Rouge Et 433mhz: 4 koraki
Video: Broadlink RM plus - интегрируем в Domoticz, создаем базу IR и RF кодов 2024, Julij
Anonim
Oddajnik Les Codes Infra-Rouge Et 433mhz
Oddajnik Les Codes Infra-Rouge Et 433mhz

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

On pourra donc ensuite, grâce à une autre montaža, odposlanec ces code et piloter n’importe quoi!

Korak: Le Montage

Le Montage
Le Montage

Enostaven, brez Arduino Nano, brez diode sprejemnik infrardeče barve in sprejemnik 433 mhz.

2. korak: Le Code Arduino

// InfraRouge

#vključi

int recvPin = 11; // zatič Arduino za sprejemnik InfraRouge (TOSP4838)

IRrecv irecv (recvPin);

// RX433

#vključi

RCSwitch mySwitch = RCSwitch ();

decode_results rezultati;

void setup ()

{

Serial.begin (9600);

unrecv.enableIRIn ();

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

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

}

// affichage des code InfraRouge

void ircode (decode_results *rezultati)

{

// Panasonic

if (rezultati-> decode_type == PANASONIC) {

Serial.print (rezultati-> naslov, HEX);

Serial.print (":");

}

Serial.print (rezultati-> vrednost, HEX);

} // nično

// afficahge des code encodés

kodiranje praznine (decode_results *rezultati)

{

switch (rezultati-> decode_type) {

privzeto:

ohišje UNKNOWN: Serial.print ("Inconnu"); zlom;

ohišje NEC: Serial.print ("NEC"); zlom;

ohišje SONY: Serial.print ("SONY"); zlom;

ohišje RC5: Serial.print ("RC5"); zlom;

ohišje RC6: Serial.print ("RC6"); zlom;

etui DISH: Serial.print ("DISH"); zlom;

ohišje SHARP: Serial.print ("SHARP"); zlom;

ohišje JVC: Serial.print ("JVC"); zlom;

ohišje SANYO: Serial.print ("SANYO"); zlom;

etui MITSUBISHI: Serial.print ("MITSUBISHI"); zlom;

ohišje SAMSUNG: Serial.print ("SAMSUNG"); zlom;

etui LG: Serial.print ("LG"); zlom;

ohišje WHYNTER: Serial.print ("WHYNTER"); zlom;

ohišje AIWA_RC_T501: Serial.print ("AIWA_RC_T501"); zlom;

ohišje PANASONIC: Serial.print ("PANASONIC"); zlom;

ohišje DENON: Serial.print ("Denon"); zlom;

}

}

// dump les résultats

void dumpInfo (decode_results *rezultati)

{

// Preverite, ali je medpomnilnik prepoln

if (rezultati-> prelivanje) {

Serial.println ("IR koda predolga. Uredite IRremoteInt.h in povečajte RAWBUF");

vrnitev;

}

// Prikaži standard kodiranja

Serial.print ("Encodage:");

kodiranje (rezultati);

Serial.println ("");

// Pokaži kodo in dolžino

Serial.print ("Koda:");

ircode (rezultati);

Serial.print ("(");

Serial.print (rezultati-> bitovi, DEC);

Serial.println ("bitov"));

}

// struktura

void dumpRaw (decode_results *rezultati)

{

// Natisni surove podatke

Serial.print ("Čas [");

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

Serial.println ("]:");

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

brez podpisa dolgi x = rezultati-> rawbuf * USECPERTICK;

if (! (i & 1)) {// celo

Serial.print ("-");

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

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

Serijski.tisk (x, DEC);

} else {// liho

Serial.print ("");

Serial.print ("+");

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

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

Serijski.tisk (x, DEC);

if (i rawlen-1) Serial.print (","); // ',' za zadnjo ni potrebno

}

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

}

Serial.println (""); // Nova vrstica

}

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

// Odstranite strukturo decode_results.

//

void dumpCode (decode_results *rezultati)

{

// Začni deklaracijo

Serial.print ("unsigned int"); // spremenljivka

Serial.print ("rawData ["); // ime polja

Serial.print (rezultati -> surovo - 1, DEC); // velikost matrike

Serial.print ("] = {"); // Začni deklaracijo

// Izpis podatkov

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

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

if (i rawlen-1) Serial.print (","); // ',' na zadnjem ni potrebno

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

}

// Konec deklaracije

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

// Komentiraj

Serial.print ("//");

kodiranje (rezultati);

Serial.print ("");

ircode (rezultati);

// Nova vrstica

Serial.println ("");

// Zdaj izpustite "znane" kode

if (rezultati-> decode_type! = NEPOZNATO) {

// Nekateri protokoli imajo naslov

if (rezultati-> decode_type == PANASONIC) {

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

Serial.print (rezultati-> naslov, HEX);

Serial.println (";");

}

// Vsi protokoli imajo podatke

Serial.print ("nepodpisani int podatki = 0x");

Serial.print (rezultati-> vrednost, HEX);

Serial.println (";");

}

}

void loop ()

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

{

decode_results rezultati; // Nekje za shranjevanje rezultatov

if (unrecv.decode (& results)) {// Zgrabi kodo IR

dumpInfo (& rezultati); // Iznesite rezultate

dumpRaw (& rezultati); // Rezultate iznesite v formatu RAW

dumpCode (& rezultati); // Rezultate iznesite kot izvorno kodo

Serial.println (""); // Prazna vrstica med vnosi

unrecv.resume (); // Pripravite se na naslednjo vrednost

}

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

if (mySwitch.available ())

{

int vrednost = mySwitch.getReceivedValue ();

Serial.println ("RX433");

če (vrednost == 0) {

Serial.print ("Codage inconnu");

} drugo

{

Serial.print ("Reçu");

Serial.print (mySwitch.getReceivedValue ());

Serial.print (" /");

Serial.print (mySwitch.getReceivedBitlength ());

Serial.print ("bit");

Serial.print ("Protokol:");

Serial.println (mySwitch.getReceivedProtocol ());

}

mySwitch.resetAvailable ();

} // RX433

} // zanka

3. korak: Infos Sur Les Codes Infra-Rouge

Protokoli Il y a plusieurs:

NEC: 32 bitov (podrobnosti o protokolu)

Sony: 12 ali 20 bitov (podrobnosti o protokolu) (Razumevanje kod za daljinsko upravljanje Sony IR.)

RC5: 12 bitov (podrobnosti o protokolu)

RC6: 20 ali 36 bitov (podrobnosti protokola)

Nalijte Sony et RC5/6, prenos v obliki črke do 3 ètre étre répétés!

POZOR: la librairie IRremote.h ne semble pas pouvoir odposlanec des kod kode sur plus de 32bit. 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

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

4. korak: Infos Sur Codes RX433

L’envoie se fera avec la librairie RCSwitch.h

Na primer mySwitch.send (1975778, 24);

Pilot na peut facilementu avec cela des prises commandés.

Priporočena: