Სარჩევი:

Récupérer Les Codes Infra-Rouge Et 433 mhz: 4 ნაბიჯი
Récupérer Les Codes Infra-Rouge Et 433 mhz: 4 ნაბიჯი

ვიდეო: Récupérer Les Codes Infra-Rouge Et 433 mhz: 4 ნაბიჯი

ვიდეო: Récupérer Les Codes Infra-Rouge Et 433 mhz: 4 ნაბიჯი
ვიდეო: Télécommande universelle, pour portail ou garage automatique. 2024, ნოემბერი
Anonim
Récupérer Les Codes Infra-Rouge Et 433 mhz
Récupérer Les Codes Infra-Rouge Et 433 mhz

თუმცა, ეს არის რამდენიმე კოდი, რომელიც მითითებულია სტილის, ლამპის, ავტოფარეხისა და ავტომატური ფუნქციონირებისთვის 433 mhz (RX433) maus aussi ceux des télécommandes infra-rouge de télévision au autre.

ჩვენ შეგვიძლია შემოგთავაზოთ, შეიმუშაოთ მეტი ავტომატური მონტაჟი, ელჩის კოდი და პილოტი იმპორტისთვის!

ნაბიჯი 1: ლე მონტაჟი

ლე მონტაჟი
ლე მონტაჟი

მარტივი, Arduino Nano, une diode réceptrice infra-rouge et un récepteur 433 mhz.

ნაბიჯი 2: Le Code Arduino

// ინფრარუჟი

#ჩართეთ

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

IRrecv irrecv (recvPin);

// RX433

#ჩართეთ

RCSwitch mySwitch = RCSwitch ();

decode_results results;

ბათილად დაყენება ()

{

სერიული.დაწყება (9600);

irrecv.enableIRIn ();

ircv.blink13 (ჭეშმარიტი); // allume la LED interne lors de l'envoie InfraRouge

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

}

// affichage des codes InfraRouge

ბათილი ircode (decode_results *შედეგები)

{

// პანასონიკი

თუ (შედეგები-> დეკოდი_ ტიპი == PANASONIC) {

Serial.print (შედეგები-> მისამართი, HEX);

Serial.print (":");

}

Serial.print (შედეგები-> მნიშვნელობა, HEX);

} // ბათილია

// afficahge des codes encodés

ბათილად კოდირება (decode_results *შედეგები)

{

გადართვა (შედეგები-> დეკოდირების_ტიპი) {

ნაგულისხმევი:

საქმე უცნობი: Serial.print ("Inconnu"); შესვენება;

საქმე NEC: Serial.print ("NEC"); შესვენება;

საქმე SONY: Serial.print ("SONY"); შესვენება;

საქმე RC5: Serial.print ("RC5"); შესვენება;

საქმე RC6: Serial.print ("RC6"); შესვენება;

საქმე DISH: Serial.print ("DISH"); შესვენება;

საქმე SHARP: Serial.print ("SHARP"); შესვენება;

საქმე JVC: Serial.print ("JVC"); შესვენება;

საქმე SANYO: Serial.print ("SANYO"); შესვენება;

საქმე MITSUBISHI: Serial.print ("MITSUBISHI"); შესვენება;

საქმე SAMSUNG: Serial.print ("SAMSUNG"); შესვენება;

საქმე LG: Serial.print ("LG"); შესვენება;

საქმე WHYNTER: Serial.print ("WHYNTER"); შესვენება;

საქმე AIWA_RC_T501: Serial.print ("AIWA_RC_T501"); შესვენება;

საქმე PANASONIC: Serial.print ("PANASONIC"); შესვენება;

საქმე DENON: Serial.print ("დენონი"); შესვენება;

}

}

// dump les résultats

void dumpInfo (decode_results *results)

{

// შეამოწმეთ გადავსებულია თუ არა ბუფერი

თუ (შედეგები-> გადავსება) {

Serial.println ("IR კოდი ძალიან გრძელია. შეცვალეთ IRremoteInt.h და გაზარდეთ RAWBUF");

დაბრუნების;

}

// კოდირების სტანდარტის ჩვენება

Serial.print ("კოდირება:");

კოდირება (შედეგები);

Serial.println ("");

// აჩვენეთ კოდი და სიგრძე

Serial.print ("კოდი:");

ircode (შედეგები);

Serial.print ("(");

Serial.print (შედეგები-> ბიტი, DEC);

Serial.println ("ბიტი");

}

// სტრუქტურა

void dumpRaw (decode_results *results)

{

// დაბეჭდე ნედლეული მონაცემები

Serial.print ("დრო [");

Serial.print (შედეგები-> rawlen-1, DEC);

Serial.println ("]:");

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

ხელმოუწერელი გრძელი x = შედეგები-> rawbuf * USECPERTICK;

თუ (! (მე და 1)) {// თუნდაც

Serial.print ("-");

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

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

Serial.print (x, DEC);

} სხვა {// უცნაური

Serial.print ("");

Serial.print ("+");

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

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

Serial.print (x, DEC);

if (i rawlen-1) Serial.print (","); // ',' ბოლო არ არის საჭირო

}

თუ (! (i % 8)) Serial.println ("");

}

Serial.println (""); // Ახალი ხაზი

}

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

// გადაყარეთ დეკოდირებული_შედეგების სტრუქტურა.

//

void dumpCode (decode_results *results)

{

// დეკლარაციის დაწყება

Serial.print ("ხელმოუწერელი int"); // ცვლადი ტიპი

Serial.print ("rawData ["); // მასივის სახელი

Serial.print (შედეგები-> rawlen - 1, საოლქო საარჩევნო კომისია); // მასივის ზომა

Serial.print ("] = {"); // დეკლარაციის დაწყება

// მონაცემების გადაყრა

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

Serial.print (შედეგები-> rawbuf * USECPERTICK, DEC);

if (i rawlen-1) Serial.print (","); // ',' ბოლო არ არის საჭირო

თუ (! (i & 1)) Serial.print ("");

}

// დეკლარაციის დასრულება

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

// კომენტარი

Serial.print ("//");

კოდირება (შედეგები);

Serial.print ("");

ircode (შედეგები);

// Ახალი ხაზი

Serial.println ("");

// ახლა გადაყარეთ "ცნობილი" კოდები

თუ (შედეგები-> დეკოდი_ ტიპი! = უცნობი) {

// ზოგიერთ პროტოკოლს აქვს მისამართი

თუ (შედეგები-> დეკოდი_ ტიპი == PANASONIC) {

Serial.print ("ხელმოუწერელი int addr = 0x");

Serial.print (შედეგები-> მისამართი, HEX);

Serial.println (";");

}

// ყველა პროტოკოლს აქვს მონაცემები

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

Serial.print (შედეგები-> მნიშვნელობა, HEX);

Serial.println (";");

}

}

ბათილი მარყუჟი ()

/********************************************** *ინფრარუჟი ***************************************

{

decode_results results; // სადმე შედეგების შესანახად

if (irrecv.decode (& results)) {// აიღეთ IR კოდი

dumpInfo (და შედეგები); // შედეგების გამოტანა

dumpRaw (& შედეგები); // შედეგების გამოტანა RAW ფორმატში

dumpCode (& შედეგები); // გამოიტანეთ შედეგები წყაროს კოდის სახით

Serial.println (""); // ცარიელი ხაზი ჩანაწერებს შორის

irrecv.resume (); // მოემზადეთ შემდეგი მნიშვნელობისთვის

}

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

თუ (mySwitch.available ())

{

int მნიშვნელობა = mySwitch.getReceivedValue ();

Serial.println ("RX433");

თუ (მნიშვნელობა == 0) {

Serial.print ("Codage inconnu");

} სხვა

{

Serial.print ("Reçu");

Serial.print (mySwitch.getReceivedValue ());

Serial.print (" /");

Serial.print (mySwitch.getReceivedBitlength ());

Serial.print ("ცოტა");

Serial.print ("პროტოკოლი:");

Serial.println (mySwitch.getReceivedProtocol ());

}

mySwitch.resetAvailable ();

} // RX433

} // მარყუჟი

ნაბიჯი 3: Info Sur Les Codes Infra-Rouge

პლუს პროტოკოლები:

NEC: 32 ბიტი (პროტოკოლის დეტალები)

Sony: 12 ou 20 ბიტი (პროტოკოლის დეტალები) (Sony IR დისტანციური კოდების გაგება.)

RC5: 12 ბიტი (პროტოკოლის დეტალები)

RC6: 20 ან 36 ბიტი (პროტოკოლის დეტალები)

ჩაასხით Sony et RC5/6, გადაცემათა კოლოფი გააკეთეთ 3 გზა!

ყურადღება: la librairie IRremote.h ne semble pas pouvoir ელჩი des codes codés sur plus de 32bits. Les RC6, 36 არ გაეგზავნა ელჩს ნედლეულში, უფრო მეტიც, როგორც დამატებული მოგზაურობის დროს.

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

მაგალითი: (0x devant le code) et nombre de bit irsend.sendNEC (0xA55A38C7, 32);

ნაბიჯი 4: ინფორმაცია Sur Codes RX433

L’envoie se fera avec la librairie RCSwitch.h

მაგალითი mySwitch.send (1975778, 24);

On peut facilement პილოტი avec cela des prises commandés.

გირჩევთ: