12 063
правки
м |
(Отметить эту версию для перевода) |
||
Строка 1: | Строка 1: | ||
<languages/> | <languages/> | ||
<translate> | <translate> | ||
<!--T:1--> | |||
В этой статье описывается прием и передача сигналов пультов управления бытовой техникой, работающих в инфракрасном диапазоне (то есть большинство пультов от телевизоров, кондиционеров, и т. д.). | В этой статье описывается прием и передача сигналов пультов управления бытовой техникой, работающих в инфракрасном диапазоне (то есть большинство пультов от телевизоров, кондиционеров, и т. д.). | ||
== Аппаратная часть == | == Аппаратная часть == <!--T:2--> | ||
<!--T:3--> | |||
[[Файл:ИК-приемник.jpg|300px|thumb|right|ИК-приемник]] | [[Файл:ИК-приемник.jpg|300px|thumb|right|ИК-приемник]] | ||
[[Файл:Бластер.JPG|300px|thumb|right|ИК-передатчик]] | [[Файл:Бластер.JPG|300px|thumb|right|ИК-передатчик]] | ||
'''Внимание! В ревизиях контроллера 5.8 и старше ИК-порт для подключения приемопередатчика отсутствует!''' | '''Внимание! В ревизиях контроллера 5.8 и старше ИК-порт для подключения приемопередатчика отсутствует!''' | ||
<!--T:4--> | |||
На [[Wiren Board 5]] ([[Wiren Board 5: Аппаратные ревизии|до ревизии 5.6.1]] включительно) необходимые сигналы выведены на разъем mini-jack 3.5mm с со следующей распиновкой: | На [[Wiren Board 5]] ([[Wiren Board 5: Аппаратные ревизии|до ревизии 5.6.1]] включительно) необходимые сигналы выведены на разъем mini-jack 3.5mm с со следующей распиновкой: | ||
* Tip (левый аудиоканал) - питание 5В/передача IR. | * Tip (левый аудиоканал) - питание 5В/передача IR. | ||
Строка 15: | Строка 18: | ||
Распиновка разъёма позволяет подключать распространённые ИК-приёмники и передатчики от бытовой техники. | Распиновка разъёма позволяет подключать распространённые ИК-приёмники и передатчики от бытовой техники. | ||
<!--T:5--> | |||
Для приема ИК-сигналов необходимо подключить приемник (совмещённый приёмопередатчик WB-CIR-TR). Номинальная частота несущей приемника должна примерно соответствовать частоте несущей используемого пульта, в противном случае возможно ухудшение или полная невозможность приема сигнала от пульта. | Для приема ИК-сигналов необходимо подключить приемник (совмещённый приёмопередатчик WB-CIR-TR). Номинальная частота несущей приемника должна примерно соответствовать частоте несущей используемого пульта, в противном случае возможно ухудшение или полная невозможность приема сигнала от пульта. | ||
<!--T:6--> | |||
Для передачи ИК-сигналов рекомендуется использовать готовый совмещённый ИК-приёмопередатчик WB-CIR-TR , Samsung IR Blaster bn96/26652a или подобный. | Для передачи ИК-сигналов рекомендуется использовать готовый совмещённый ИК-приёмопередатчик WB-CIR-TR , Samsung IR Blaster bn96/26652a или подобный. | ||
=== Технические детали === | === Технические детали === <!--T:7--> | ||
Распиновка разъёма mini-jack 3.5mm на [[Wiren Board 5]] : | Распиновка разъёма mini-jack 3.5mm на [[Wiren Board 5]] : | ||
* Tip (левый аудиоканал) - питание 5В/передача IR. | * Tip (левый аудиоканал) - питание 5В/передача IR. | ||
Строка 28: | Строка 33: | ||
== Программная часть == | == Программная часть == <!--T:8--> | ||
<!--T:9--> | |||
На уровне ядра за работу с ИК на [[Wiren Board 5]] отвечает драйвер '''lirc-pwm'''. Он предоставляет устройство /dev/lirc1. | На уровне ядра за работу с ИК на [[Wiren Board 5]] отвечает драйвер '''lirc-pwm'''. Он предоставляет устройство /dev/lirc1. | ||
<!--T:10--> | |||
С этим устройством взаимодействует демон '''lircd''' из состава пакета [http://www.lirc.org/ LIRC], осуществляющий декодирование последовательностей импульсов в события нажатых на пульте кнопок согласно файлам конфигурации пультов. Также этот демон способен осуществлять обратное преобразование для передачи сигналов нажатия кнопок управляемым устройствам. | С этим устройством взаимодействует демон '''lircd''' из состава пакета [http://www.lirc.org/ LIRC], осуществляющий декодирование последовательностей импульсов в события нажатых на пульте кнопок согласно файлам конфигурации пультов. Также этот демон способен осуществлять обратное преобразование для передачи сигналов нажатия кнопок управляемым устройствам. | ||
<!--T:11--> | |||
Наконец, трансляцию событий от '''lircd''' в сообщения [[MQTT]] и обратно осуществляет демон '''wb-mqtt-lirc''' | Наконец, трансляцию событий от '''lircd''' в сообщения [[MQTT]] и обратно осуществляет демон '''wb-mqtt-lirc''' | ||
=== Установка и настройка === | === Установка и настройка === <!--T:12--> | ||
Необходимые пакеты ( wb-mqtt-lirc, lirc-scripts, wb-mqtt-lirc), а так же правильный конфиг-файл /etc/lirc/hardware.conf установлены в стандартном образе, начиная с версии 201512070633. | Необходимые пакеты ( wb-mqtt-lirc, lirc-scripts, wb-mqtt-lirc), а так же правильный конфиг-файл /etc/lirc/hardware.conf установлены в стандартном образе, начиная с версии 201512070633. | ||
* Скачать или сгенерировать файл конфигурации пульта и положить его в '''/etc/lirc/lircd.conf.d/'''. | * Скачать или сгенерировать файл конфигурации пульта и положить его в '''/etc/lirc/lircd.conf.d/'''. | ||
==== Скачивание существующего конфига пульта ==== | ==== Скачивание существующего конфига пульта ==== <!--T:13--> | ||
<pre> | <pre> | ||
root@wirenboard:~# irdb-get update | root@wirenboard:~# irdb-get update | ||
Строка 50: | Строка 58: | ||
</pre> | </pre> | ||
==== Создание нового конфига пульта ==== | ==== Создание нового конфига пульта ==== <!--T:14--> | ||
''TODO: описать как пользоваться irrecord'' | ''TODO: описать как пользоваться irrecord'' | ||
<!--T:15--> | |||
После завершения конфигурации, следует перезапустить службы '''lirc''' и '''wb-mqtt-lirc''' | После завершения конфигурации, следует перезапустить службы '''lirc''' и '''wb-mqtt-lirc''' | ||
<pre> | <pre> | ||
Строка 58: | Строка 67: | ||
</pre> | </pre> | ||
=== MQTT-интерфейс === | === MQTT-интерфейс === <!--T:16--> | ||
<!--T:17--> | |||
'''wb-mqtt-lirc''' создает устройство ''/devices/wb-lirc/'', принятые нажатия публикуются в топике ''/devices/wb-lirc/controls/Key'' в формате '''<название_пульта>:<название_кнопки>:<повтор>'''. После отпускания кнопки в этом топике публикуется сообщение с пустым телом. | '''wb-mqtt-lirc''' создает устройство ''/devices/wb-lirc/'', принятые нажатия публикуются в топике ''/devices/wb-lirc/controls/Key'' в формате '''<название_пульта>:<название_кнопки>:<повтор>'''. После отпускания кнопки в этом топике публикуется сообщение с пустым телом. | ||
<!--T:18--> | |||
Пример: | Пример: | ||
<pre> | <pre> | ||
Строка 75: | Строка 86: | ||
</pre> | </pre> | ||
<!--T:19--> | |||
Для отправки нажатия кнопки следует опубликовать сообщение в формате '''<название_пульта>:<название_кнопки>''' в топике ''/devices/wb-lirc/controls/Key/on'' | Для отправки нажатия кнопки следует опубликовать сообщение в формате '''<название_пульта>:<название_кнопки>''' в топике ''/devices/wb-lirc/controls/Key/on'' | ||
== Устранение неисправностей == | == Устранение неисправностей == <!--T:20--> | ||
=== Не работает прием === | === Не работает прием === | ||
* Убедиться что драйвер "видит" импульсы от приемника. | * Убедиться что драйвер "видит" импульсы от приемника. | ||
Строка 88: | Строка 100: | ||
**: Должные бежать строчки при нажатии кнопок на пульте. Если '''mode2''' работает, а '''irw''' - нет, то проблема с конфигом пульта. Стоит попробовать использовать другой конфиг, либо создать новый. | **: Должные бежать строчки при нажатии кнопок на пульте. Если '''mode2''' работает, а '''irw''' - нет, то проблема с конфигом пульта. Стоит попробовать использовать другой конфиг, либо создать новый. | ||
=== Не работает передача === | === Не работает передача === <!--T:21--> | ||
* Попробовать передавать обращаясь к LIRC напрямую: | * Попробовать передавать обращаясь к LIRC напрямую: | ||
<pre> | <pre> |
правки