• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Обсуждение Библиотека IRremote не компилируется под ESP8266

Jon

Member
Хочу прикрутить к модулю ESP инфракрасное управление.
Библиотека IRremote, которая идет в примерах, компилируется под платы Ардуино.
А вот под платы ESP - не хочет.
Может у кого-нибудь есть решение этой проблемы?
 

Jon

Member
Спасибо за экстренную помощь. Все скомпилировалось. Тему закрываю.
 

Jon

Member
Программ для работы с пультиками от телевизоров, полно в сети. И примеры к библиотеке работают хорошо.
А вот по управлению кондиционерами толковых программ не нашел.
Беда в том, что у кондиционеров команды на много длинее чем у телевизора. Мой McQuay работает с 128 битными командами, а все телевизоры укладываются в 32 бита.
Все что я смог, так это записывать полный дамп команд, но это тупиковый метод, так как очень быстро сжирает память микропроцессора.
Дамп 4 команд сожрал 70% памяти.
Как бы подкрутить библиотеку, чтобы она могла анализировать больше 48 бит потока?
 

tretyakov_sa

Moderator
Команда форума
Программ для работы с пультиками от телевизоров, полно в сети. И примеры к библиотеке работают хорошо.
А вот по управлению кондиционерами толковых программ не нашел.
Беда в том, что у кондиционеров команды на много длинее чем у телевизора. Мой McQuay работает с 128 битными командами, а все телевизоры укладываются в 32 бита.
Все что я смог, так это записывать полный дамп команд, но это тупиковый метод, так как очень быстро сжирает память микропроцессора.
Дамп 4 команд сожрал 70% памяти.
Как бы подкрутить библиотеку, чтобы она могла анализировать больше 48 бит потока?
Вот эту статью читали? http://geektimes.ru/post/258012/
 

Jon

Member
В этой статье используется тот же самый полный дамп команды. Эта идея кочует из одной стати в другую.
Суть этого метода получить RAW массив не обработанных данных и вернуть его в этом же виде на кондиционер.
Это не HEX- команда, а просто массив вкл/выкл IR-диода с определенной задержкой. Типа 700мкс сид горит, -700 не горит. Получился 1 бит информации в однопроводном интерфейсе.
В примере программы задано 4 массива по 32 импульса. Заметим что 4 команды это далеко не полный перечень всех команд кондиционера,
а ресурсов МП сожрало 78%.
Почему автор не воспользовался встроенным преобразователем массива в команды мне не понятно.
В его кондее используются стандартные 32 битные команды и библиотека их легко конвертирует из/в поток.
Повторюсь, у моего кондея 128 битная команда, т.е. массив аж из 256 элементов.
А набор команд большой. Только чтобы задать нужную температуру от 15-30 градусов уже нужно 15 массивов размерностью в 256 ячеек.
Такие объемы переменных ни один МП не в состоянии переварить напрямую.
Вопрос в том как дописать библиотеку, чтобы она собирала из любой длины массива импульсов (RAWмассива) 16-разрядную команду, и обратно превращала ее в непрерывный поток импульсов.
 

safari

