Показать сообщение отдельно
Старый 07.10.2013, 09:14   #1
DIVER_SANT Меню Пользователя
Модератор
 
Аватар для DIVER_SANT
 
Регистрация: 27.03.2011
Сообщений: 2,309
По умолчанию Перехват кодировки Princeton с помощью Arduino

Полная версия тут http://phreakerclub.com/1547



Решил написать статейку на тему перехвата кодировки Princeton, которая используется в беспроводных пультах управления электроприборами.

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


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

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

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

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

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

https://edugalaxy.intel.ru/?automodu...showentry=5087

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

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

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


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

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

PHP код:
#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.printlnmySwitch.getReceivedProtocol() );
 }
 
mySwitch.resetAvailable();
 }
 } 
Компилируем и заливаем в плату. Потом открываем монитор ком порта или терминальную программу, кому в чем удобнее смотреть. Нажимаем кнопки пульта который есть или ждем прием от близлежащих радиозвонков или дистанционно управляемых электроприборов.
Настройкии подготовку закончили, пора начинать принимать посылки от пультов, для этого открываем Arduino Ide ->Файл->Создать
__________________
Правильно поставленный вопрос-на половину полученный ответ;)
++++++++++++++++++++++++++++++++++++++
[url]http://www.youtube.com/watch?v=ktnn-s3ebzw[/url]
DIVER_SANT вне форума   Ответить с цитированием