Hoy en día, los módulos de transmisor/receptor de RF de 433 MHz son muy populares entre los aficionados a la electrónica y a los aficionados a la pintura. Estos módulos de radio baratos de corto alcance se pueden usar con casi todos los microcontroladores para una amplia gama de aplicaciones que requieren un control de radio sin cables, aunque en este caso, lo usaremos como un sniffer de RF.
Sorprendentemente, no se ha notado ampliamente que la banda ISM (Industrial, Scientific, and Medical – Industrial, Científica y Médica), centrada en 433,92 MHz, en realidad cubre una amplitud de 1.7 MHz entre 433.05 MHz y 434.79 MHz. Otra cosa un poco molesta es que, cuando no hay disponibilidad de señal, el circuito AGC del receptor se intensifica y todo lo que obtiene es ruido no deseado en el pin de datos. Esto hace que sea difícil capturar realmente los datos demasiado rápidos del ruido con un analizador lógico de tarjeta de sonido hecho en casa o un osciloscopio ordinario para fines de revisión analítica/ingeniería inversa. En realidad, hay alrededor de 100 milisegundos de silencio de radio después de una recepción de datos antes de que el AGC regrese nuevamente, le permite buscar el silencio de la radio y luego busca los datos inmediatamente para detectar la señal. ¡Es realmente un proceso torpe de prueba y error!
Preparar
Permítame mostrarle cómo puede manejar las señales de radio empaquetadas con datos fácilmente sin tener que usar costosos engranajes de prueba (esta idea es realmente más útil que usar algo extremadamente caro).
A continuación, se presenta un sencillo y económico Sniffer RF de 433 Mz ideal para probar/invertir la ingeniería de la mayoría de los dispositivos inalámbricos de 433 MHz. Como puede ver, la configuración está en el terreno Arduino con un módulo receptor de 433 MHz y la interfaz USB.
El código para capturar las señales de RF de 433 MHz es en realidad una parte ligeramente modificada de la famosa biblioteca RCSwitch (https://github.com/sui77/rc-switch). A continuación se muestran instantáneas de la configuración de experimento inicial y la ventana del monitor de serie de mi computadora portátil. Además del Arduino Serial Monitor, intenté la misma configuración más tarde con PuTTY.
Usé un control remoto simple de dos canales y 433 MHz para enviar códigos al sniffer para llevar a cabo la mayor parte de la experimentación realizada en mi laboratorio. Puede ver un desmontaje del mismo control remoto aquí: http://www.electroschematics.com/13188/rf-remote-switch-teardown/.
Aquí está el código:
/*
-Arduino 433MHz RF Sniffer
-Based on an example from the RCSwitch Library
-https://github.com/sui77/rc-switch/
-Hardware: Arduino Nano & Generic 433MHz RF Receiver
-T.K.Hareendran/2018
*/
#include
RCSwitch mySwitch = RCSwitch();
void setup() {
Serial.begin(9600);
mySwitch.enableReceive(0); // Receiver input on interrupt 0 (D2)
pinMode(13, OUTPUT); // D13 as output- Optional
}
void loop() {
if (mySwitch.available()) {
Serial.print("Received ");
Serial.print( mySwitch.getReceivedValue() );
Serial.print(" / ");
Serial.print( mySwitch.getReceivedBitlength() );
Serial.print("Bit ");
Serial.print(" // ");
Serial.print("Protocol: ");
Serial.println( mySwitch.getReceivedProtocol() );
digitalWrite(13, HIGH); // Toggle the onboard LED if serial is available - Optional
delay(1);
digitalWrite(13, LOW);
mySwitch.resetAvailable();
}
}
Si tiene un teléfono/tableta Android con USB-OTG, entonces puede jugar con el sniffer sin una computadora de escritorio/portátil. Simplemente instale DroidTerm (v7.2) y ejecute su opción USB Serial Port (Baud Rate 9600). Vea a continuación la captura de pantalla de mi teléfono. El procedimiento es simple: abra el Serial Monitor y configure la velocidad en baudios en 9600. Cuando presione los botones en su transmisor de control remoto de 433 MHz, los códigos de RF de 433 MHz recibidos deberían imprimirse en un «Número decimal/Bit/Formato de protocolo. El primer resultado, desde el botón «A» de mi control remoto, es «Decimal (24 bits): 2220642 y protocolo 1.» Nota: decimal (24 bits) 2220642 = binario: 001000011110001001100010.
Por cierto, el protocolo de los dispositivos de RF de 433 MHz es bastante interesante. Vale la pena echarle un vistazo a este enlace para obtener una descripción general: https://fetzerch.github.io/2014/11/15/reveng433/
A continuación se muestra una instantánea de la forma de onda de la señal de RF capturada por mi confiable DSO. Básicamente, cuando presiona el botón, la misma secuencia se transmite varias veces, y hay un pequeño retraso (en milisegundos) antes de repetir la misma secuencia. Cada secuencia consta de dos tipos de ondas cuadradas: un largo encendido seguido de un corto apagado, que representa un «1», y un corto encendido seguido de un largo apagado, que representa un «0». Descubrí que una larga o largo es aproximadamente tres veces el ancho de un corto o corto. Con eso en mente, obtuve la secuencia completa de entrada y salida (OOK) correspondiente al botón «A» como se esperaba. Claro, el botón «A» de mi control remoto emite el código de 24 bits «001000011110001001100010» (2220642 en decimal), como lo revela exactamente la configuración de Arduino.
Terminando
Ahí lo tienes, así es como capturé y analicé las señales de control remoto de RF de 433 MHz. Planeo seguir este artículo con un par de guías de ingeniería inversa en el futuro. Desde aquí, puedes comenzar a experimentar para hacer tus propios transmisores de radio, con la ayuda de las partes, para transmitir códigos «replicados» para jugar con tus electrodomésticos de 433 MHz controlados por RF o los de tu vecino (¡jaja!). artefactos similares. Por supuesto, la parte difícil es descubrir cómo se codifican los datos. Si puede capturar y decodificar señales desde el dispositivo, puede reproducirlas usando un microcontrolador y un transmisor de 433 MHz y tomar el control (el transmisor de RF tiene un pin de datos, que puede conectarse a cualquier pin de E/S del microcontrolador) . De nuevo, los comentarios son más que bienvenidos. ¡Que te diviertas!
¡Advertencia legal!
Cada país tiene un organismo regulador responsable de las comunicaciones de radio. Es imprescindible que conozca las leyes sobre el uso de transmisores de radio sin licencia. No cumplir con esas reglas puede causarle muchos problemas.
Fuente original texto e imágenes (en inglés): 433MHz RF Sniffer.