New member
вот ещё вариант: GitHub - markszabo/IRremoteESP8266: Infrared remote library for ESP8266: send and receive infrared signals with multiple protocols. Based on: https://github.com/shirriff/Arduino-IRremote/
вчера протестил IRRecvDump2 безымянный китайский пульт (клон, не родной) от кондея General Climate. Библиотека не только без проблем прожеваля 199 байтную посылку, но и определила кодировку
Код:
Encoding  : COOLIX
Code      : B27BE0 (24 bits)
Timing[199]:
   +  4428, -  4472,    +   492, -  1678,    +   470, -   632,    +   468, -  1700,
   +   502, -  1646,    +   526, -   598,    +   470, -   628,    +   470, -  1676,
   +   494, -   630,    +   526, -   596,    +   502, -  1646,    +   526, -   576,
   +   494, -   626,    +   502, -  1648,    +   522, -  1646,    +   526, -   576,
   +   492, -  1676,    +   528, -   574,    +   526, -  1642,    +   502, -  1646,
   +   524, -  1644,    +   504, -  1646,    +   524, -   596,    +   500, -  1648,
   +   468, -  1700,    +   472, -  1678,    +   524, -   594,    +   526, -   578,
   +   524, -   596,    +   470, -   630,    +   468, -  1700,    +   470, -   630,
   +   526, -   598,    +   500, -  1648,    +   468, -  1702,    +   500, -  1646,
   +   524, -   596,    +   470, -   628,    +   528, -   574,    +   494, -   626,
   +   528, -   598,    +   472, -   626,    +   528, -   574,    +   494, -   626,
   +   502, -  1646,    +   520, -  1648,    +   500, -  1648,    +   492, -  1676,
   +   502, -  1648,    +   494, -  5262,    +  4426, -  4472,    +   470, -  1700,
   +   470, -   630,    +   468, -  1700,    +   500, -  1646,    +   528, -   574,
   +   492, -   628,    +   500, -  1648,    +   524, -   596,    +   528, -   574,
   +   526, -  1642,    +   528, -   574,    +   524, -   598,    +   502, -  1644,
   +   494, -  1676,    +   496, -   606,    +   468, -  1700,    +   526, -   574,
   +   522, -  1648,    +   500, -  1648,    +   492, -  1676,    +   502, -  1646,
   +   526, -   596,    +   502, -  1646,    +   468, -  1700,    +   502, -  1648,
   +   526, -   596,    +   496, -   606,    +   524, -   596,    +   472, -   628,
   +   468, -  1702,    +   470, -   628,    +   528, -   596,    +   502, -  1648,
   +   466, -  1700,    +   502, -  1646,    +   526, -   596,    +   470, -   626,
   +   528, -   574,    +   524, -   598,    +   522, -   580,    +   494, -   628,
   +   526, -   574,    +   524, -   596,    +   500, -  1646,    +   492, -  1676,
   +   502, -  1646,    +   490, -  1680,    +   502, -  1646,    +   492
uint16_t rawData[199] = {4428, 4472,  492, 1678,  470, 632,  468, 1700,  502, 1646,  526, 598,  470, 628,  470, 1676,  494, 630,  526, 596,  502, 1646,  526, 576,  494, 626,  502, 1648,  522, 1646,  526, 576,  492, 1676,  528, 574,  526, 1642,  502, 1646,  524, 1644,  504, 1646,  524, 596,  500, 1648,  468, 1700,  472, 1678,  524, 594,  526, 578,  524, 596,  470, 630,  468, 1700,  470, 630,  526, 598,  500, 1648,  468, 1702,  500, 1646,  524, 596,  470, 628,  528, 574,  494, 626,  528, 598,  472, 626,  528, 574,  494, 626,  502, 1646,  520, 1648,  500, 1648,  492, 1676,  502, 1648,  494, 5262,  4426, 4472,  470, 1700,  470, 630,  468, 1700,  500, 1646,  528, 574,  492, 628,  500, 1648,  524, 596,  528, 574,  526, 1642,  528, 574,  524, 598,  502, 1644,  494, 1676,  496, 606,  468, 1700,  526, 574,  522, 1648,  500, 1648,  492, 1676,  502, 1646,  526, 596,  502, 1646,  468, 1700,  502, 1648,  526, 596,  496, 606,  524, 596,  472, 628,  468, 1702,  470, 628,  528, 596,  502, 1648,  466, 1700,  502, 1646,  526, 596,  470, 626,  528, 574,  524, 598,  522, 580,  494, 628,  526, 574,  524, 596,  500, 1646,  492, 1676,  502, 1646,  490, 1680,  502, 1646,  492};  // COOLIX B27BE0
uint64_t data = 0xB27BE0;
 
  • Like
Реакции: Jon
Сверху Снизу