Tabla de contenido:
- Paso 1: Le Montage
- Paso 2: Le Code Arduino
- Paso 3: Infos Sur Les Codes Infra-Rouge
- Paso 4: Códigos Infos Sur RX433
Video: Récupérer Les Codes Infra-Rouge Et 433mhz: 4 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:43
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!
Paso 1: Le Montage
Simple, un Arduino Nano, un diodo réceptrice infra-rouge y un récepteur 433 mhz.
Paso 2: Le Code Arduino
// InfraRouge
#incluir
int recvPin = 11; // pin Arduino para récepteur InfraRouge (TOSP4838)
IRrecv irrecv (recvPin);
// RX433
#incluir
RCSwitch mySwitch = RCSwitch ();
decode_results resultados;
configuración vacía ()
{
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
void ircode (decode_results * resultados)
{
// Panasonic
if (resultados-> decode_type == PANASONIC) {
Serial.print (resultados-> dirección, HEX);
Serial.print (":");
}
Serial.print (resultados-> valor, HEX);
}//vacío
// afficahge des codes encodés
codificación vacía (decode_results * resultados)
{
switch (resultados-> decode_type) {
defecto:
caso DESCONOCIDO: Serial.print ("Inconnu"); rotura;
caso NEC: Serial.print ("NEC"); rotura;
caso SONY: Serial.print ("SONY"); rotura;
caso RC5: Serial.print ("RC5"); rotura;
caso RC6: Serial.print ("RC6"); rotura;
caso DISH: Serial.print ("PLATO"); rotura;
caso SHARP: Serial.print ("SHARP"); rotura;
caso JVC: Serial.print ("JVC"); rotura;
caso SANYO: Serial.print ("SANYO"); rotura;
caso MITSUBISHI: Serial.print ("MITSUBISHI"); rotura;
caso SAMSUNG: Serial.print ("SAMSUNG"); rotura;
caso LG: Serial.print ("LG"); rotura;
case WHYNTER: Serial.print ("WHYNTER"); rotura;
caso AIWA_RC_T501: Serial.print ("AIWA_RC_T501"); rotura;
caso PANASONIC: Serial.print ("PANASONIC"); rotura;
caso DENON: Serial.print ("Denon"); rotura;
}
}
// dump les résultats
void dumpInfo (decode_results * resultados)
{
// Verifica si el búfer se desbordó
if (resultados-> desbordamiento) {
Serial.println ("Código IR demasiado largo. Edite IRremoteInt.hy aumente RAWBUF");
regreso;
}
// Mostrar estándar de codificación
Serial.print ("Codificación:");
codificación (resultados);
Serial.println ("");
// Mostrar código y longitud
Serial.print ("Código:");
ircode (resultados);
Serial.print ("(");
Serial.print (resultados-> bits, DEC);
Serial.println ("bits)");
}
//estructura
void dumpRaw (decode_results * resultados)
{
// Imprimir datos brutos
Serial.print ("Tiempo [");
Serial.print (resultados-> rawlen-1, DEC);
Serial.println ("]:");
para (int i = 1; i rawlen; i ++) {
unsigned long x = resultados-> rawbuf * USECPERTICK;
if (! (i & 1)) {// par
Serial.print ("-");
if (x <1000) Serial.print ("");
si (x <100) Serial.print ("");
Serial.print (x, DEC);
} más {// impar
Serial.print ("");
Serial.print ("+");
si (x <1000) Serial.print ("");
si (x <100) Serial.print ("");
Serial.print (x, DEC);
if (i rawlen-1) Serial.print (","); // ',' no es necesario para el último
}
if (! (i% 8)) Serial.println ("");
}
Serial.println (""); // Nueva línea
}
//+=============================================================================
// Elimina la estructura decode_results.
//
void dumpCode (decode_results * resultados)
{
// Iniciar declaración
Serial.print ("unsigned int"); // tipo de variable
Serial.print ("rawData ["); // nombre de la matriz
Serial.print (resultados-> rawlen - 1, DEC); // tamaño de la matriz
Serial.print ("] = {"); // Iniciar declaración
// Volcar datos
para (int i = 1; i rawlen; i ++) {
Serial.print (resultados-> rawbuf * USECPERTICK, DEC);
if (i rawlen-1) Serial.print (","); // ',' no es necesario en el último
if (! (i & 1)) Serial.print ("");
}
// Fin de la declaración
Serial.print ("};"); //
// Comentario
Serial.print ("//");
codificación (resultados);
Serial.print ("");
ircode (resultados);
// Nueva línea
Serial.println ("");
// Ahora vuelca los códigos "conocidos"
if (results-> decode_type! = UNKNOWN) {
// Algunos protocolos tienen una dirección
if (resultados-> decode_type == PANASONIC) {
Serial.print ("unsigned int addr = 0x");
Serial.print (resultados-> dirección, HEX);
Serial.println (";");
}
// Todos los protocolos tienen datos
Serial.print ("datos int sin firmar = 0x");
Serial.print (resultados-> valor, HEX);
Serial.println (";");
}
}
bucle vacío ()
/ *********************************************** * InfraRouge **************************************** /
{
decode_results resultados; // En algún lugar para almacenar los resultados
if (irrecv.decode (& results)) {// Coge un código IR
dumpInfo (& resultados); // Salida de los resultados
dumpRaw (& resultados); // Salida de los resultados en formato RAW
dumpCode (& resultados); // Muestra los resultados como código fuente
Serial.println (""); // Línea en blanco entre entradas
irrecv.resume (); // Prepárate para el próximo valor
}
/ *********************************************** *** RX433 ****************************************** /
si (mySwitch.available ())
{
valor int = mySwitch.getReceivedValue ();
Serial.println ("RX433");
si (valor == 0) {
Serial.print ("Codage inconnu");
} demá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
}//círculo
Paso 3: Infos Sur Les Codes Infra-Rouge
Il y a plusieurs protocoles:
NEC: 32 bits (detalles del protocolo)
Sony: 12 o 20 bits (detalles del protocolo) (Comprensión de los códigos remotos de infrarrojos de Sony).
RC5: 12 bits (detalles del protocolo)
RC6: 20 ou 36 bits (detalles del protocolo)
Vierta Sony et RC5 / 6, chaque transmisión doit être répétés 3 fois!
ATENCIÓN: la 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 avec la librairie IRremote.h
Ejemplo: (0x devant le code) et le nombre de bits irsend.sendNEC (0xA55A38C7, 32);
Paso 4: Códigos Infos Sur RX433
L'envoie se fera avec la librairie RCSwitch.h
Ejemplo mySwitch.send (1975778, 24);
Sobre peut facilement piloter avec cela des prises commandés.
Recomendado:
Cómo hacer un timbre no táctil, detección de temperatura corporal, GY-906, 433MHz usando Arduino: 3 pasos
Cómo hacer un timbre no táctil, detección de temperatura corporal, GY-906, 433MHz usando Arduino: Hoy haremos un timbre no táctil, detectará la temperatura de su cuerpo. En la situación actual, es muy importante saber si la temperatura corporal de alguien es más alta de lo normal, cuando alguien está kocking. Este proyecto mostrará una luz roja si detecta alguna
Control de radio RF 433MHZ con HT12D HT12E - Hacer un control remoto Rf usando HT12E y HT12D con 433 mhz: 5 pasos
Control de radio RF 433MHZ usando HT12D HT12E | Hacer un control remoto Rf usando HT12E y HT12D con 433 mhz: En este instructivo, le mostraré cómo hacer un control remoto RADIO usando un módulo receptor transmisor de 433 mhz con codificación HT12E y amp; IC decodificador HT12D. En este instructable podrás enviar y recibir datos usando COMPONENTES muy, muy baratos COMO: HT
Módulo RF 433MHZ - Haga el receptor y el transmisor desde el módulo RF de 433 MHZ sin ningún microcontrolador: 5 pasos
Módulo RF 433MHZ | Haga el receptor y el transmisor desde el módulo RF de 433 MHZ sin ningún microcontrolador: ¿Le gustaría enviar datos inalámbricos? fácilmente y sin necesidad de microcontrolador? ¡Aquí vamos, en este instructivo le mostraré mi transmisor y receptor de rf básico listo para ser usado! En este instructivo usted puede enviar y recibir datos usando muy ver
Automatización del hogar Raspberry Pi 433MHz súper simple: 7 pasos
Automatización doméstica súper simple Raspberry Pi 433MHz: este tutorial es uno entre muchos cuando se trata de usar una Raspberry Pi para controlar dispositivos inalámbricos en el hogar. Como muchos otros, le mostrará cómo usar un par de transmisor / receptor barato conectado a su Pi para interactuar con dispositivos que operan
Dispara a las luces con un NES Zapper (RF 433MHz): 6 pasos (con imágenes)
Dispara a las luces con un NES Zapper (RF 433MHz): ¿Por qué apagar las luces con un interruptor si puedes dispararlas con tu NES Zapper? Ya construí una luz láser en un viejo NES Zapper roto cuando esta idea apareció en mi cabeza. Le gustó más, así que reemplacé la luz láser con esta. Un profesional ideal