Проект доступен для бесплатного скачивания!
Arduino IRemote NEC, RC5, RC6, SONY, JVC

Управление реле с помощью пульта дистанционного управления


Функциональное описание:

  • Дистанционное управление реле и силовыми элементами.
  •       
  • Средой передачи является инфракрасный диод на пульте дистанционного управления (передатчик), а на приемнике - модуль KY-022.
  • Принятый сигнал может быть декодирован, и ему может быть назначено определенное действие, которое контролируется Arduino. Измерьте количество, отправьте его на сервер. Включите выход, освещение, котел, ящик по требованию, выполните действие по времени, последовательность.
  • Использование простое и универсальное. Дальность действия приемника до 10 метров. Может использоваться для различных протоколов: NEC, RC5, RC6, SONY, JVC.
  • Используемое оборудование:

  • Arduino Nano Arduino Nano
  • KY-022 приемникKY-022
  • 8-канальное реле 8-канальное реле
  • эксплуатация:

  • Дистанционное управление огнями
  • Открытие гаража / въездных ворот по запросу
  • Измерение по запросу
  • Беспроводное управление игрушками (техника RC, индивидуальные проекты ...)
  • Исходный код с заголовочным файлом IRremote.h для загрузки сигнала и управления реле 1x:

  • Коды возврата от одной кнопки. С другой стороны, при повторном нажатии он возвращает 820, 20. Когда кнопка удерживается, повторяется тот же код, повторяемый под RC5.
  • /*|----------------------------------------------------------|*/
    /*|SKETCH PRE NACITANIE KODOV Z DIALKOVYCH OVLADACOV         |*/
    /*|VYHOTOVIL: MARTIN CHLEBOVEC                               |*/
    /*|EMAIL: martinius96@gmail.com                              |*/
    /*|DOSKA:  Arduino Uno, Mega, Nano, NEFUNGUJE NA ESP8266     |*/
    /*|WEB: https://arduino.php5.sk                              |*/
    /*|LICENCIA: MIT                                             |*/
    /*|----------------------------------------------------------|*/
    #include <IRremote.h> //kniznica pre senzor KY-022
    int led = 13;
    int ledstate = LOW;
    int RECV_PIN = 8;
    IRrecv irrecv(RECV_PIN); //KY-022 na RECV VYVODE
    decode_results results;
    void setup() {
      pinMode(led, OUTPUT);
      Serial.begin(115200);
      irrecv.enableIRIn(); //prijimaj signaly
    }
    
    void loop() {
      if (irrecv.decode(&results)) {
        Serial.println("Zaznamenany kod: ");
        Serial.println(results.value, HEX);
        String abc = String(results.value, HEX);
        if ((abc == "820") || (abc == "20")) { //hodnoty tlacidla hore na ovladaci
          ledstate = !ledstate;
          digitalWrite(led, ledstate);
        }
        irrecv.resume(); // Povol nacitavanie dalsich hodnot
      }
      delay (100); // kratky delay, odrusenie citania chyb
    }