Пульты и устройства 433МГц, взаимодействие с Arduino.

Пульты и устройства 433 Мгц, взаимодействие с Arduino.

Все больше электронных устройст в наше врями способны связываться и передать информацию с помощью беспроводных технологий. Это позволяет построить удобную, гибкую, масштабируемую и максимально простую в монтажа систему домашней автоматизации. Сегодня речь пойдет об одной из таких технологий, а именно взаимодействие контроллера ( модуля) Arduino с различными пультами работающими на радиочастоте 433 Мгц.

Ранее я часто использовал в своих проектах ИК пульты для управления устройствами на базе Arduino, но сейчас перехожу на радиоканал по причине большего радиуса действия и отсутвия необходимости приямого зрительного контакта, что очень удобно!

Для себя я заказал 4 устройства работающих на часоте 433 Мгц, это пульт брелок в комплекте с приёмником, программируемый пульт- брелок, способный запоминать и воспроизводить сигналы с других пультов 433 Мгц, комплект пульта и розетки и комплект пульта и реле.

Пульты 433 Мгц и Arduino

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

Приемник 433 Мгц для Arduino

Слева передатчик, справа приемник

Для работы приемника с Ардуино потребуется одна из библиотек, я нашел и опробовал 3 библиотеки для устройств 433 Мгц. Нужно отметить что результаты получения сигналов получились разные. С библиотекой VirtualWire, у меня не заработал ни один пульт ( возможно нужно капаться в коде). С библиотекой RemoteSwitch заработал только один пульт ( брелок с антеной). И с последней библиотекой, на мой взгляд самой удачной rc-switch-master заработали 3 из 4 пультов. ( не прочитался только сигнал от пульта с реле). Устройства продаваемые как 433 Мгц могут работать на разных частотах в диапазоне от 433.075 МГц до 434.775 Мгц с шагом в 25 кГц — всего 69 каналов. По крайней мере это распостраненные и разрешенные в большинстве стран ( в том числе в России) диапазоны частот. По этому заказывая эти устройства будьте внимательны, я дам ссылки на тестируемые образцы, которые точно работают.

Подключение пульта 433МГц к  Arduino

Подключение пульта 433МГц к Arduino

Немного расскажу о каждом из пультов. Пульт-брелок с антонной продается в комплекте с приемником. Приемник можно подключить как к ардуино так и использовать самостоятельно, но у этого устройства есть только 2 состояния вкл и выкл ( 0 и 5В соответсвенно). Распиновка следующая GND, 5V, D0…D3, VT. DO…D3 – выходы соотвествующие кнопкам пульта, VT общий выход, получаем 5В при нажатии любой кнопки. Модуль можно подключить к реле и управлять силовой нагрузкой, об этом я писал в статье Пульт 433 Мгц с антенной

Программируемый пульт- белок оказался очень удобной и полезной вещью, может заменить несколько устройств. Для перехода в режим программирования необходимо нажать одновременно 2 клавиши A и В, после 3 сигналов светодиода пульт готов к записи, одновременное нажатие клавиш на исходном пульте и программируемом запишет значение в последний. Чуть позже в видео мы увидем идентичность значений на 2 пультах и просмотрим как это работает.

Программируемый пульт 433МГц

Программируемый пульт 433МГц

Считать код пульта с реле, мне не удалось, возможно он работает на другой частоте. Как самостоятельное устройство он работает вполне нормально комутируя нагрузку 220В. Коды сигналов пульта с розеткой я считал в Arduino, а также продублировал в программируемом пульте. Розетку я использую для перезагрузки роутера, работает отлично. Демонстрация будет в видео.

Пульт 433 МГц с реле

Пульт 433 МГц с реле

Для считывания кодав я дописал пример Receive_Demo из библиотеки rc-swith. Приемник подключаетсся к 2 пину Arduino, питание 5В и GND соответсвенно к Arduino. При использовании полученных кодов кнопок нужно обратить внимание на типы данных задаваемых переменных. Для mySwitch.getReceivedValue() в библиотеке используется тип данных unsigned long, в то время как значение этой функции присваивается переменной value, Которая имеет тип данных int, отсуда возникает разница значений 5592332 и 21772 для пульта с антенной. В программе я создал переменную recive – значение которой можно использовать как mySwitch.getReceivedValue() для упрощения кода. Это пожалуй все что я хотел сказать по поводу пультов 433 Мгц. Ниже будет приведен код программы для считывания кнопок, видео и все необходимые ссылки.

Открыть код
/*
  Тестирование пультов 433 Мгц
  Simple example for receiving 
  https://github.com/sui77/rc-switch/
*/

#include <RCSwitch.h>

RCSwitch mySwitch = RCSwitch();
int led = 13;
void setup() {
  Serial.begin(9600);
  mySwitch.enableReceive(0);  // Receiver on interrupt 0 => that is pin #2
  pinMode(led, OUTPUT);
}

void loop() {
  // Создание переменной для записи кодов кнопок
 unsigned long recive = mySwitch.getReceivedValue();
  if (mySwitch.available()) {
    
    int value = mySwitch.getReceivedValue();
    if (value == 0) {
      Serial.print("Unknown encoding");
    } 
    else {
    if (recive == 5592332 ) {digitalWrite(led, HIGH ); }
    if (recive == 5592512 ) {digitalWrite(led, LOW ); }

        delay(100);
        Serial.print("Value (int): ");
        Serial.print( value );
        Serial.print(" Recive: ");
        Serial.println(recive );
      /* 
      Serial.print("Received ");
      Serial.print( mySwitch.getReceivedValue() );
      Serial.print(" / ");
      Serial.print( mySwitch.getReceivedBitlength() );
      Serial.print("bit ");
      Serial.print("Protocol: ");
      Serial.println( mySwitch.getReceivedProtocol() );
      Serial.print("Value: ");
      Serial.println( value );
      Serial.print("Recive: ");
      Serial.println(recive );
      */
    }
   
    mySwitch.resetAvailable();
  }
}

Пример программы для считывания кодов кнопок пультов яндекс диск.
Библиотека для работы с 433 Мгц RCSwitch.h для Arduino яндекс диск.
Розетка и пульт 433МГц н а Aliexpress.
Реле и пульт 433МГц на Aliexpress.
Программируемый пульт 433МГц на Aliexpress.
Пульт с брелком 433МГц на eBay.
Передатчик и приемник 433МГц для Arduino на eBay.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *