Представляю Вашему вниманию простейшее устройство для преобразования сигналов ИК пультов или пультов на 433 МГц
в HTTP запросы.
Идея родилась после изготовления электропривода для рулонных штор, разработанным автором
АСЕ, за что ему отдельное спасибо.
Ссылка на проект.
Обладая «Умным домом» на Home Assistant, к которому подключен хаб ИК и RF на 433МГц (построенный как опишу ниже), я не испытываю проблем по управлению чем угодно от чего угодно. Но у моей мамы в квартире нет умного дома, и управлять тремя шторами с телефона или компа проблематично. Особенно сразу тремя!
Навыков в программировании нам не понадобится, можно обойтись и без навыков пайки если использовать монтажные соединительные провода.
Например такие
Что нам понадобится:
Wemos D1 mini (чтобы потом не заморачиваться с блоком питания используем ЗУ от сотового и минимальные размеры)
приемник на 433 МГц
SRX882
ИК приемник 38 кГц (любой 1. VS1838 2. TSOP31238 (TSOP1738) 3. Из набора для Arduino
Соединяем все по схеме:
Укладываем все в коробочку из под tic tac направив ИК приемник наружу в нужном нам направлении и вырезав дырку под разъем USB.
Приступаем к прошивке:
Скачиваем с официального сайта
Tasmota последний релиз прошивки для ESP8266
tasmota-sensors.bin и прошиваем наш Wemos D1 mini.
(как прошить ESP не описываю, в интернете 1000 примеров)
Как прошить ESP? Инструкция по просьбе читателей
Скачиваем с github официальный прошивальшик Tasmotizer x64 или x32 под Вашу операционку.
ссылка
Запускаем.
Подключаем ESP через USB (желательно 2.0, первый раз надо подождать пока установятся драйвера).
Если устройство подключено, выбираем com порт (Select port) на котором определилась ESP.
В Select image ставим галочку на Release и выбираем ниже tasmota.bin
Нажимаем кнопку
Tasmotizer! и ждем окончания прошивки.
После окончания прошивки сбрасываем устройство или передергиваем питание.
Подождав секунд 5 (пока устройство перезагрузится) нажимаем кнопку
Send config
Ставим галочку на
WiFi, вводим имя своей сети и пароль, нажимаем
Save.
Cбрасываем устройство или передергиваем питание. Ждем 5 сек.
Нажимаем в Tasmotizer кнопку
Get IP, копируем IP адрес, вставляем в браузере и в строку адреса, переходим по адресу и радуемся главному меню Tasmota!
Если вместо IP адреса Вы увидели XX.XX.XX.XX, значит вы не подождали 5 сек (ESP не успела перезагрузится, подключиться к Вашему роутеру и получить IP адрес) или что то пошло не так.
Настройка WiFi по классике:
Берем в руки смартфон, включаем WiFi (если не включен), лезем в Настройки -> WiFi и подключаемся к сети Tasmota_ХХХХХХ-ХХХХ, где X цифра или буква от А до F.
Смартфон предложит авторизоваться (если этого не произошло, то открываем браузер и в строке адреса набираем 192.168.4.1), переходим на страницу авторизации.
Выбираем сверху свою сеть (или вводим имя сети) и вводим пароль. Нажимаем
Save.
Смартфон отключится от сети и подключится к вашей домашней сети.
Жмем в Tasmotizer кнопку
Get IP, что бы узнать IP адрес.
Подключаем к сети WiFi наш Wemos D1 mini и заходим в веб интерфейс.
Конфигурируем под нашу собранную схему:
Нажимаем
Configuration далее
Configure Module
конфигурируем пины к которым подключены приемники
D1 — GPIO5 -> IRrecv
D2 — GPIO4 -> RFrecv
Сохраняем настройку, устройство перезагрузится.
В главном меню нажимаем кнопку
Console
Попадаем в консоль:
Берем в руки пульт и начинаем нажимать на нужные нам кнопки внимательно смотря в консоль.
Нас интересуют коды кнопок!
В примере у меня первые 2 строки от радио пульта на 433 МГц (кнопки А и В, пульт на картинке топика), вторые 2 строки от пульта ДУ телевизора LG (громкость + и -).
Значение
Data это код кнопки который нам нужен!
Создаем правило реакции на полученный код!
В консоли пишем:
Rule1 ON RfReceived#Data=0x6864A8 DO WebSend [192.168.1.108] /open ENDON ON RfReceived#Data=0x6864A2 DO WebSend [192.168.1.108] /close ENDON
Нажимаем Enter
Активируем это правило. Пишем:
Rule1 1
Нажимаем Enter
Синтаксис Rule:
Примеры WebSend:
example 1:
WebSend [<ip>] POWER1 ON
отправит как
http://<ip>/cm?cmnd=POWER1 ON
example 2:
WebSend [myserver.com] /fancy/data.php?log=1234
отправит как
http://myserver.com/fancy/data.php?log=1234
Более подробно на
Tasmota Rules.
Что имеем:
При нажатии на пульте кнопки
А принимается код 0x6864A8 и на IP адрес
192.168.1.108 отправляется GET запрос
open, при нажатии кнопки
В на код 0x6864A2 туда же шлем
close.
В итоге: на любую кнопку пульта (ИК или 433 МГц) можно отправить любой HTTP запрос!
с конденсатором на выходе 100мкФ и датчик температуры с датчиком влажности.
Тема не раскрыта. Как все это помогло маме?
загляните на Алик… и сами удивитнсь, как у Вас все быстро и непринужденно появится все это…
Для ИК: RC5, RC6, NEC, SONY, PANASONIC, JVC, SAMSUNG, WHYNTER, AIWA_RC_T501, LG, MITSUBISHI, DISH, SHARP, DENON, SHERWOOD, RCMM, SANYO_LC7461, RC5X, NEC (non-strict), NIKAI, MAGIQUEST, LASERTAG, CARRIER_AC, MITSUBISHI2, HITACHI_AC1, HITACHI_AC2, GICABLE, LUTRON, PIONEER, LG2, SAMSUNG36, LEGOPF, INAX, DAIKIN152.
Для 433МГц: Любой протокол. Можем задавать количество бит, длину преамбулы, длительность импульса статических кодов.
У человека он уже есть просто! Проще все таки RF приемник + ардуино с библиотекой iarduino_RF433_Receiver.
Урок 26.6 на iarduino
Итого для самодельного пульта вполне достаточно записать несколько таких пакетов с «любимыми» режимами и просто слать их.
на нем, я не знаю, какие параметры передаются в посылке, но он работает и с муз.центром и тентелеми и двумя кондишками…
нормальный девайсик, только питать его надо от адаптера своей батарейки у него нет…
a.aliexpress.com/_ASKA3u
Управлять устройствами не по ИК оно НЕ умеет!
Если к моему устройству добавить ИК передатчик получится тоже самое.
Смысл моего устройства принять ИК или RF сигнал и отправить HTTP запрос устройству в сети. Например: управлять медиацентром с KODI если он сделан из компа (HTPC), управлять умным домом (не только по HTTP но и по MQTT, он на борту Tasmota уже есть), можете в интернете лайкнуть сообщение (только напишите правильный HTTP GET запрос :)))). Полет фантазии может быть безграничен.
А китайцы ее используют как готовый продукт и пихают в свои устройства.
Используйте не data кабель (4 проводника), а провод питания (2 проводника) с любым ЗУ или любой кабель с нормальным ЗУ (ЗУ где используется 2 провода, а не хитрые типа нокиевских и самсунговских зарядок с резистором на пин data, типа нет сопротивления — значит зарядка не оригинал — пошел нафи…, разница в цене ЗУ доходила до 10 раз, за резистор стоимостью в 10коп.) Ну и QC не надо использовать, а то вдруг не договорятся о напряжении заряда :)))
https://aliexpress.com/item/item/1005003168877110.html
Можно название или ссылку где почитать. Спасибо.
чат 1
Чат 2
Можете поделиться flow (если это приемлемо), посмотреть как это реализовано.
Подход, имхо, самый правильный. Разделить управление и исполнительное устройство. Чем цеплять приемник напрямую к устройству. Гораздо более гибко получается.
Сейчас есть Broadlink MP1, к нему сделали скрипты на питоне для отправки ему спецпакетов UDP — работает, но не идеал. Да и прикупил бы ещё что-то, для размещения в другом месте квартиры.
www.letscontrolit.com/wiki/index.php?title=Tutorial_Rules#SendToHTTP
Вот например мне досталась умная розетка «SWA1», и я даже сейчас нагуглил, что её тоже можно перепрошить вашей прошивкой.
Но вот что дальше делать? Непонятно! Это ж нужно в роутер прошить какой-то сервер? И для телефона нужно написать *.apk файл со своими кнопками и индикаторами? И для компьютера *.exe программу, такую же как и для телефона?
Или это всё прошивается только для того, чтоб компьютер из локальной сети управлял?
Прошивка не моя. Она разработана группой Tasmota. Я предложил вариант использования и конфигурацию.
А зачем Вы хотите перепрошивать?
Основная причина перепрошивки на стороннее ПО, это отвязать устройство от родных сервисов и использовать весь функционал по своему назначению. Такое устройство можно собрать самому. Но! Сделать красивый корпус, развести и изготовить печатную плату, спаять и купить детали в магазине — проще купить на Али и перепрошить.
Естественно родные программы перестают видеть устройство. Вы как потом будете использовать устройство?
Большенство используют с системами умного дома и не хотят управлять розеткой через китайские сервера когда устройство у тебя в домашней сети. Чужими системами трудно управлять так как тебе надо, обенно если производитель не хочет что бы Вы пользовались другими системами. Системамы умного дома позволяют настроить любой алгоритм работы, а не то что предлагает китайский производитель.
Сначала нужно понять желаемую логику и архитектуру. А потом решать задачи.
А вы нашли решение и пытаетесть понять как и куда его себе прилепить?
Зачем для управления по хттп писать новую программу под андроид? она есть в каждом телефоне. веб-браузер называется.
— послать серверу по HTTP уникальный код абонента
— сервер отвечает абоненту цифрой LifeTime, когда подключаться нужно заново
— слать серверу сколько угодно вопросов «N-устройство что умеет», «N-устройсто в каком сосиоянии», «N-устройство перевести в такое-то состояние»
Сам же сервер должен уметь «слушать интернет» за роутером, и передавать устройствам в локальной сети какие-то команды (непонятные для меня из статьи).
Всего этого автор объяснять и обсуждать отказываается. Зачем тогда нужны устройства, с которыми связаться невозможно даже из локальной сети?
я чесно говоря не знаю как в HTTP делать математические вычисления, соединять из кусков HTTP адрес и т.п. Это придётся устанавливать и разбираться со всякими джавами, джасонами и т.п. ересью.
Проще, надёжнее, компактнее, и главное в 1000 раз более энергоэффективние написать настоящую *.exe программу с кодом для процессора, а не всякие там фреймворки.
Если начинать с 0! Учить какой нибудь язык все равно надо будет, даже чтобы
Я ни чего не обещал! Я написал как это сделать!
А откуда я знаю чем Вы будете управлять! Устройств миллион! Или вам в инструкции на автомобиль надо описывать как ездить в какой магазин? А как Вы будете ездить в тот который завтра откроется? Его нет в инструкции!
Статья для тех, кто знает зачем это надо (понимает что такое HTTP запрос).
Если Вы не знаете что это, и как его можно использовать, эта статья не для Вас!
то ему ни надо никаких программ не на чем! Устройство принимает сигналы от пультов ДУ (ИК или 433МГц) и отправляет HTTP запрос любому устройству в сети в зависимости от принятого кода (Шлюз — в теме топика).
Я не ответил на Ваши вопросы, потому что не понял, зачем писать программы, чтобы они через кокое то устройство отправили моему устройству ИК сигнал (или 433МГц), а оно уже отправляло HTTP запрос!
Поэтому и задал Вам вопрос!
Остаётся только предполагать, что нужно перепрошивать все устройства в сети при малейшем изменении чего бы то нибыло (например WiFi пароля), для обеспечения совместимости.
Тут написано!
Прочатайте в интернете HTTP GET и POST запросы! Станет понятно зачем они нужны и как ими управлять!
Здесь обсуждаем устройство и его работу! Вы прочитайте топик ниже названия, полностью! На все Ваши вопросы есть ответы!
В вашей статье нет никаких ответов как ваши HTTP сообщения, достигнут конечных устройств, особенно, если они находятся за роутером.
Типа:
Вам 3 раза задан один и тот же вопрос: Как Вы будете использовать устройство?
Странно. Ответа нет. А Вы сами знаете на него ответ?
Ничего, что это в теме топика?
Определитесь, что Вы хотите, изложите свои мысли правильно (почитав мат. часть), и Мы все постараемся Вам помочь!
Вот беру ваше «устройство-пульт» и свою «умную» розетку перепрошитую вашей прошивкой. Расположены они в разных городах; или в разных квартирах одного многоэтажного дома. Ваша статья называется «HTTP запросы за 5 минут», но как «HTTP запросы» использовать между этими двумя устройствами остаётся непонятно. Я думаю оно работать не будет даже с белыми IP адресами. Потому что нужен ещё и промежуточный сервер, который должен обрабатывать все нестандартные ситуации. А уж насчёт одноразовых IP адресов — вообще непонятно, что тогда делать.
Тогда разберем! (В роли сервера — умная розетка, в роли абонента — пульт от телека)
Зачем розетеке знать каким пультом Вы пользуетесь?
Розетка говорит когда надо человеку жать на кнопку! Непонятно зачем!
Что умеет? ON и OFF Это мы знали до того как правило писали!
В каком состоянии? А как Вам на пульте от телека это показать?
Перевести в такое-то состояние? Для этого и написали два правила с GET запросом ON и OFF
Зачем это розетке?
Наконец то Мы узнали что Вы хотите! Отвечаю!
Вы с пультом ДУ сидите в Донецке. Ваша розетка находится в Африке, за WiFi роутером и получает от него IP типа 192.168.1.Х
Роутеру африканский провайдер выдает:
А: серый IP — тогда Вы в роутере поднимаете DDNS и имеете что-то типа myrozetka.ddns.net
Б: белый IP — например 2.16.140.33 (Африка все же)
В обоих вариантах пробрасываем в роутере 80 порт на IP 192.168.1.123 (не забываем зарезервировать в роутере данный ip за розеткой)
Прописываем правило в устройстве:
Для белого IP
Для серого IP
Нажимаете кнопку А на пульте — розетка включается, кнопку В — выключается.
Надеюсь для Вас разжевал!
Настройка WiFi роутера в топике обсуждаться не будет!
А сервер нужен для того, что у вас может быть случайное число конечных устройств в данный момент времени (например сегодня одно сгорело, а завтра вы поставите похожее, но с другими характеристиками — типа была «розетка», а стало «выключатель»). И самое главное для безопасного доступа к устройствам. Вы же не хотите прописывать логин/пароль в каждую розетку? И сами в комментариях признаёте, что HTTPS в ардуиноподобных железках — пока ещё сложно реализовать. Ну а то, что я в своём описании сервера предлагал в качестве «секретное число» >«LifeTime», то это вместо HTTPS. Перехватить это конечно может любой, но только локально. Далёкие злоумышленники скорее всего застрянут на этом.
Но управлять веб сервером, который в другом городе (у хостера) можно.
Живой пример: В организации в коридоре висит большой ТВ, который показывает веб страничку сайта организации. Кнопками пульта 1-9 включается нужная страница сайта на отображение.
Такой вопрос — может кто-то сталкивался с такими — на каком уровне он управлялся? На уровне ос или железа(хотя не совсем понятно как)
И вообще возможно ли где-то найти коды управления на этот nuc?
Intel nuc наверное заточен под пульт Microsoft MCE Remote Control.
Точно такой же
На сайте intel в разделе поддержка: как настоить BIOS для пробуждения от ИК, а также драйвера и ПО.
Есть самодельное «типа-интернет-радио».
Системник с linux, на котором через MPD крутятся интернет-трансляции. Управляется это чудо с других компов по сети с помощью GMPC.
Так вот, хочу подключить туда по USB кнопки «станция вверх/вниз», и «громкость выше/ниже». Чтобы, находяь рядом с устройством, рулить им непосредственно этими кнопками.
Т.е., нужно преобразовывать нажатия кнопок физических в посыл сигналов программе воспроизведения. В какую сторону смотреть, что читать? Может, есть готовые/полуготовые решения?
Спасибо.