İçindekiler:
- Adım 1: Montaj Montajı
- Adım 2: Le Code Arduino
- Adım 3: Infos Sur Les Codes Infra-Rouge
- Adım 4: Infos Sur Kodları RX433
Video: Récupérer Les Codes Infra-Rouge Et 433mhz: 4 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:20
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ı
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:
Arduino Kullanarak Dokunmatik Olmayan Kapı Zili, Vücut Isısı Algılama, GY-906, 433MHz Nasıl Yapılır: 3 Adım
Arduino Kullanarak Dokunmatik Olmayan Kapı Zili Nasıl Yapılır, Vücut Sıcaklığı Algılama, GY-906, 433MHz: Bugün Dokunmatik olmayan bir kapı zili yapacağız, vücut sıcaklığınızı algılayacak. Şu anki durumda, birinin vücut ısısının normalden yüksek olup olmadığını, birisinin koktuğunu bilmek çok önemlidir. Bu proje, herhangi bir tespit ederse Kırmızı ışık gösterecektir
Genel 433MHz RF Modüllü DIY Telsiz: 4 Adım
Genel 433MHz RF Modüllü DIY Telsiz: Bu projede, işlevsel bir Telsiz oluşturmak için Ebay'den genel 433MHz RF modüllerinin nasıl kullanılacağını göstereceğim. Bu, farklı RF Modüllerini karşılaştıracağımız, d sınıfı bir amplifikatör hakkında biraz öğreneceğimiz ve sonunda Walkie-Talkie'yi oluşturacağımız anlamına geliyor.
Arduino Güneş Enerjili 433mhz Oregon Sensör Olarak Sıcaklık ve Nem Sensörü: 6 Adım
Arduino Güneş Enerjili Sıcaklık ve Nem Sensörü 433mhz Oregon Sensörü Olarak: Bu, güneş enerjisiyle çalışan bir sıcaklık ve nem sensörünün yapısıdır. Sensör, 433mhz Oregon sensörünü taklit eder ve Telldus Net ağ geçidinde görünür. İhtiyacınız olan şey:1x "10-LED" Güneş Enerjisi Hareket Sensörü" Ebay'den. 3.7v meyilli yazdığından emin olun
HT12D Kullanarak RF 433MHZ Radyo Kontrolü HT12E - 433mhz ile HT12E & HT12D Kullanarak Rf Uzaktan Kumanda Yapma: 5 Adım
HT12D Kullanarak RF 433MHZ Radyo Kontrolü HT12E | 433mhz ile HT12E ve HT12D Kullanarak Rf Uzaktan Kumanda Yapma: Bu talimatta size HT12E kodlamalı & HT12D kod çözücü IC.Bu talimatta çok ucuz BİLEŞENLER GİBİ kullanarak veri gönderip alabilirsiniz: HT
RF Modülü 433MHZ - 433MHZ RF Modülünden Mikrodenetleyici Olmadan Alıcı ve Verici Yapın: 5 Adım
RF Modülü 433MHZ | 433MHZ RF Modülünden Mikrodenetleyici Olmadan Alıcı ve Verici Yapın: Kablosuz veri göndermek ister misiniz? kolayca ve mikrodenetleyiciye ihtiyaç duymadan mı?İşte başlıyoruz, bu talimatta size kullanılmaya hazır temel rf verici ve alıcıyı göstereceğim!Bu talimatta çok ver