ИК приемник и инфракрасный пульт дистанционного управления – самый распространенный и простой способ управления электронной аппаратурой. Инфракрасный спектр излучения не виден человеческим глазом, но он отлично принимается ИК приемниками, которые встроены в электронные приборы. Модули Arduino ir remote используются для управления различной техникой в прямой видимости.
Принцип действия ИК пульта
Широкое применение ИК излучателей стало возможным благодаря их низкой стоимости, простоте и удобству в использовании. ИК излучение лежит в диапазоне от 750 до 1000 мкм – это самая близкая часть спектра к видимому свету. В области инфракрасного излучения могут меняться оптические свойства различных материалов. Некоторые стекла, например, становятся непрозрачными для ИК лучей, парафин же наоборот прозрачен в ИК спектре.
Регистрируется излучение с помощью специальных фотоматериалов, на основе которых изготавливаются приемники. Источником инфракрасного излучения помимо нагретых тел (Солнца, ламп накаливания или свечей), могут быть твердотельные приборы – ИК светодиоды, лазеры. Излучение в инфракрасном диапазоне обладает рядом особенностей, благодаря которым их удобно использовать в пультах:
- Твердотельные излучатели (ИК светодиоды) стоят дешево и они компактны.
- Инфракрасные лучи не воспринимаются и не фиксируются человеческим глазом.
- ИК приемники также дешево стоят, и они имеют небольшие размеры.
- Малые помехи, так как передатчик и приемник настроены на одну частоту.
- Отсутствует негативное влияние на здоровье человека.
- Высокий показатель отражения от большинства материалов.
- IR излучатели не влияют на работу других устройств.
Работа пульта осуществляется следующим образом. При нажатии кнопки происходит кодирование сигнала в инфракрасном свете, приемник принимает его и выполняет требуемое действие. Информация кодируется в виде логической последовательности пакетов импульсов с определенной частотой. Приемник получает эту последовательность и выполняет демодулирование данных. Для приема сигнала используется микросхема, в которой содержатся фотоприемник (фотодиод), усилители, полосовой фильтр, демодулятор (детектор, который позволяет выделить огибающую сигнала) и выходной транзистор. Также в ней установлены фильтры – электрический и оптический. Работают такие устройства на расстоянии до 40 метров. ИК способ передачи данных существует во многих устройствах: в бытовых приборах, в промышленной технике, компьютерах, оптоволоконных линиях.
IR приемник Arduino
Для считывания IR сигнала понадобятся сама плата Ардуино, макет, приемник IR сигнала и перемычки. Существует огромное множество различных приемников, но лучше использовать TSOP312 или другие соответствующие для Ардуино. Данные от пульта к приемнику могут передаваться по протоколу RC5 или NEC.
Чтобы определить, какая ножка к чему относится, нужно посмотреть на датчик со стороны приемника. Тогда на приемнике центральный контакт – это земля, слева – выход на микроконтроллер, справа – питание.
Для удобства можно использовать готовые модули IR приемника.
Подключение IR приемника к ардуино
Выходы IR приемника подключают к Ардуино к портам GND, 5V и цифровому входу. Схема подключения датчика к 11 цифровому пину изображена ниже.
Вот так выглядит схема с модулем инфракрасного приемника:
Библиотеки для работы с IR
Для работы с ИК устройствами можно использовать библиотеку IRremote, которая позволяет упростить построение систем управления. Скачать библиотеку можно здесь. После загрузки скопируйте файлы в папку arduinolibraries. Для подключения в свой скетч библиотеки нужно добавить заголовочный файл #include .
Для чтения информации используется пример IRrecvDumpV2 из библиотеки. Если пульт уже существует в списке распознаваемых, то сканирование не потребуется. Для считывания кодов нужно запустить среду ARduino IDE и открыть пример IRrecvDemo из IRremote.
Существует и вторая библиотека для работы с ИК сигналами – это IRLib. Она похожа по своему функционалу на предыдущую. По сравнению с IRremote в IRLib имеется пример для определения частоты ИК датчика. Но первая библиотека проще и удобнее в использовании.
После загрузки библиотеки можно начать считывать получаемые сигналы. Для этого используется следующий код.
Оператор decode_results нужен для того, чтобы присвоить полученному сигналу имя переменной results .
В коде нужно переписать «HEX» в «DEC».
Затем после загрузки программы нужно открыть последовательный монитор и нажимать кнопки на пульте. На экране будут появляться различные коды. Нужно сделать пометку с тем, к какой кнопке соотносится полученный код. Удобнее полученные данные записать в таблицу. После этот код можно записать в программу, чтобы можно было управлять прибором. Коды записываются в память самой платы ардуино EEPROM, что очень удобно, так как не придется программировать кнопки при каждом включении пульта.
Бывает, что при загрузке программы выдается ошибка «TDK2 was not declared In his scope». Для ее исправления нужно зайти в проводник, перейти в папку, в которой установлено приложение Arduino IDE и удалить файлы IRremoteTools.cpp и IRremoteTools.h. После этого нужно произвести перезагрузку программы на микроконтроллер.
Заключение
Использование Arduino ir remote упрощает жизнь пользователю. В качестве пульта дистанционного управления может выступать мобильный телефон, планшет или компьютер – для этого только нужен специальный софт. При помощи Ардуино можно централизовать все управление. Одной кнопкой на пульте можно выполнить сразу несколько действий – например, включить одновременно телевизор и Blu-Ray.
Здравствуйте друзья
В этом обзоре я расскажу про универсальный инфракрасный контролер Xiaomi, призванный управлять любыми устройствами имеющими пульты ДУ с инфракрасным светодиодом. Кроме обширной базы данных устройств, пульт так же можно обучать — так что он умеет повторять совершенно любые пульты. Так же я приведу примеры смарт сценариев с его участием, в том числе и те которые активируют/деактивируют сами себя или другие сценарии. Подробности в моем обзоре
Где купить?
Доставка, комплект поставки
Доставка — Новой Поштой, все стандартно, описывать особенно нечего, поставляется в картонной коробке, на это раз не привычно белой, а коричневой — такие тоже мне встречались, вроде первые версии браслетов mi band были в похожих.
Размеры коробки идеально подогнаны под контролер — ничего не болтается по коробке. Картон плотный и твердый, при пересылке повредить будет довольно проблематично.
Комплект поставки — аскетичен — «шайба» контролера и плоский кабель питания USB — micro USB
Внешний вид, размеры
Размеры — около 10 см в диаметре
и чуть менее 3 см в толщину
На боковой торцевой поверхности шайбы, который условно назовем «перед» находится синий светодиод активности, постоянно горящий когда контролер включен, а с диаметрально противоположной стороны — которую назовем «зад» — разъем micro USB
Верхняя часть, изначально защищена транспортировочной наклейкой и кажется непрозрачной, но на самом деле это не так
Невооруженным глазом незаметно, но при помощи камеры — видно свечение инфракрасных диодов, расположенных «ромашкой» — для направления сигнала по все стороны. Скриншот из видео (видеообзор как всегда в конце текстового)
Нижняя часть базы выглядит так.
Работа с контролером
База работает через Wi-Fi, для ее работы не нужен шлюз, достаточно только смартфона/планшета с установленным ПО — Mi Home. Так же понадобится источник питания на 5 В с разъемом USB A
После включения питания, контролер обнаруживается приложением Mi Home, происходит сопряжение, после чего контролер появляется в списке устройств. Стандартный плагин не переведен даже на англйиский
Поэтому пришлось воспользоваться переведенной версией, которую я взял здесь. Сразу после установки обновляется и прошивка контролера. В основном меню контролера находятся опции, позволяющие сортировать по порядку сохраненные пульты, просмотреть или создать новые смартсценарии, и перейти в подменю основных настроек.
В меню основных настроек можно задать имя устройства, поделится им с другим MI аккаунтом, назначить группу устройств (по названию комнаты), проверить обновление, удалить, добавить ярлык плагина на рабочий стол, просмотреть сетевую информацию.
Режима разработчика — позволяющего добавлять устройство в альтернативные системы, как у светильников yeelight или шлюза, к сожалению нет.
|
|
Теперь рассмотрим методы добавления пультов. Их три
Поиск модели — все поддерживаемые пульты по названию, причем имеется как официальная галерея пультов так и пользовательская.
Добавить пульт — добавляем пульт из существующих, выбирая по типу устройства — аналогично как в приложении Mi Remote на смартфонах Xiaomi с ИК датчиком
Копия пульта — копируем управляющие сигналы с любого ИК пульта, имеющегося в наличии
Первый и второй режим — отличаются только первичным выбором, и далее совершенно одинаковы — находим нужное нам устройство — например телевизор Samsung, далее путем проверки кнопок питания и громкости — подбираем работающий пульт, и сохраняем его в списке.
Кстати для владельцев Android ТВ боксов с таким пультом — выбираем из категории Xiaomi Mi Box устройство — оpenbox — будет работать нормально. Что удобно, ПО предлагает объединить пульты — и можно получить на одном экране кнопки управления телевизором — сверху — питания и громкость, а больше ничего и не нужно, и ТВ боксом.
В меню копирования пульта мы можем добавить любой пульт из имеющихся. Сначала выбираем тип устройства, или опцию «Другие устройства», далее, следуя экранным подсказкам, назначаем команду на каждую кнопку. В случае с определенным классом устройств — на примере ТВ бокс, мы по экранному шаблону поочередно нажимаем соответсвующие кнопки на реальном пульте сохраняя их на виртуальном, либо, в классе — другие устройства сами называем кнопки и записываем на них действия с реального пульта.
Мой список пультов для этого контролера выглядит следующим образом. Кроме стандартных пультов — для телевизора и андроид бокса, имеются «обученные» пульты, от увлажнителя, робота пылесоса и кондиционера. Что позволяет управлять этими устройствами при помощи сценариев умного дома.
Смарт сценарии
ИК контролер доступен как действие для любого сценария в приложении MIHome. При выборе устройства из списка — нам доступна одна опция — Remote Mode — далее список сохраненных пультов и далее — любая кнопка любого пульта.
Примеры моих сценариев.
Увлажнитель воздуха — в отличии от увлажнителя с механическим управлением, который можно просто включать и отключать при помощи смарт розетки, рассматриваемая модель управляется с пульта ДУ. Для того чтобы интегрировать его в систему умный дом, и контролировать влажность я написал исполняемый сценарий, в котором с разницей в 2 секунды — увлажнитель сначала включается, потом повышается заданная влажность до 70% (специально что бы он не отключался самостоятельно) и включается режим ионизации.
Влажность контролируют два сценария — один срабатывает когда влажность менее 40% — он и запускает исполняемый сценарий, второй — срабатывает когда влажность свыше 50% — он просто активирует кнопку «вкл/выкл».
Здесь имеется одна тонкость — влажность изменяется и даже после включения / выключения увлажнителя она еще какое-то время находится в пределах допустимых для срабатывания сценариев. В случае с управлением через розетку — это не проблема, розетка уже включена/выключена, повторная команда ничего не меняет. В случае с управлением через пульт — повторное срабатывание сценария — вновь включает или выключает его, так как за это действие отвечает одна и та же кнопка пульта.
Чтобы этого не происходило — каждый из сценариев имеет дополнительные условия — прекращение своего действия и включение второго граничного сценария. То есть сценарий влажность более 50% — активирует кнопку вкл/выкл на ИК контролере, переводит себя в состояние «выключено» и включает сценарий — влажность — менее 40%. И наоборот.
Так же я добавил в эту схему контроля влажности — сценарии открытия и закрытия окна. Так как увлажнять помещение при открытом окне смысла нет, то при соблюдении события — окно открыто более 1 минуты, отключаются сценарии контроля влажности менее 40 и более 50%, активируются сценарии для отработки закрытия окна — их два и прекращается действие сценария «окно открыто», он уже отработал, и повторять его дом момента закрытия окна не нужно. Так как я не могу отследить состояние увлажнителя — работает он в момент открытия окна или нет — я просто отключаю на 30 секунд розетку, в которую он включен. Что просто сбрасывает его и гарантирует его отключение.
На закрытие окна имеется два сценария. Первый срабатывает при в случае когда влажность при закрытии окна менее 40% — сразу активируется исполняемый сценарий на включение увлажнителя, активируются сценарий контроля — влажность более 50%, сценарий — «окно открыто» и отключаются оба сценария на закрытие окна.
Второй сценарий — если влажность более 40%. В этом случае увлажнитель не включается, а активируется сценарий — влажность менее 40%, далее аналогично — отключаем сценарии закрытия и активируем сценарий открытия.
В качестве примеров еще приведу несколько сценариев которыми я пользуюсь.
Исполняемый сценарий на отключения телевизора. Что бы сначала с одного пульта не выходить из плеера андроид бокса — я смотрю фильмы и телевидение при его помощи, а потом, с другого пульта не выключать телевизор — теперь я это делаю по нажатию одной кнопки.
Так же я отключил плановую уборку на роботе пылесосе (Ilife A4) — теперь он управляется с контролера. Теперь в будние дни он запускается немного раньше чем в выходные, а выходные, кроме запуска, он автоматически переводится в режим повышенной мощности, что сокращает время уборки — вместо более чем 2 часов, до часа.
Видео версия моего обзора, в котором так же будут вставки срабатывания диодов контролера.
Все мои обзоры устройств Xiaomi в хронологическом порядке —
Все мои видео обзоры —
Используемые источники:
- https://arduinomaster.ru/datchiki-arduino/ir-ik-pult-upravleniya-arduino/
- https://www.ixbt.com/live/smarthome/obzor-universalnogo-ik-kontrolera-xiaomi-nastroyki-scenarii.html