No Image

Rcswitch h описание команд

СОДЕРЖАНИЕ
1 280 просмотров
12 декабря 2019

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

Кодировка 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.

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

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

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

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

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();
>
>

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

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

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

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

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

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 секунд(время можно регулировать). Можно добавить в код опрос кнопки при нажатии которой когда нам надо эти посылки мы выпустим.

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

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

Статья нацелена на начинающих фрикеров &#128521;

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

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

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

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

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

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

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

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

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

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();
>
>

Читайте также:  Автоклав для домашнего консервирования инструкция по эксплуатации

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

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

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

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

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

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 секунд(время можно регулировать). Можно добавить в код опрос кнопки при нажатии которой когда нам надо эти посылки мы выпустим.

Беспроводная и дистанционная связь имеет ряд очевидных преимуществ. Даже человек, слабо разбирающийся в данной сфере, сразу укажет вам на самое явное из них – отсутствие проводов.

Если рассуждать с точки зрения практичности беспроводной связи в проектах на Arduino, то к этому можно отнести дистанционное управление любым электронным устройство, будь то машинкой, роботом или другими различными механизмами; мониторинг и контроль за климатом в доме, создание и проектирование умного дома и многое-многое другое.

Материалы

В данной статье речь пойдет о радиосвязи, а конкретнее – о радиомодулях, для подключения их к Arduino и об успешном применении в различных проектах.

Самым интересным способом для знакомства с радиомодулями, является установление соединения между двумя платами Ардуино посредством так называемого приемопередатчика.

Наибольшей популярностью среди радиомодулей с поддержкой Arduino пользуются передатчики с частотой 433МГц. Самое такое устройство обычно делиться на две составные части: это приемник и передатчик. Первый модуль имеет 4 вывода для подключения к плате (но один из них можно не использовать) Два из этих вывода отвечают за питание (соответственно, подключаются к таким контактам на плате, как 5V и Gnd (ground – “земля”), а другой к цифровому выходу на плате.

Читайте также:  Гидростанция своими руками для пресса

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

Наглядная картинка подключенных модулей есть на фото ниже:

Теперь займемся написанием программного кода. Для этого откроем среду разработки – программу Arduino IDE. Для работы с модулями понадобится специализированная библиотека RCSwitch.h, ее скачать вы можете здесь

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

Начнем с передатчика. Этот модуль будет передавать информацию к другой плате, которая, обработав информацию, выполнит со всей подключенной к ней периферии необходимые действия.

Сначала инициализируем библиотеку для работы с модулями, с помощью директивы include

В следующее строчке мы называем наш модуль для дальнейшей работы с ним. Внутри функции void setup прописывается контакт на плате, к которому подключен передатчик. Далее, в цикле, мы можем заметить еще одну новую функцию — mySwitch.send . Она предназначается для непосредственной отправки сообщений. Сначала в ней указывается само сообщение для отправки, а далее размер отправляемого файла. Кстати, указывать отправляемое сообщение можно также и в виде двоичных чисел и строк.

Для приемника будет следующий программный код:

В цикле программного кода можно легко заметить, что при отправке определенного сообщения устанавливается на выходе максимальное напряжение(high), в ином случае – минимальное (low)

Таким образом данный пример-код взаимодействия между элементами радиомодуля вы можете легко применить в собственных проектах: например, ИК-управление с помощь пульта, управление машинкой на этой же основе и многое другое

Надеемся, что статья была для вас полезной. Удачной всем компиляции! И следите за нашим блогом:)

Купить компоненты, используемые в статье, вы можете на нашем сайте: Амперкот.ру

Комментировать
1 280 просмотров
Комментариев нет, будьте первым кто его оставит

Это интересно
Adblock detector