Taula de continguts:
- Pas 1: Le Montage
- Pas 2: Le Code Arduino
- Pas 3: Informació sobre els codis Infra-Rouge
- Pas 4: Informació sobre els codis RX433
Vídeo: Récupérer Les Codes Infra-Rouge Et 433mhz: 4 Steps
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:15
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!
Pas 1: Le Montage
Simple, un Arduino Nano, un diode réceptrice infra-rouge i un récepteur 433 mhz.
Pas 2: Le Code Arduino
// InfraRouge
#incloure
int recvPin = 11; // pin Arduino pour récepteur InfraRouge (TOSP4838)
IRrecv irrecv (recvPin);
// RX433
#incloure
RCSwitch mySwitch = RCSwitch ();
resultats decode_results;
configuració nul·la ()
{
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
ircode nul (resultats decode_results *)
{
// Panasonic
if (resultats-> decode_type == PANASONIC) {
Serial.print (resultats-> adreça, HEX);
Serial.print (":");
}
Serial.print (resultats-> valor, HEX);
}//buit
// afficahge des codes encodés
codificació nul·la (decode_results * resultats)
{
commutador (resultats-> decode_type) {
per defecte:
cas desconegut: Serial.print ("Inconnu"); trencar;
cas NEC: Serial.print ("NEC"); trencar;
cas SONY: Serial.print ("SONY"); trencar;
cas RC5: Serial.print ("RC5"); trencar;
cas RC6: Serial.print ("RC6"); trencar;
cas DISH: Serial.print ("DISH"); trencar;
cas SHARP: Serial.print ("SHARP"); trencar;
cas JVC: Serial.print ("JVC"); trencar;
cas SANYO: Serial.print ("SANYO"); trencar;
cas MITSUBISHI: Serial.print ("MITSUBISHI"); trencar;
cas SAMSUNG: Serial.print ("SAMSUNG"); trencar;
cas LG: Serial.print ("LG"); trencar;
cas WHYNTER: Serial.print ("WHYNTER"); trencar;
cas AIWA_RC_T501: Serial.print ("AIWA_RC_T501"); trencar;
cas PANASONIC: Serial.print ("PANASONIC"); trencar;
cas DENON: Serial.print ("Denon"); trencar;
}
}
// bolca els resultats
void dumpInfo (resultats decode_results *)
{
// Comproveu si la memòria intermèdia ha desbordat
if (resultats-> desbordament) {
Serial.println ("El codi IR és massa llarg. Editeu IRremoteInt.h i augmenteu RAWBUF");
tornar;
}
// Mostra l'estàndard de codificació
Serial.print ("Codificació:");
codificació (resultats);
Serial.println ("");
// Mostra el codi i la longitud
Serial.print ("Codi:");
ircode (resultats);
Serial.print ("(");
Serial.print (resultats-> bits, DEC);
Serial.println ("bits)");
}
// estructura
void dumpRaw (decode_results * resultats)
{
// Imprimeix dades en brut
Serial.print ("Temporització [");
Serial.print (resultats-> rawlen-1, DEC);
Serial.println ("]:");
for (int i = 1; i rawlen; i ++) {
unsigned long x = results-> rawbuf * USECPERTICK;
if (! (i & 1)) {// fins i tot
Serial.print ("-");
if (x <1000) Serial.print ("");
if (x <100) Serial.print ("");
Serial.print (x, DEC);
} else {// imparell
Serial.print ("");
Serial.print ("+");
if (x <1000) Serial.print ("");
if (x <100) Serial.print ("");
Serial.print (x, DEC);
if (i rawlen-1) Serial.print (","); // ',' no és necessari per a l'últim
}
if (! (i% 8)) Serial.println ("");
}
Serial.println (""); // Nova línia
}
//+=============================================================================
// Voleu l’estructura decode_results.
//
void dumpCode (resultats decode_results *)
{
// Iniciar declaració
Serial.print ("int signat"); // tipus variable
Serial.print ("rawData ["); // nom de la matriu
Serial.print (resultats-> rawlen - 1, DEC); // mida de la matriu
Serial.print ("] = {"); // Iniciar declaració
// Bolqueu les dades
for (int i = 1; i rawlen; i ++) {
Serial.print (resultats-> rawbuf * USECPERTICK, DEC);
if (i rawlen-1) Serial.print (","); // ',' no és necessari a l'últim
if (! (i & 1)) Serial.print ("");
}
// Declaració final
Serial.print ("};"); //
// Comenta
Serial.print ("//");
codificació (resultats);
Serial.print ("");
ircode (resultats);
// Nova línia
Serial.println ("");
// Ara bolqueu els codis "coneguts"
if (resultats-> decode_type! = INCONEGUT) {
// Alguns protocols tenen una adreça
if (resultats-> decode_type == PANASONIC) {
Serial.print ("unsigned int addr = 0x");
Serial.print (resultats-> adreça, HEX);
Serial.println (";");
}
// Tots els protocols tenen dades
Serial.print ("dades sense signar int = 0x");
Serial.print (resultats-> valor, HEX);
Serial.println (";");
}
}
bucle buit ()
/ ************************************************** * InfraRouge ******************************************* /
{
resultats decode_results; // En algun lloc on emmagatzemar els resultats
if (irrecv.decode (& results)) {// Agafa un codi IR
dumpInfo (& resultats); // Sortiu els resultats
dumpRaw (& resultats); // Emet els resultats en format RAW
dumpCode (& resultats); // Sortiu els resultats com a codi font
Serial.println (""); // Línia en blanc entre les entrades
irrecv.resume (); // Prepareu-vos per al següent valor
}
/ ************************************************** *** RX433 ********************************************* /
if (mySwitch.available ())
{
valor int = mySwitch.getReceivedValue ();
Serial.println ("RX433");
if (valor == 0) {
Serial.print ("Codage inconnu");
} més
{
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
} // bucle
Pas 3: Informació sobre els codis Infra-Rouge
Hi ha diversos protocols:
NEC: 32 bits (detalls del protocol)
Sony: 12 o 20 bits (detalls del protocol) (Descripció dels codis remots de Sony IR).
RC5: 12 bits (detalls del protocol)
RC6: 20 o 36 bits (detalls del protocol)
Pour Sony et RC5 / 6, chaque transmission doit être répétition 3 fois!
ATENCIÓ: la llibertat IRremote.h no 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 amb la librairie IRremote.h
Exemple: (0x devant le code) i el nombre de bits irsend.sendNEC (0xA55A38C7, 32);
Pas 4: Informació sobre els codis RX433
L’envoie se fera avec la librairie RCSwitch.h
Exemple mySwitch.send (1975778, 24);
On peut facilement piloter amb cela des prises commandés.
Recomanat:
Feu parcel·les precioses a partir de dades Arduino en viu (i deseu les dades a Excel): 3 passos
Feu gràfics bonics a partir de dades Arduino en viu (i deseu les dades a Excel): a tots ens agrada jugar amb la nostra funció de loteria P … a l’IDE Arduino. Tot i que, si bé pot ser útil per a aplicacions bàsiques, les dades s’esborren com més s’afegeixen punts i no resulta especialment agradable als ulls. El traçador IDE Arduino no
Robo-recruiter de Makerspace: obteniu les respostes a les vostres preguntes més freqüents: 4 passos
Robo-recruiter de Makerspace: obteniu les respostes a les vostres preguntes més freqüents: L’any passat vaig presentar al director de l’escola la idea de tenir una classe extra-curricular de Makerspace per a estudiants que tenien curiositat per saber-ho tot sobre totes les eines que tenim. Per tant, quan finalment va acceptar, vaig saber que havia d’agafar l’atenció de tots els estudiants
Control de ràdio RF 433MHZ mitjançant HT12D HT12E - Fer un control remot RF mitjançant HT12E i HT12D amb 433mhz: 5 passos
Control de ràdio RF 433MHZ mitjançant HT12D HT12E | Fer un control remot RF mitjançant HT12E i HT12D amb 433 mhz: en aquest instructiu us mostraré com fer un control remot RÀDIO mitjançant un mòdul receptor de transmissor 433 mhz amb codificació HT12E i amp; IC descodificador HT12D. En aquest instructiu, podeu enviar i rebre dades mitjançant COMPONENTS molt econòmics COM: HT
Mòdul RF 433MHZ - Feu receptor i transmissor des del mòdul RF 433MHZ sense cap microcontrolador: 5 passos
Mòdul RF 433MHZ | Feu receptor i transmissor des del mòdul RF 433MHZ sense cap microcontrolador: voleu enviar dades sense fils? fàcilment i sense necessitat de microcontrolador? Aquí anem, en aquest instructiu us mostraré el meu transmissor i receptor de RF bàsics preparats per utilitzar-se! En aquest instructiu podeu enviar i rebre dades amb molt de veritat
Amagueu les vostres coses i les vostres dades: mantingueu-les segurs del món: 8 passos
Amagueu les vostres coses i les vostres dades: mantingueu-les segurs del món: el bell món sempre té moltes sorpreses. Comparteixo amb vosaltres una mica de la meva experiència per protegir-me de mi mateixa i de les meves coses. Espero que us ajudi