Inhoudsopgave:

Recuperer Les Codes Infra-Rouge Et 433mhz - Ajarnpa
Recuperer Les Codes Infra-Rouge Et 433mhz - Ajarnpa

Video: Recuperer Les Codes Infra-Rouge Et 433mhz - Ajarnpa

Video: Recuperer Les Codes Infra-Rouge Et 433mhz - Ajarnpa
Video: HACKER une Télécommande Infrarouge 2024, Juli-
Anonim
Recuperer Les Codes Infra-Rouge Et 433mhz
Recuperer Les Codes Infra-Rouge Et 433mhz

Het enige dat u kunt lezen is de code van de televisiecommando's van de stijl van de lamp, de poort van de garage en de originele functie van 433 mhz (RX433) met meer informatie over de infra-rouge van de televisie.

Op pourra donc ensuite, grâce à une autre montage, envoyer ces codes et piloter n'importe quoi!

Stap 1: Le Montage

Le Montage
Le Montage

Eenvoudig, zonder Arduino Nano, een diode-ontvanger infra-rouge en een ontvanger 433 mhz.

Stap 2: Le Code Arduino

//InfraRouge

#erbij betrekken

int recvPin = 11; //pin Arduino voor InfraRouge (TOSP4838)

IRrecv irrecv(recvPin);

//RX433

#erbij betrekken

RCSwitch mijnSwitch = RCSwitch();

decode_results resultaten;

ongeldige instelling ()

{

Serieel.begin(9600);

onrecv.enableIRIn();

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

mySwitch.enableReceive(0); // Ontvanger RX433 (XY-MK-5V) op pin 2 van Arduino Uno en Nano

}

// affichage des codes InfraRouge

void ircode (decode_results *results)

{

// Panasonic

if (resultaten->decode_type == PANASONIC) {

Serial.print(resultaten->adres, HEX);

Serial.print(":");

}

Serial.print(resultaten->waarde, HEX);

}//leegte

// afficahge des codes encodes

ongeldige codering (decode_results *results)

{

switch (resultaten->decode_type) {

standaard:

geval ONBEKEND: Serial.print("Inconnu"); pauze;

geval NEC: Serial.print ("NEC"); pauze;

geval SONY: Serial.print ("SONY"); pauze;

geval RC5: Serial.print ("RC5"); pauze;

geval RC6: Serial.print ("RC6"); pauze;

geval DISH: Serial.print ("SCHOTEL"); pauze;

case SHARP: Serial.print("SHARP"); pauze;

geval JVC: Serial.print ("JVC"); pauze;

geval SANYO: Serial.print ("SANYO"); pauze;

geval MITSUBISHI: Serial.print ("MITSUBISHI"); pauze;

geval SAMSUNG: Serial.print ("SAMSUNG"); pauze;

behuizing LG: Serial.print ("LG"); pauze;

geval WHYNTER: Serial.print ("WHYNTER"); pauze;

geval AIWA_RC_T501: Serial.print ("AIWA_RC_T501"); pauze;

geval PANASONIC: Serial.print("PANASONIC"); pauze;

geval DENON: Serial.print("Denon"); pauze;

}

}

// dump les résultats

void dumpInfo (decode_results *results)

{

// Controleer of de buffer overstroomde

if (resultaten->overloop) {

Serial.println ("IR-code te lang. Bewerk IRremoteInt.h en verhoog RAWBUF");

opbrengst;

}

// Toon coderingsstandaard

Serial.print("Codage: ");

codering (resultaten);

Serieel.println("");

// Toon code & lengte

Serial.print("Code: ");

ircode(resultaten);

Serieel.print(" (");

Serial.print(resultaten->bits, DEC);

Serial.println ("bits)");

}

//structuur

void dumpRaw (decode_results * resultaten)

{

// Onbewerkte gegevens afdrukken

Serial.print("Timing[");

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

Serieel.println("]: ");

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

unsigned long x = results->rawbuf * USECPERTICK;

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

Serieel.print("-");

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

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

Serial.print(x, DEC);

} anders { // oneven

Serieel.print(" ");

Serieel.print("+");

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

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

Serial.print(x, DEC);

if (i rawlen-1) Serial.print(", "); //', ' niet nodig voor de laatste

}

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

}

Serieel.println(""); // Nieuwe lijn

}

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

// Dump de decode_results-structuur.

//

void dumpCode (decode_results *results)

{

// Aangifte starten

Serial.print("unsigned int "); // variabel type

Serial.print("rawData["); // arraynaam

Serial.print (resultaten->rawlen - 1, DEC); // matrixgrootte

Serieel.print("] = {"); // Aangifte starten

// Gegevens dumpen

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

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

if (i rawlen-1) Serial.print(", "); // ', ' niet nodig op de laatste

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

}

// Einde aangifte

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

// Opmerking

Serieel.print(" // ");

codering (resultaten);

Serieel.print(" ");

ircode(resultaten);

// Nieuwe lijn

Serieel.println("");

// Dump nu "bekende" codes

if (resultaten->decode_type != UNKNOWN) {

// Sommige protocollen hebben een adres

if (resultaten->decode_type == PANASONIC) {

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

Serial.print(resultaten->adres, HEX);

Serieel.println(";");

}

// Alle protocollen hebben gegevens

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

Serial.print(resultaten->waarde, HEX);

Serieel.println(";");

}

}

lege lus ()

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

{

decode_results resultaten; // Ergens om de resultaten op te slaan

if (irrecv.decode(&results)) { // Pak een IR-code

dumpInfo(&resultaten); // Voer de resultaten uit

dumpRaw(&resultaten); // Voer de resultaten uit in RAW-formaat

dumpCode(&resultaten); // Voer de resultaten uit als broncode

Serieel.println(""); // Blanco regel tussen invoer

irrev.resume(); // Bereid je voor op de volgende waarde

}

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

if (mySwitch.available())

{

int-waarde = mySwitch.getReceivedValue();

Serial.println("RX433");

als (waarde == 0) {

Serial.print("Codage inconnu");

} anders

{

Serial.print("Recu ");

Serial.print(mySwitch.getReceivedValue());

Serieel.print(" / ");

Serial.print(mySwitch.getReceivedBitlength());

Serial.print("bit ");

Serial.print("Protocole: ");

Serial.println(mySwitch.getReceivedProtocol());

}

mySwitch.resetAvailable();

}//RX433

}//lus

Stap 3: Info over codes Infra-Rouge

Il y a plusieurs protocollen:

NEC: 32 bits (protocoldetails)

Sony: 12 of 20 bits (protocoldetails) (Inzicht in Sony IR-afstandsbedieningscodes.)

RC5: 12 bits (protocoldetails)

RC6: 20 of 36 bits (protocoldetails)

Pour Sony et RC5/6, chaque transmissie doit être répétés 3 fois !

LET OP: de bibliotheek IRremote.h ne semble pas pouvoir envoyer des codes codes sur plus de 32bits. Les RC6, 36 doivent donc êtres envoyer en raw, qui prennent plus de taille mémoire.

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

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

Stap 4: Info over codes RX433

L'envoie se fera avec la librairie RCSwitch.h

Voorbeeld mySwitch.send (1975778, 24);

Op peut facilement piloot avec cela des prises commandés.

Aanbevolen: