RF Sniffer на 433 МГц с Arduino
В наши дни радиочастотные передатчики / приемники с частотой 433 МГц очень популярны среди любителей электроники и возиться с электроникой. Эти дешевые радиомодули ближнего радиуса действия могут использоваться практически для всех микроконтроллеров для широкого спектра приложений, для которых требуется беспроволочное радиоуправление, хотя в этом случае мы будем использовать его как радиочастотный снифер.
Удивительно, но широко не отмечалось, что полоса ISM (промышленная, научная и медицинская), сосредоточенная на 433,92 МГц, на самом деле охватывает колоссальную 1,7 МГц между 433,05 МГц и 434,79 МГц. Еще одна неприятная вещь заключается в том, что когда отсутствует доступность сигнала, схема AGC приемника растет, и все, что вы получаете, - это нежелательный шум на выводе данных. Это затрудняет фактическое захват «слишком быстрых» данных от шума с помощью самодельного логического анализатора звуковых карт или обычного осциллографа для целей аналитического обзора / обратного проектирования. На самом деле, около 100 миллисекунд радиомолчания после приема данных до того, как АРУ возобновит резервное копирование, позволяет вам искать радиомолчание, а затем мгновенно ищет данные, чтобы вынюхать сигнал. Это действительно неуклюжий процесс проб и ошибок!
Настройка
Позвольте мне показать вам, как вы можете легко обрабатывать упакованные данные радиосигналов без использования дорогостоящих тестовых устройств (эта идея на самом деле более удобна, чем использование чего-то чрезвычайно дорогого). Ниже представлен простой и дешевый 433-Mz RF Sniffer, идеально подходящий для тестирования / реконструирования большинства беспроводных устройств с частотой 433 МГц. Как вы можете видеть, установка находится на земле Arduino с приемным модулем 433 МГц и интерфейсом USB.
Код для захвата радиочастотных сигналов 433 МГц на самом деле является слегка измененной частью известной библиотеки «RCSwitch» ( https://github.com/sui77/rc-switch ). Ниже приведены снимки моей начальной настройки эксперимента и окна последовательного монитора моего ноутбука. В дополнение к Arduino Serial Monitor, я попробовал такую же настройку позже с PuTTY.
Я использовал простой двухканальный пульт дистанционного управления 433 МГц для отправки кодов снифферу для выполнения большинства экспериментов, выполненных в моей лаборатории. Здесь вы можете увидеть слежение за тем же пультом дистанционного управления:
Вот код:
/*
-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.h>
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();
}
}
Если у вас есть телефон Android / планшет с USB-OTG, вы можете играть с сниффером без рабочего стола / портативного компьютера. Просто установите «DroidTerm (v7.2)» и запустите его «USB-виртуальный последовательный порт» (Baud Rate 9600). Смотрите снимок экрана с моего телефона. Процедура проста: откройте «Serial Monitor» и установите скорость передачи в бодах до 9600. Когда вы нажимаете кнопки на пульте дистанционного управления с частотой 433 МГц, принятые 433 МГц радиочастотные коды затем должны быть напечатаны в «Десятичное число / бит / Протокол ". Первый результат - от кнопки «А» моего пульта дистанционного управления - «Десятичный (24 бит): 2220642 и протокол 1.« Примечание: десятичный (24 бит) 2220642 = двоичный: 001000011110001001100010.
Кстати, протокол радиочастотных устройств с частотой 433 МГц довольно интересен. Ниже приведен снимок формы сигнала радиосигнала, захваченного моим надежным DSO. В основном, когда вы нажимаете кнопку, одна и та же последовательность передается несколько раз, и перед повторением одной и той же последовательности происходит небольшая задержка (в миллисекундах). Каждая последовательность состоит из двух типов прямоугольных волн: длинный, затем короткий, который представляет собой «1», а короткий, за которым следует длинный, который представляет «0.». Я понял, что длинный или длинная длина примерно в три раза превышает ширину короткого замыкания или короткого замыкания. Имея это в виду, я удержал полную последовательность включения-выключения (OOK), соответствующую кнопке «А», как и ожидалось. Конечно, кнопка «A» моей пульта дистанционного управления выводит 24-битный код «001000011110001001100010» (2220642 в десятичной форме), как это было показано в точности по установке Arduino, но с ложным «0» в конце (что может быть незначительным Значение «конец сообщения»).
Завершение
Там у вас есть - вот как я захватил и проанализировал сигналы радиочастотного пульта 433 МГц. Я планирую продолжить эту статью с помощью нескольких руководств по обратному проектированию в будущем. Отсюда вы можете начать эксперименты, чтобы сделать ваши собственные радиопередатчики с помощью частей, расположенных вокруг, для передачи «реплицированных» кодов, чтобы возиться с вашими (или вашими соседями - хаха!) Существующими 433-МГц радиочастотными бытовыми приборами или аналогичные вещицы. Конечно, сложная часть - это выяснить, как кодируются данные. Если вы можете захватывать и декодировать сигналы с устройства, вы можете воспроизвести его с помощью микроконтроллера и передатчика с частотой 433 МГц и взять его под контроль (радиочастотный передатчик имеет один вывод данных, который может быть подключен к любому выводу микроконтроллера ввода / вывода) ,
Предупреждение!
В каждой стране есть регулирующий орган, ответственный за радиосвязь. Крайне важно, чтобы вы знали о законах, касающихся использования нелицензированных радиопередатчиков. Если вы не соблюдаете эти правила, вы можете столкнуться с большими неприятностями.