Copiar un mando inalámbrico 315/433Mhz con Arduino


En esta entrada vamos a ver cómo copiar un dispositivo de radiofrecuencia a 315/433Mhz con un procesador como Arduino. Un proceso (preocupantemente) sencillo que puede ser de utilidad en muchas ocasiones.

Los dispositivos RF a 315 o 433 Mhz son muy frecuentes, por ejemplo, en algunos mandos a distancia inalámbricos (algunos aires acondicionados), control de iluminación, en sensores y alarmas baratos, entre otros.

Copiar un dispositivo RF 315/433Mhz puede ser de interés en múltiples ocasiones, cómo por ejemplo poder actuar en una máquina que tiene un mando RF de forma remota (WiFi), añadir un temporizador, o integrarlos en una instalación domótica o de IoT.

Otro interés en ser capaces de capturar las señales de sensores RF (por ejemplo, los de las alarmas baratas que hemos comentado). Estos sensores son muy baratos y están altamente optimizados para funcionar con pilas durante varios años. Leerlos permite añadir sensores a nuestra casa de forma sencilla. Por ejemplo, podemos añadir un sensor de movimiento, de puerta o de ventana, para encender una luz.

Anuncio:

Sin embargo, ya avisamos que no os va a funcionar con todos los mandos. En especial, no funcionará con aquellos mandos con mayor seguridad (por ejemplo, los de las puertas de garaje) que usan mecanismos de seguridad como el Rolling Code, precisamente, para que no puedan ser copiados.

En algunos países es ilegal clonar dispositivos de RF (aunque sea los tuyos propios). Comprobar la legislación vigente en vuestro país antes de aplicar el contenido de esta entrada.

Clonar un dispositivo RF 315/433

El procedimiento para copiar un dispositivo RF 433Mzh es muy sencillo. Únicamente vamos a necesitar un receptor y receptor de 1-2€, como vimos en la entrada Comunicación inalámbrica en Arduino con módulos RF 433Mhz.

Para esto poder leer los datos enviados por el dispositivo RF usaremos la librería RCSwitch disponible en https://github.com/sui77/rc-switch/. Para que funcione, deberemos conectar la salida de datos del receptor al pin D2 de Arduino, ya que la librería usa interrupciones para detectar el código.

Abrimos el ejemplo ReceiveDemo_Simple de la librería RCswitch lo cargamos en Arduino. A continuación, accionamos el dispositivo RF (pulsamos la llave, disparamos el sensor, etc), y veremos la salida como la siguiente.

Si no hemos añadido una antena adicional (cuestan unos pocos céntimos) es posible que tengamos que poner el receptor muy cerca, a menos de 10cm.

Así de fácil. Ese es el código que envía tu dispositivo cuando es accionado. Ahora podemos hacer un Sketch que compruebe el código recibido con los de nuestros dispositivos, para hacer las acciones que queramos cuando accionemos el dispositivo RF.

Emular un dispositivo RF 315/433

Si ahora queremos “actuar” como el mando, simplemente tenemos que cargar el siguiente Sketch, y cambiar los datos por los que ha enviado el dispositivo RF en el apartado anterior.

Al ejecutar el Sketch el Arduino enviará el mismo código que el dispositivo original, y se realizarán las mismas acciones. ¡Así de fácil!

Como vemos, es muy sencillo clonar y emular un mando RF de 315/433Mhz con un procesador como Arduino (casi asusta ¿eh?). Y por esto nunca hay que confiar algo que realmente requiera seguridad en estos mandos simples de 315/433Mhz, cualquiera puede copiarlos en segundos.

Sin embargo, es una funcionalidad muy útil a la hora de domotizar, convertir en IoT dispositivos existentes, o añadir sensores inalámbricos a vuestro proyecto.

Si te ha gustado esta entrada y quieres leer más sobre Arduino puedes consultar la sección
tutoriales de Arduino

Anuncio:

Previous Cómo gestionar grupos de usuarios en Raspberry Pi
Next Crear y leer ficheros Json fácilmente en C# con JsonNET
1000
1 Comment threads
0 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
1 Comment authors
newest oldest
Carles

En primer lugar agradecer todo el contenido del blog. Es muy interesante y me ha servido de mucha ayuda.

El problema que tengo es que he probado diferentes receptores RF y ni me leen el mando, ni soy capaz de montar dos Arduinos uno “emitiendo” y otro “recibiendo”, con los códigos de ejemplo de las librerías y no consigo recibir nada. Alguna sugerencia de que puedo estar haciendo mal?

Gracias!