ESPsmart » Блог » Подключение ИК передатчика к ESP8266

Подключение ИК передатчика к ESP8266

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

Подключение ИК передатчика к ESP8266


Как подключить IR Transmitter к ESP8266

Подключение IR передатчика довольно простое. У передатчика три ноги: GND, 5V и DATA. Подключаем его согласно схеме ниже. Передатчики есть разных видов, но подключение такое же.





Подключаем библиотеку

Библиотека для работы с передатчиком не относится к стандартным библиотекам, поэтому её скачиваем здесь. Добавляем, как .ZIP библиотеку.



Скетч для ИК передатчика ESP8266

Примечание. Большинство приборов поддерживают протокол инфракрасного управления NEC на частоте 38 кГц. Если не удается передать сигнал по данному протоколу, то рекомендуем попробовать использовать метод sendRaw(). В метод sendRaw() передаем необработанные данные в виде массива, указываем его размер и частоту передачи. Пример получения этих данных, можно посмотреть в примере по управлению кондиционерами с помощью ESP 8266.

#include <IRremoteESP8266.h> //  Подключаем библиотеку IRremoteESP8266
#include <IRsend.h>

const uint16_t kIrLed = 4;  // D2, рекомендованный ПИН ИК передатчика
IRsend irsend(kIrLed);

// Пример массива необработанных данных
uint16_t rawData[67] = {4524, 4510,  554, 1720,  528, 1696,  552, 1696,  552, 568,  556, 570,  554, 568,  556, 568,  554, 570,  552, 1694,  554, 1696,  552, 1696,  552, 568,  554, 570,  554, 568,  556, 570,  554, 570,  556, 568,  554, 568,  556, 1694,  552, 568,  556, 570,  554, 570,  552, 570,  554, 568,  556, 1698,  550, 1698,  550, 570,  554, 1694,  554, 1696,  552, 1696,  552, 1696,  552, 1698,  550};

void setup() {
  Serial.begin(115200);
  irsend.begin();  // Инициализируем ИК передатчик
}

void loop() {
  Serial.println("NEC");
  irsend.sendNEC(0xE0E020DF); // Отправляем данные по протоколу NEC
  delay(2000);
  Serial.println("Sony");
  irsend.sendSony(0xa90, 12, 2);  // Отправляем данные по Sony SIRC 12 бит/2-ое повторение
  delay(2000);
  Serial.println("Raw data");
  irsend.sendRaw(rawData, 67, 38);  // Отправляем необработанные данные, размер 67/частота 38 кГц
  delay(2000);
}

Оставить комментарий

  • Кликните на изображение чтобы обновить код, если он неразборчив