Форум
 

Вернуться   Форум "Фрикер Клуб" - кодграббер своими руками > Основной раздел > Статьи

Важная информация

Ответ
 
Опции темы Опции просмотра
Старый 07.10.2013, 09:14   #1
DIVER_SANT Меню Пользователя
Модератор
 
Аватар для DIVER_SANT
 
Регистрация: 27.03.2011
Сообщений: 1,965
По умолчанию Перехват кодировки 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 вне форума   Ответить с цитированием
Старый 07.10.2013, 22:51   #2
petja Меню Пользователя
Резидент клуба
 
Регистрация: 20.07.2011
Сообщений: 341
По умолчанию Re: Перехват кодировки Princeton с помощью Arduino

Проект рассчитан под статику. А фактически можно принимать к примеру Came 24bit.
Так вот возникает вопрос, а где находятся сам приём пакета с таймингами.
Проще сказать, где надо исправить, что бы можно было принимать к примеру Came.
Не ругайте сильно, я только начал вникать как это всё работает!

Вроде бы нашёл где 0 bit 1 bit f bit sync bit. Значит получается приём пакетов находится RC-swith?
А зачем в библиотеке находится папка exmples, а в ней Webserver. Зачем нужен Webserver?
Удачи!

Последний раз редактировалось petja; 07.10.2013 в 21:12.
petja вне форума   Ответить с цитированием
Старый 08.10.2013, 03:09   #3
DIVER_SANT Меню Пользователя
Модератор
 
Аватар для DIVER_SANT
 
Регистрация: 27.03.2011
Сообщений: 1,965
По умолчанию Re: Перехват кодировки Princeton с помощью Arduino

Вебсервер нужен если хотите через инет управлять подключив дополнительные модули.Starline принимать надо менять прием в библиотеке RCswitch.h
__________________
Правильно поставленный вопрос-на половину полученный ответ;)
++++++++++++++++++++++++++++++++++++++
[url]http://www.youtube.com/watch?v=ktnn-s3ebzw[/url]
DIVER_SANT вне форума   Ответить с цитированием
Старый 08.10.2013, 03:22   #4
ZooRG Меню Пользователя
Вступил в клуб
 
Аватар для ZooRG
 
Регистрация: 06.05.2012
Сообщений: 78
По умолчанию Re: Перехват кодировки Princeton с помощью Arduino

ПРИКОЛЬНО!!! соберу обязательно! коментов бы по больше на СИ! новичкам более понятнее было-бы !!!включалка люстры уже давно лежит на столе разобранная!! тоже все на 315 мгц хотел послушать эфир !!!
ZooRG вне форума   Ответить с цитированием
Старый 08.10.2013, 06:12   #5
DIVER_SANT Меню Пользователя
Модератор
 
Аватар для DIVER_SANT
 
Регистрация: 27.03.2011
Сообщений: 1,965
По умолчанию Re: Перехват кодировки Princeton с помощью Arduino

Вот на этом форуме есть инфа поболее http://arduino.ru/forum/proekty/remo...radiorozetkami
Еще в ютюбе есть видео ролики Осипова Дмитрия-он объясняет как вообще юзать либу rcswitch

Добавлено через 24 минуты
Вот как распознать код кнопок на пульте -видео не мое http://www.youtube.com/watch?v=82eZM...jVefJx&index=3
__________________
Правильно поставленный вопрос-на половину полученный ответ;)
++++++++++++++++++++++++++++++++++++++
[url]http://www.youtube.com/watch?v=ktnn-s3ebzw[/url]
DIVER_SANT вне форума   Ответить с цитированием
Старый 22.10.2013, 19:30   #6
DIVER_SANT Меню Пользователя
Модератор
 
Аватар для DIVER_SANT
 
Регистрация: 27.03.2011
Сообщений: 1,965
По умолчанию Re: Перехват кодировки Princeton с помощью Arduino

Пробовал в приемной части юзать лобовик от starline-дохлый номер нивкакую не видела ардуино сигнал с приемника.Все таки желательно широкая полоса приема для статики.Это не раз уже упоминалось на форуме

