Устройство для голосового управления различными устройствами (вместе или раздельно) имеющими поддержку ИК-пульта
Лень — двигатель прогресса.
Многие читатели, наверное помнят еще старые черно-белые телевизоры на которых для переключения между двумя доступными каналами нужно было повернуть ручку ПТК.
Затем появились телевизоры с кнопочным управлением. Затем появились пульты управления, которые подключались к телевизору по проводу. И наконец, появились беспроводные ИК-пульты. С появлением беспроводных технологий пульты управления стали все шире внедряться в нашу жизнь и теперь с помощью них управляются многие бытовые устройства.
Помимо ИК, некоторые приборы управляются по радиоканалу.
Технологии не стоят на месте и последний «писк» — это голосовое управление. Такое управление, как правило, осуществляется или по блютус-технологии или через вай-фай.
Возникает вопрос: что делать тем пользователям, у которых приборы на ИК управлении?
Если у вас, например, смарт-тв или смарт-бокс, то проблем нет. Покупаете пульт с голосовым управлением, например такой или такой подешевле, скачиваете на устройство приложение и вы счастливый обладатель технологии голосового управления.
А вот для тех, у кого нет возможности установить приложение (например, на кондиционер или старенький телевизор), мастер и сделал это устройство.
Давайте посмотрим демонстрационное видео.
Инструменты и материалы:
-Беспроводной модуль ESP-01;
-Печатная плата;
-ИК-светодиоды — 12 шт;
-TSOP38238 ИК-приемник;
-Штыревой разъем;
-Гнездовой разъем Micro USB;
-Кнопка с фиксацией;
-Резистор 10 кОм — 6 шт;
-Аккумулятор 18650;
-Модуль CP2102 TTL UART;
-Транзистор C547 — 6 шт:
-Беспроводной модуль CP2102;
-Понижающий преобразователь постоянного тока Mini 360;
-Модуль зарядного устройства литиевой батареи TP4056;
-Комплект контактов батарейного отсека аккумулятора;
-M3 * 10 мм болты с внутренним шестигранником — 4 шт;
-Виниловая пленка;
-Наждачная бумага;
-Паяльник;
-Набор шестигранных ключей;
-3D-принтер;
-Супер клей;
-Ножницы;
-Кусачки;
-Лезвие бритвы;
Шаг первый: об устройстве
Мастер назвал свое устройство — TURTLE IR, возможно потому что оно похоже на черепаху.
TURTLE IR — это небольшое инфракрасное устройство, передающее ИК сигнал на 360 градусов, которое позволяет автоматизировать и управлять голосом любым электронным устройством поддерживающим ИК-пульт.
Устройство управляется голосовым помощником Alexa, который подключается к домашнему или офисному Wi-Fi и может управляться как через него напрямую, так и через любой гаджет.
На устройстве установлен аккумулятор на 2500 мАч и 12 ИК-светодиодов, расположенных по периметру. Все процедуры автоматизации и голосовые команды могут быть легко созданы и отредактированы из приложения Alexa в любое время без необходимости перепрограммировать все устройство.
Пользователь может голосовой командой включать / выключать приборы, изменять настройки, такие как комбинация DVD-проигрыватель-звуковая система-проектор и т. д. Можно управлять этими устройствами из любой точки мира, устанавливать таймеры для включения, например кондиционера, и даже устанавливать нужную температуру.
Шаг второй: 3D-печать
Для этого проекта требуется всего две детали, напечатанные на 3D-принтере — основание и крышка. Детали были разработаны таким образом, чтобы их можно было легко напечатать без каких-либо опор.
Параметры печати следующие:
Материал: PLA
Диаметр : 0.4mm
Высота слоя: 0,2 мм
Заполнение: 100%
Температура сопла: 204
Толщина стенки: 0,8 мм
Толщина верха / низа: 2 мм
После того, как детали были напечатаны, поверхность мастер отшлифовал наждачной бумагой.
Оклеил детали самоклеющейся виниловой пленкой.
Файлы для печати корпуса прилагаются.
poly base.stl
poly top.stl
Шаг второй: батарейный отсек
Аккумулятор находится посередине устройства. В конструкцию основания входит слот для удержания аккумулятора 18650 на месте.
Контактная пластина аккумулятора и пружинная пластина приклеиваются к обеим сторонам паза с помощью суперклея.
Как только клей высохнет, нужно установить батарею в гнездо и проверить, правильно ли она установлена и имеет ли надлежащий электрический контакт.
Шаг третий: установка ESP-01
ESP-01 не имеет встроенных разъемов micro USB для программирования, как в Nodemcu или Arduino nano, поэтому плата должна легко сниматься с устройства на случай внесения изменений в программу. Мастер монтирует на плату разъем, а уже в него будет подключатся микроконтроллер.
Нужно взять штыревой разъем и отрезать от него две части по четыре гнезда. Затем склеить их вместе и припаять к плате. Контактную площадку на плате нужно подготовить, отделив две площадки по четыре контакта в ряд и убедившись, что они не перемыкаются. Торчащие усики затем нужно согнуть и обрезать.
Затем нужно проверить установку микроконтроллера.
Шаг четвертый: установка комплектующих в основание
В этом шаге нужно установить в основание электронные модули, кнопку питания и 4 ИК-светодиода. База разделена аккумулятором на 2 секции. В одной секции находятся модули управления батареями и зарядки, а во второй — платы регулирования напряжения и микроконтроллеры.
Плату micro USB и модуль управления аккумулятором TP4056 мастер приклеивает. Затем устанавливает и фиксирует клеем кнопку включения.
С другой стороны приклеивает плату с разъемом и понижающий преобразователь.
Теперь осталось только установить светодиоды в отверстие и тоже зафиксировать их клеем.
Шаг пятый: крышка
В отличии от основания в крышке будут расположены 8 ИК-светодиодов. Устанавливая ИК-светодиоды, убедитесь, что ножки, катод и анод, всех светодиодов установлены в одном направлении.
Шаг шестой: схема
Это принципиальная схема устройства. Слева мы видим аккумулятор и модуль управления аккумулятором. Этот модуль (TP4056) защищает аккумулятор от перезаряда, глубокого разряда, перегрузки и замыкании.
Для включения и отключения устройства устанавливается кнопка.
Внизу посередине расположен понижающий преобразователь постоянного тока. Он нужен чтобы понизить напряжения батареи 3,5 — 4,2 вольт до более 3,3 вольт. Это необходимо сделать, для питания модуля ESP-01. На модуле есть подстроечный резистор и с помощью него нужно установить необходимое напряжение.
Вывод RX ESP-01 настроен на передачу цифрового сигнала для ИК-светодиодов. Поскольку этот сигнальный контакт не может одновременно питать все 12 ИК-светодиодов, в схеме используется шесть транзисторов BC547 вместе с резисторами 10K в качестве высокочастотных переключателей, чтобы каждый транзистор включал или выключал два ИК-светодиода. Это гарантирует, что все 12 ИК-светодиодов выдают ИК-сигнал одновременно с полной мощностью, обеспечивая максимальный диапазон и охват.
Шаг седьмой: установка аккумулятора
Припаяйте порты VBUS и GND на материнской плате MicroUSB к портам IN + и IN- платы TP4056.
Припаяйте порты B + и B- на модуле TP4056 к пластине + ve аккумулятора и пластине пружины соответственно.
Установите аккумулятор согласно полярности.
Подключите устройство к зарядному устройству MicroUSB и зарядите батареи. Индикатор на TP4056 светится красным во время зарядки и становится синим, когда аккумулятор полностью заряжен.
Шаг восьмой: подключение микроконтроллера
Подключите OUT + модуля TP4056 к одному из выводов кнопки питания.
Подключите другую клемму кнопки питания к входу IN + понижающего преобразователя постоянного тока 360 MINI DC, а также ко всем клеммам + ve ИК-светодиодов.
Подключите OUT- модуля TP4056 к IN- понижающего преобразователя 360 MINI.
Включите кнопку питания и измерьте напряжение на клеммах OUT + и OUT- понижающего преобразователя. Если напряжение не равно 3,3 В, отрегулируйте повернув винт резистора.
Подключите клеммы OUT + и OUT- понижающего преобразователя к Vin и GND на ранее сделанной плате для ESP-01.
Возьмите два транзистора BC547 и два резистора 10 кОм и соедините их с отрицательной клеммой ИК-светодиодов , как показано на схеме.
Подключите базу обоих транзисторов к линии контактов RX ESP-01 на разъеме через резисторы 10 кОм.
Шаг девятый: подключение ИК-светодиодов
Теперь нужно подключить светодиоды установленные в крышку.
Соедините проводом параллельно все положительные клеммы ИК-светодиодов и вытяните провод примерно на 10 см. Припаяйте открытый конец этого провода к любой положительной точке подключения на базе, которая идет после кнопки питания, например, к положительным клеммам ИК-светодиодов на базе или к IN + понижающего преобразователя 360 MINI.
Возьмите четыре транзистора BC547 и четыре резистора 10 кОм и соедините их с отрицательной клеммой ИК-светодиодов на крышке, как показано на принципиальной схеме.
Подключите базу всех транзисторов к линии контактов RX (GPIO3) ESP-01 на разъеме через резисторы 10 кОм.
Всего будет 3 провода, соединяющие основание с крышкой:
Провод 1: + ко всем ИК-светодиодам, клемма + ve
Провод 2: — подключение питания к эмиттерам всех транзисторов на цоколе.
Провод 3: Сигнальный провод — от RX (GPIO3) ESP-01 до базы всех транзисторов.
Шаг десятый: сбор кодов с пультов
На этом этапе мастер собирает необработанные данные сигнала с пультов всех устройств, которые нужно автоматизировать. ИК-пульт передает сигнал, посылая импульсы инфракрасного света, которые представляют определенный двоичный код. Эти коды представляют различные команды, такие как включение / выключение питания, громкость +/- и т. д. После сбора необработанных данных сигнала можно будет использовать эти данные для воспроизведения ИК-сигналов с помощью собираемого устройства при получении голосовых команд.
Для этой операции нужно сделать следующее:
Подключите ИК-приемник TSOP38238 к микроконтроллеру, как показано на приведенной выше принципиальной схеме. Затем подключите узел mcu к компьютеру с помощью кабеля USB.
Откройте IDE Arduino. Установите библиотеку « IRremoteESP8266 » из диспетчера библиотек Arduino, а затем откройте и загрузите код « read_ir.ino », прикрепленный на этом шаге, в узел mcu.
После того, как код скомпилирован и загружен, откройте последовательный монитор.
Направьте каждый пульт на ИК-приемник и начните нажимать кнопки, которые вы хотите добавить, одну за другой, например кнопку питания, кнопки громкости, отключения звука и т. д.
Каждый раз, когда вы нажимаете кнопку, вы будете видеть набор чисел, появляющихся на последовательном мониторе.
Скопируйте строку необработанных данных с монитора последовательного порта и вставьте ее в безопасное место, например, в приложение «Блокнот». Каждый набор чисел нужно подписать, «уменьшение громкости», «увеличение громкости» и т.д.
Пока сохраняем данные.
Мастер прилагает файл с данными, но непонятно с каких они пультов. На всякий случай их можно скачать ниже.
read_ir.ino
Шаг одиннадцатый: программирование
Теперь переходим к программированию устройства.
Подключите ESP-01 к модулю программирования TTL, как показано на схеме, и подключите его к компьютеру.
Откройте Arduino IDE. Откройте файл кода Arduino turtle_ir.ino, прикрепленный к этому шагу.
turtle_ir.ino
Введите свой SSID Wi-Fi и пароль в код ( он выделен желтым на восьмом рисунке).
В строке 14 кода Arduino вы увидите необработанные данные ИК-сигнала, введенные для различных кнопок дистанционного управления. Замените эти необработанные данные сигнала теми, которые вы собрали с ваших собственных пультов на предыдущем шаге. Убедитесь, что вы вводите правильные данные, соответствующие названиям кнопок. Вы можете дать этим кнопкам свои собственные имена или добавить новые кнопки, но не забудьте изменить имена, добавить кнопки и внести необходимые изменения во всем коде.
В этом коде установлено 20 кнопок, этого было достаточно, чтобы автоматизировать гостиную мастера, но при необходимости можно легко добавить больше кнопок.
Если нужно более 20 кнопок, добавьте новые устройства в код, как можно увидеть в красном кружке на 8-м изображении, а затем создайте новые кнопки и назначьте им собранные необработанные данные сигнала.
Если вас устраивает код, загрузите его в ESP-01.
Выньте ESP-01 из модуля TTL и вставьте его в гнездо внутри нашего устройства.
Шаг двенадцатый: сборка корпуса
Дальше нужно закрыть крышку. На крышке есть 4 крепежных отверстия. Кончиком паяльника нужно прожечь винил и закрутить винты.
Как только это будет сделано, нажмите кнопку питания, чтобы включить устройство, и подождите 10 секунд, пока устройство не подключится к Wi-Fi.
Шаг тринадцатый: настройка ALEXA
Как только устройство подключено к Wi-Fi, можно начать настройку устройства в приложении Alexa. Для этого выполните следующие действия: —
Откройте приложение Alexa и нажмите «Devices» в правом нижнем углу.
В окне «Devices» щелкните символ « + ».
Выберите вариант «Add Devices» .
Затем нажмите «Lights» и «Others»..
Кликните «DISCOVER DEVICES».
После нескольких секунд поиска можно увидеть, как появляются устройства. Эти устройства будут иметь имена, которые вы присвоили в коде Arduino, на предыдущем шаге.
Щелкните эти устройства по очереди, чтобы завершить настройку конфигурации.
Как только устройство настроено, можно начать давать базовые голосовые команды, такие как «Alexa, включи телевизор», «Alexa, выключи проектор» или «Alexa, включай кондиционер каждый день в 20:00 » и т. д. Или можно напрямую использовать кнопки в приложении Alexa для управления этими приборами.
Чтобы автоматизировать и контролировать несколько устройств с помощью одной команды, нужно создать процедуры в приложении Alexa, которые могут запускаться на основе голосовой команды, времени или условия.
Чтобы лучше понять настройку этих процедур, мастер приводит пример автоматизации настройки домашнего кинотеатра. Обычно для настройки домашнего кинотеатра есть 3 устройства для управления — проектор, DVD-плеер и звуковая система 5.1.
Итак, здесь, когда мы говорим «Алекса, время фильма», сначала мы хотим, чтобы Turtle IR автоматически включала проектор, звуковую систему и DVD-плеер, а затем настраивала правильный порт HDMI в меню источника проектора, регулировала громкость звуковой системы и т. д. Для этого выполните следующие действия: —
Откройте приложение Alexa и нажмите «Подпрограммы» в окне «Еще».
Вы увидите 3 шага для создания распорядка:
(A) Обычное название : можно дать любое имя своему распорядку.
(B) Когда это происходит : что запускает распорядок? Например, конкретная голосовая команда, время, сигнал от внешнего интеллектуального устройства или датчика и т. д.
(C) Добавить действие : процедуры и действия, которым необходимо следовать при обнаружении вышеуказанного триггера.
Нажмите на символы « + » и добавьте необходимые данные для каждого из 3 шагов.
Сначала мы даем название. Это может быть любое имя, какое захотите.
Во-вторых, выберите нужный тип триггера. В этом случае мастер выбрал голосовой триггер, который активируется, когда он говорит фразу «Алекса, время фильма».
Наконец, мы устанавливаем действия в правильном порядке, как показано на 4-м рисунке:
Поэтому, когда мастер говорит «Алекса, время кино», сначала Алекса дает команду: «Установка кинотеатра».
Затем проектор устанавливается на «ВКЛ». Это действие дает команду Turtle IR воспроизвести ИК-сигнал, который включает проектор.
Точно так же питание устройства «DVD-проигрыватель» и «звуковая система» устанавливается на «ВКЛ».
Затем мастер добавил период ожидания в 15 секунд, потому что проектору требуется 15 секунд для включения и загрузки после получения ИК-сигнала.
Затем устройство «приглушение источника» устанавливается в положение «ВЫКЛ». Это связано с тем, что устройство «приглушения источника» может выполнять 2 отдельных действия: Отключение звука динамиков проектора (если установлено значение «ВКЛ») и «Выбор источника HDMI проектора» (при значении «ВЫКЛ»). Все они настраиваются в коде.
Когда Turtle IR получает команду изменить источник проектора, он запрограммирован на автоматическое воспроизведение сигналов источника, OK и кнопок навигации ИК-пульта дистанционного управления проектора для выбора необходимого источника. Таким образом, для завершения этого процесса требуется около 5 секунд. Поэтому устанавливается 5-секундный период ожидания в качестве следующего действия.
Затем громкость звуковой системы (Громкость SS) устанавливается на «ВКЛ», что дает команду Turtle IR генерировать ИК-сигналы для увеличения громкости. (При установке на «ВЫКЛ.» Громкость уменьшается).
Регулировка громкости занимает около 5 секунд, поэтому нужно добавить 5-секундное ожидание в качестве следующего шага.
Если увеличения громкости недостаточно, можно повторить предыдущие 2 шага.
И, наконец, мастер добавил ответ от Alexa, который говорит: «Готово, наслаждайтесь шоу», который также служит индикатором того, что установка окончена.
После того, как все вышеперечисленные шаги будут выполнены, нужно сохранить настройки.
С этого момента все, что вам нужно сказать, это «Алекса, время кино», и вся бытовая техника домашнего кинотеатра будет настроена автоматически.
Одна из особенностей устройство является то, что им можно управлять удаленно. Управлять можно через смартфон посредством голоса или кнопки.
Комбинация Turtle IR и приложения Alexa открывает множество возможностей автоматизации. Можно легко изменить код и добавить дополнительные функции по своему вкусу. В будущем в устройство могут быть встроены различные датчики для полной автоматизации определенных устройств без голосовых команд.
Шаг четырнадцатый: тест
Для тестирования мастер использует камеру смартфона. Человеческий глаз не видит ИК сигнал, но их видно через камеру. Сначала необходимо посылая команды проверить, все ли светодиоды работают. Затем, нужно протестировать устройство на бытовой технике.
Как видите, все работает. Конечно, система Алекса не имеет русификации, но интересна сама идея и реализация, а уж модифицировать код под Алису или Гугл – ассистент, задача для русскоязычных умельцев.
Источник (Source)
Источник: