Cuprins:
- Pasul 1: Le Montage
- Pasul 2: Le Code Arduino
- Pasul 3: Infos Sur Les Codes Infra-Rouge
- Pasul 4: Informații privind codurile RX433
Video: Récupérer Les Codes Infra-Rouge Et 433mhz: 4 Steps
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:45
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 montage, envoyer ces codes et piloter n’importe quoi!
Pasul 1: Le Montage
Simple, un Arduino Nano, une diode réceptrice infra-rouge și un récepteur 433 mhz.
Pasul 2: Le Code Arduino
// InfraRouge
#include
int recvPin = 11; // pin Arduino pour récepteur InfraRouge (TOSP4838)
IRrecv irrecv (recvPin);
// RX433
#include
RCSwitch mySwitch = RCSwitch ();
rezultate decode_results;
configurare nulă ()
{
Serial.begin (9600);
irrecv.enableIRIn ();
irrecv.blink13 (true); // 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
cod nul irid (rezultate decode_results *)
{
// Panasonic
if (results-> decode_type == PANASONIC) {
Serial.print (rezultate-> adresă, HEX);
Serial.print (":");
}
Serial.print (rezultate-> valoare, HEX);
} // nul
// afficahge des codes encodés
codificare nulă (decode_results * rezultate)
{
comutare (rezultate-> decodare_tip) {
Mod implicit:
caz NECUNOSCUT: Serial.print ("Inconnu"); pauză;
caz NEC: Serial.print ("NEC"); pauză;
carcasa SONY: Serial.print ("SONY"); pauză;
caz RC5: Serial.print ("RC5"); pauză;
caz RC6: Serial.print ("RC6"); pauză;
caz DISH: Serial.print ("DISH"); pauză;
carcasa SHARP: Serial.print ("SHARP"); pauză;
caz JVC: Serial.print ("JVC"); pauză;
caz SANYO: Serial.print ("SANYO"); pauză;
carcasa MITSUBISHI: Serial.print ("MITSUBISHI"); pauză;
caz SAMSUNG: Serial.print ("SAMSUNG"); pauză;
carcasa LG: Serial.print ("LG"); pauză;
caz WHYNTER: Serial.print ("WHYNTER"); pauză;
caz AIWA_RC_T501: Serial.print ("AIWA_RC_T501"); pauză;
caz PANASONIC: Serial.print ("PANASONIC"); pauză;
caz DENON: Serial.print ("Denon"); pauză;
}
}
// aruncați rezultatele
void dumpInfo (decode_results * rezultate)
{
// Verificați dacă bufferul s-a revărsat
if (rezultate-> depășire) {
Serial.println ("Codul IR prea lung. Editați IRremoteInt.h și măriți RAWBUF");
întoarcere;
}
// Afișare standard de codare
Serial.print ("Codare:");
codificare (rezultate);
Serial.println ("");
// Afișați codul și lungimea
Serial.print ("Cod:");
ircode (rezultate);
Serial.print ("(");
Serial.print (rezultate-> biți, DEC);
Serial.println ("biți)");
}
//structura
void dumpRaw (decode_results * rezultate)
{
// Imprimați date brute
Serial.print ("Timing [");
Serial.print (rezultate-> rawlen-1, DEC);
Serial.println ("]:");
for (int i = 1; i rawlen; i ++) {
unsigned long x = results-> rawbuf * USECPERTICK;
if (! (i & 1)) {// chiar
Serial.print ("-");
if (x <1000) Serial.print ("");
if (x <100) Serial.print ("");
Serial.print (x, DEC);
} else {// ciudat
Serial.print ("");
Serial.print ("+");
if (x <1000) Serial.print ("");
if (x <100) Serial.print ("");
Serial.print (x, DEC);
if (i rawlen-1) Serial.print (","); // ',' nu este necesar pentru ultima
}
if (! (i% 8)) Serial.println ("");
}
Serial.println (""); // Linie nouă
}
//+=============================================================================
// Renunțați la structura decode_results.
//
void dumpCode (decode_results * rezultate)
{
// Începeți declarația
Serial.print ("unsigned int"); // tip variabil
Serial.print ("rawData ["); // numele matricei
Serial.print (rezultate-> rawlen - 1, DEC); // dimensiunea matricei
Serial.print ("] = {"); // Începeți declarația
// Renunțați la date
for (int i = 1; i rawlen; i ++) {
Serial.print (rezultate-> rawbuf * USECPERTICK, DEC);
if (i rawlen-1) Serial.print (","); // ',' nu este necesar pe ultimul
if (! (i & 1)) Serial.print ("");
}
// Declarație de încheiere
Serial.print ("};"); //
// Cometariu
Serial.print ("//");
codificare (rezultate);
Serial.print ("");
ircode (rezultate);
// Linie nouă
Serial.println ("");
// Acum aruncați codurile „cunoscute”
if (results-> decode_type! = UNKNOWN) {
// Unele protocoale au o adresă
if (results-> decode_type == PANASONIC) {
Serial.print ("unsigned int addr = 0x");
Serial.print (rezultate-> adresă, HEX);
Serial.println (";");
}
// Toate protocoalele au date
Serial.print ("nesemnate int data = 0x");
Serial.print (rezultate-> valoare, HEX);
Serial.println (";");
}
}
bucla nulă ()
/ ************************************************** * InfraRouge ******************************************* /
{
rezultate decode_results; // Undeva pentru a stoca rezultatele
if (irrecv.decode (& results)) {// Prindeți un cod IR
dumpInfo (& rezultate); // Afișați rezultatele
dumpRaw (& rezultate); // Afișați rezultatele în format RAW
dumpCode (& rezultate); // Afișați rezultatele ca cod sursă
Serial.println (""); // Linie goală între intrări
irrecv.resume (); // Pregătește-te pentru următoarea valoare
}
/ ************************************************** *** RX433 ******************************************** /
if (mySwitch.available ())
{
valoare int = mySwitch.getReceivedValue ();
Serial.println ("RX433");
if (valoare == 0) {
Serial.print ("Codage inconnu");
} altfel
{
Serial.print ("Reçu");
Serial.print (mySwitch.getReceivedValue ());
Serial.print ("/");
Serial.print (mySwitch.getReceivedBitlength ());
Serial.print ("bit");
Serial.print ("Protocole:");
Serial.println (mySwitch.getReceivedProtocol ());
}
mySwitch.resetAvailable ();
} // RX433
}//buclă
Pasul 3: Infos Sur Les Codes Infra-Rouge
Il și mai multe protocoale:
NEC: 32 biți (detalii protocol)
Sony: 12 sau 20 de biți (detalii protocol) (Înțelegerea codurilor de la distanță IR Sony.)
RC5: 12 biți (detalii protocol)
RC6: 20 sau 36 biți (detalii protocol)
Pour Sony et RC5 / 6, chaque transmission doit être répétés 3 fois!
ATENȚIE: librairie IRremote.h ne semble pas pouvoir envoyer des codes codés 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 cu la librairie IRremote.h
Exemplu: (0x în fața codului) și numărul de biți irsend.sendNEC (0xA55A38C7, 32);
Pasul 4: Informații privind codurile RX433
L’envoie se fera cu la librairie RCSwitch.h
Exemple mySwitch.send (1975778, 24);
On peut facilement piloter with cela des prises commandés.
Recomandat:
Control radio RF 433MHZ folosind HT12D HT12E - Realizarea unei telecomenzi RF folosind HT12E și HT12D cu 433mhz: 5 pași
Control radio RF 433MHZ folosind HT12D HT12E | Efectuarea unei telecomenzi RF Utilizarea HT12E și HT12D Cu 433mhz: În acest instructiv vă voi arăta cum să realizați o telecomandă RADIO folosind modulul receptor 433mhz transmițător cu codare HT12E & IC decodificator HT12D. În acest instructable veți putea trimite și primi date folosind COMPONENTE foarte ieftine CA: HT
ROBOCAR CONTROLAT DE LA DISTANȚĂ INFRA RED CU UTILIZARE MCU AVR (ATMEGA32): 5 pași
ROBOCAR CONTROLAT DE LA DISTANȚĂ INFRA RED CU UTILIZARE MCU AVR (ATMEGA32): Prezentul PROIECT descrie proiectarea și implementarea unui RoboCar controlat de la distanță cu infraroșu (IR) care poate fi utilizat pentru diferite aplicații de control automat fără pilot. Am proiectat RoboCar controlat de la distanță (mișcare stânga-dreapta / față-spate). T
Modul RF 433MHZ - Faceți receptor și emițător de la modulul RF 433MHZ fără microcontroler: 5 pași
Modul RF 433MHZ | Faceți receptor și emițător din modulul RF 433MHZ fără microcontroler: doriți să trimiteți date fără fir? cu ușurință și fără microcontrolere? Iată-ne, în acest instructable vă voi arăta emițătorul și receptorul RF de bază gata de utilizare! În acest instructable veți putea trimite și primi date folosind foarte ver
Automatizare la domiciliu super simplă Raspberry Pi 433MHz: 7 pași
Automatizare la domiciliu super simplă Raspberry Pi 433MHz: acest tutorial este unul dintre multe când vine vorba de utilizarea unui Raspberry Pi pentru a controla dispozitivele wireless din casă. La fel ca multe altele, vă va arăta cum să utilizați o pereche ieftină de emițător / receptor conectată la Pi pentru a interacționa cu dispozitivele care funcționează
ESP-12 Infra Red Blaster: 7 pași
ESP-12 Infra Red Blaster: Blaster de telecomandă Infra Red folosind esp8266 Transmite codurile de telecomandă primite de pe Web care acceptă mai multe dispozitive de ieșire. Construit într-o pagină web simplă, în principal pentru testare. Utilizarea normală se face prin mesaje POST care pot proveni din pagini web sau din IFTT