İçindekiler:

Récupérer Les Codes Infra-Rouge Et 433mhz: 4 Adım
Récupérer Les Codes Infra-Rouge Et 433mhz: 4 Adım

Video: Récupérer Les Codes Infra-Rouge Et 433mhz: 4 Adım

Video: Récupérer Les Codes Infra-Rouge Et 433mhz: 4 Adım
Video: 2022 LONG r/MaliciousCompliance Compilation #002 2024, Kasım
Anonim
Récupérer Les Codes Infra-Rouge Et 433mhz
Récupérer Les Codes Infra-Rouge Et 433mhz

433 mhz (RX433) için en uygun kodlar.

Pourra donc ensuite, grace à une autre montaj, envoyer ces kodları ve piloter n'importe quoi !

Adım 1: Montaj Montajı

Montaj
Montaj

Basit, Arduino Nano, une diode receptrice infra-rouge ve un récepteur 433 mhz.

Adım 2: Le Code Arduino

//Kızılötesi

#Dahil etmek

int recvPin = 11; // Arduino'nun alıcı InfraRouge'u (TOSP4838) pinleyin

IRrecv irrecv(recvPin);

//RX433

#Dahil etmek

RCSwitch mySwitch = RCSwitch();

decode_results sonuçları;

geçersiz kurulum ()

{

Seri.başla(9600);

irrecv.enableIRIn();

irrecv.blink13(true);//L'envoie InfraRouge'daki tüm LED'ler

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

}

// afficage des kodları InfraRouge

geçersiz ircode (decode_results *sonuçlar)

{

// Panasonic

if (sonuçlar->decode_type == PANASONIC) {

Serial.print(sonuçlar->adres, HEX);

Seri.print(":");

}

Serial.print(sonuçlar->değer, HEX);

}//geçersiz

// kodların kodlarının açıklanması

geçersiz kodlama (decode_results *sonuçlar)

{

geçiş (sonuçlar->decode_type) {

varsayılan:

vaka BİLİNMİYOR: Serial.print("Inconnu"); kırmak;

durum NEC: Serial.print("NEC"); kırmak;

durum SONY: Serial.print("SONY"); kırmak;

durum RC5: Serial.print("RC5"); kırmak;

durum RC6: Serial.print("RC6"); kırmak;

case DISH: Serial.print("ÇANAK"); kırmak;

case SHARP: Serial.print("SHARP"); kırmak;

durum JVC: Serial.print("JVC"); kırmak;

case SANYO: Serial.print("SANYO"); kırmak;

case MITSUBISHI: Serial.print("MITSUBISHI"); kırmak;

durum SAMSUNG: Serial.print("SAMSUNG"); kırmak;

dava LG: Serial.print("LG"); kırmak;

case NEDEN: Serial.print("NEDEN"); kırmak;

durum AIWA_RC_T501: Serial.print("AIWA_RC_T501"); kırmak;

durum PANASONIC: Serial.print("PANASONIC"); kırmak;

case DENON: Serial.print("Denon"); kırmak;

}

}

// sonuçların dökümü

geçersiz dumpInfo (decode_results *sonuçlar)

{

// Tamponun taşıp taşmadığını kontrol edin

if (sonuçlar->taşma) {

Serial.println("IR kodu çok uzun. IRremoteInt.h'yi düzenleyin ve RAWBUF'u artırın");

dönüş;

}

// Kodlama standardını göster

Serial.print("Kodlama: ");

kodlama(sonuçlar);

Seri.println("");

// Kodu ve uzunluğu göster

Serial.print("Kod: ");

ircode(sonuçlar);

Seri.print(" (");

Serial.print(sonuçlar->bitler, Aralık);

Serial.println("bitler)");

}

//yapı

void dumpRaw (decode_results *sonuçlar)

{

// Ham verileri yazdır

Serial.print("Zamanlama[");

Serial.print(sonuçlar->rawlen-1, Aralık);

Serial.println("]: ");

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

unsigned uzun x = sonuçlar->rawbuf * USECPERTICK;

if (!(i & 1)) { // çift

Seri.print("-");

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

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

Seri.baskı(x,Aralık);

} başka { // tek

Seri.print(" ");

Seri.print("+");

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

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

Seri.baskı(x,Aralık);

if (i rawlen-1) Serial.print(", "); //', ' sonuncusu için gerekli değil

}

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

}

Seri.println(""); // Yeni hat

}

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

// decode_results yapısını boşaltın.

//

geçersiz dumpCode (decode_results *sonuçlar)

{

// Bildirimi başlat

Serial.print("imzasız int"); // değişken türü

Serial.print("rawData["); // dizi adı

Serial.print(sonuçlar->rawlen - 1, Aralık); // dizi boyutu

Serial.print("] = {"); // Bildirimi başlat

// Verileri boşalt

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

Serial.print(sonuçlar->rawbuf * USECPERTICK, DEC);

if (i rawlen-1) Serial.print(", "); // ', ' sonuncusunda gerekli değil

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

}

// Bildirimi sonlandır

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

// Yorum Yap

Seri.print(" // ");

kodlama(sonuçlar);

Seri.print(" ");

ircode(sonuçlar);

// Yeni hat

Seri.println("");

// Şimdi "bilinen" kodları boşaltın

if (sonuçlar->decode_type != BİLİNMEYEN) {

// Bazı protokollerin bir adresi vardır

if (sonuçlar->decode_type == PANASONIC) {

Serial.print("imzasız int adres = 0x");

Serial.print(sonuçlar->adres, HEX);

Seri.println(";");

}

// Tüm protokollerin verileri var

Serial.print("imzasız int veri = 0x");

Serial.print(sonuçlar->değer, HEX);

Seri.println(";");

}

}

boşluk döngüsü ()

/******************************************************** * Kızılötesi **************************************************/

{

decode_results sonuçları; // Sonuçların saklanacağı bir yer

if (irrecv.decode(&results)) { // Bir IR kodu al

dumpInfo(&sonuçlar); // Sonuçları çıkar

dumpRaw(&sonuçlar); // Sonuçları RAW formatında çıktıla

dumpCode(&sonuçlar); // Sonuçları kaynak kod olarak çıktıla

Seri.println(""); // Girişler arasında boş satır

irrecv.özgeçmiş(); // Bir sonraki değer için hazırlanın

}

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

if (mySwitch.available())

{

int değeri = mySwitch.getReceivedValue();

Serial.println("RX433");

if (değer == 0) {

Serial.print("Kodlama bağlantısı");

} Başka

{

Serial.print("Reçu");

Serial.print(mySwitch.getReceivedValue());

Seri.print(" / ");

Serial.print(mySwitch.getReceivedBitlength());

Seri.print("bit");

Serial.print("Protokol: ");

Serial.println(mySwitch.getReceivedProtocol());

}

mySwitch.resetAvailable();

}//RX433

}//döngü

Adım 3: Infos Sur Les Codes Infra-Rouge

Artı protokoller:

NEC: 32 bit (protokol ayrıntıları)

Sony: 12 veya 20 bit (protokol ayrıntıları)(Sony IR uzaktan kumanda kodlarını anlama.)

RC5: 12 bit (protokol ayrıntıları)

RC6: 20 veya 36 bit (protokol detayları)

Sony ve RC5/6'yı dökün, şanzıman iletimi 3 fois !

DİKKAT: la librairie IRremote.h ne semble pas pouvoir envoyer des kodları kodlar sur plus de 32bits. Les RC6, 36 doivent donc êtres envoyer en ham, prennent plus de taille memoire.

L'envoie des kodlar, IRremote.h'nin en iyi kitapçığıdır.

Örnek: (0x devant le code) ve nombre de bits irsend.sendNEC(0xA55A38C7, 32);

Adım 4: Infos Sur Kodları RX433

L'envoie se fera avec la librairie RCSwitch.h

Örnek mySwitch.send(1975778, 24);

Açık hava aracı pilotu avec cela des prises Commandés.

Önerilen: