Перехват кодировки Princeton с помощью Arduino

Кодировка Princeton, используется в беспроводных пультах управления электроприборами, радиозвонках и прочих бытовых девайсах. Частота работы в нашей стране ASK 433,92 MHz, а вот за бугром еще и на частоте 315 MHz.

PrincetonDevice

Статья нацелена на начинающих фрикеров 😉

Про кодировку можно прочитать в статье «Форматы статических кодов CAME и NICE» https://phreaker.ru/447

Для того чтоб поймать и декодировать сигнал нам понадобиться :

1. Плата Arduino, я буду использовать для примера Arduino Nano.

ArduinoNano

2. Понадобиться нам приемный и передающий модули на диапазон 433,9 Мгц (Ам), использовал то, что было под рукой модуль приемника Aurel Rx rc-nbk, а передатчик XY-FST.

PrincetonRxTx

3. Само собой нам нужно настроить среду программирования – дам несколько ссылок где популярно все это написано, как установить Arduino IDE.

https://edugalaxy.intel.ru/?automodule=blog&blogid=2611&showentry=5087

http://www.pobot.ru/topic/show/4/

http://freeduino.ru/arduino/quickstart.html

4. Соеденить Arduino с модулями приемника и передатчика,приемник подсоединен выходом на Pin D2 платы ардуино, а передатчик на Pin D10.

PrincetonSchem

Вот теперь нам надо скачать библиотеку которая будет нам помогать декодировать посылки пультов RCswitch_2.51.zip. Теперь нам надо его распаковать в директорию libreries в папке где находиться Arduino Ide, пример пути вот такой c:\arduino-1.5.2\libraries\RCswitch

Настройкии подготовку закончили, пора начинать принимать посылки от пультов, для этого открываем Arduino Ide ->Файл->Создать

PrincetonArduinoIDE

Стираем весь код и вписываем вот такой:

#include <RCSwitch.h>

RCSwitch mySwitch = RCSwitch();

void setup(){
Serial.begin(9600);
mySwitch.enableReceive(0);  // Receiver on inerrupt 0 => that is pin #2
Serial.println(«Scanning 433,9Mhz «);
}

void loop() {
if (mySwitch.available()) {
int value = mySwitch.getReceivedValue();
if (value == 0) {
Serial.print(«Unknown encoding»);
} else {
Serial.print(«Received «);
Serial.print( mySwitch.getReceivedValue() );
Serial.print(» / «);
Serial.print( mySwitch.getReceivedBitlength() );
Serial.print(«bit «);
Serial.print(«Protocol: «);
Serial.println( mySwitch.getReceivedProtocol() );
}
mySwitch.resetAvailable();
}
}

Компилируем и заливаем в плату. Потом открываем монитор ком порта или терминальную программу, кому в чем удобнее смотреть. Нажимаем кнопки пульта который есть или ждем прием от близлежащих радиозвонков или дистанционно управляемых электроприборов.

Поймал вот такой пульт:

PrincetonArduinoIDE2

Теперь берем циферки полученные от пульта (на рисунке обведены красным)

PrincetonArduinoIDE12

и вставляем во вновь созданный файл:

 

/*
Пример передачи принятой посылки на выключение и включение люстры.
*/

#include <RCSwitch.h>

RCSwitch mySwitch = RCSwitch();

void setup() {
Serial.begin(9600);
// Transmitter is connected to Arduino Pin #10
mySwitch.enableTransmit(10);
// Optional set pulse length.
// mySwitch.setPulseLength(320);
// Optional set protocol (default is 1, will work for most outlets)
// mySwitch.setProtocol(2);
// Optional set number of transmission repetitions.
// mySwitch.setRepeatTransmit(15);
}

void loop() {
/* Same switch as above, but using decimal code */
mySwitch.send(3939520, 24);//код включения лампы
delay(5000);
mySwitch.send( 3939331, 24);//код выключения лампы
delay(5000);
}

Компилируем и заливаем в платку и вуала свет включается и выключается через каждые 5 секунд(время можно регулировать). Можно добавить в код опрос кнопки при нажатии которой когда нам надо эти посылки мы выпустим.

Используемая литература:

https://phreaker.ru/447

http://www.wes.id.au/2013/07/decoding-and-sending-433mhz-rf-codes-with-arduino-and-rc-switch/

https://code.google.com/p/rc-switch/

https://www.google.ru

Обсуждение тут:  https://phreaker.ru/forum/showthread.php?t=1228

DIVER_SANT

(c) www.PhreakerClub.com

Related Post

Форматы статических кодов CAME и NICEФорматы статических кодов CAME и NICE

Несмотря на моральное «устаревание»,  статические коды продолжают использоваться производителями модулей управления воротами и шлагбаумами. Как оказалось, статические коды встречаются и в новых сигнализациях. Ниже приводятся несколько распространенных форматов кодов. Длительности

Переборщик кодов для шлагбаума CameПереборщик кодов для шлагбаума Came

Очень давно сделал устройство для перебора кодов шлагбаумных ворот фирмы Came. Код статический 13-бит, первый бит в заголовке всегда одинаковый, это упрощает задачу и сокращает время перебора в два раза.

Алгоритмический кодграббер в брелоке с рабочим дисплеемАлгоритмический кодграббер в брелоке с рабочим дисплеем

Алгоритмический кодграббер своими руками в брелоке с рабочим дисплеем, бесплатная боевая прошивка. Это прошивка алгоритмического кодграббера для брелока Sheriff ZX 750. Никаких переделок внутри брелока не требуется, дисплей рабочий, 3