Добавлено через 14 минут
Кому интересно пробовал библиотеку rcswitch ,для радиоуправления.Но почему то чуйка слабая была,хоть и антена у аурелевского модуля была 17см.Код вот такой был у меня:
Код:
#include <RCSwitch.h>
int led1 = 13;
int led2 = 12;
RCSwitch mySwitch = RCSwitch();

void setup() {
  Serial.begin(9600);
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  mySwitch.enableReceive(0);  // Receiver on inerrupt 0 => that is pin #2
}

void loop() {
  if (mySwitch.available()) {
    
    int value = mySwitch.getReceivedValue();
    
    
     
     switch (value) {
       case 3939331:
    digitalWrite(led1, HIGH);   // turn the LED on
    
    Serial.println("led1 ON ");
    break;
    
 case 3939340:
 digitalWrite(led1, LOW);
 Serial.println("led1 OFF ");
break; 
 case 3939520:
   digitalWrite(led2, HIGH);   // turn the LED on
   Serial.println("led2 ON ");
   break;
    case 3939376:
   digitalWrite(led2, LOW);   // turn the LED on
   Serial.println("led2 OFF ");
   break; 
case 348160:
digitalWrite(led1, LOW);
   digitalWrite(led2, LOW);   // turn the LED on
   Serial.println("led OFF ALL ");
   break;        
      
    }

    mySwitch.resetAvailable();
  }
}
__________________
Правильно поставленный вопрос-на половину полученный ответ;)
++++++++++++++++++++++++++++++++++++++
[url]http://www.youtube.com/watch?v=ktnn-s3ebzw[/url]
DIVER_SANT вне форума   Ответить с цитированием
Старый 22.10.2013, 20:21   #7
DIVER_SANT Меню Пользователя
Модератор
 
Аватар для DIVER_SANT
 
Регистрация: 27.03.2011
Сообщений: 1,965
По умолчанию Re: Перехват кодировки Princeton с помощью Arduino

Как передатчик использовал такой аналог пульта
Изображения
Тип файла: jpg пульт.jpg (82.3 Кб, 109 просмотров)
__________________
Правильно поставленный вопрос-на половину полученный ответ;)
++++++++++++++++++++++++++++++++++++++
[url]http://www.youtube.com/watch?v=ktnn-s3ebzw[/url]
DIVER_SANT вне форума   Ответить с цитированием
Старый 23.10.2013, 08:22   #8
petja Меню Пользователя
Резидент клуба
 
Регистрация: 20.07.2011
Сообщений: 341
По умолчанию Re: Перехват кодировки Princeton с помощью Arduino

Я предлагаю разобрать, что написано в RC-swith.
Для того чтобы дописать туда например Came 24 bit
Удачи!
petja вне форума   Ответить с цитированием
Старый 23.10.2013, 09:03   #9
DIVER_SANT Меню Пользователя
Модератор
 
Аватар для DIVER_SANT
 
Регистрация: 27.03.2011
Сообщений: 1,965
По умолчанию Re: Перехват кодировки Princeton с помощью Arduino

Надо разбирать файл rcswitch.cpp и rcswitch.h
Добавил расширение тхт,чтоб сюда залить
Вложения
Тип файла: txt RCSwitch.cpp.txt (24.2 Кб, 133 просмотров)
Тип файла: txt RCSwitch.h.txt (4.9 Кб, 80 просмотров)
__________________
Правильно поставленный вопрос-на половину полученный ответ;)
++++++++++++++++++++++++++++++++++++++
[url]http://www.youtube.com/watch?v=ktnn-s3ebzw[/url]

Последний раз редактировалось DIVER_SANT; 23.10.2013 в 09:10.
DIVER_SANT вне форума   Ответить с цитированием
Старый 23.10.2013, 09:31   #10
petja Меню Пользователя
Резидент клуба
 
Регистрация: 20.07.2011
Сообщений: 341
По умолчанию Re: Перехват кодировки Princeton с помощью Arduino

Я так думаю что изменять нужно после вот этого?
Вложения
Тип файла: txt RC swit.cpp.txt (1.5 Кб, 149 просмотров)
petja вне форума   Ответить с цитированием
Ответ
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



Текущее время: 14:09. Часовой пояс GMT +3.


vBulletin 4.1.0 Перевод: zCarot
(C) www.phreakerclub.com
Яндекс.Метрика