Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам > OpenWRT/LEDE

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.09.2012, 23:25   #1
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,612
Вес репутации: 9814
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Дистанционное управление IR пультом в OpenWrt

Название: IRemout.jpg
Просмотров: 4334

Размер: 38.7 Кб

В OpenWrt за работу инфракрасного канала связи отвечает программа LIRC
Устанавливаем пакеты:
opkg install kmod-usb-hid
opkg install udev
opkg install lirc
opkg install lircdaemonadd lirctools


При нажатии кнопки на пульте, посылается команда по ИК каналу, соответствующая нажатой кнопке. Приёмник подключенный к usb-порту роутера принимает эту команду и посылает сигнал в LIRC с кодом этой команды. Демон LIRC сравнивает код команды с теми кодами, которые он знает, и выполняет действие, которое сопоставлено этому коду.

Подключим приёмник к usb-порту и ищем его в папке ls /dev

Проверим, передаются ли команды посылаемые с пульта систему. Для этого запустим следующую команду и нажимаем кнопки на пульте:
cat /dev/input/event0 | hexdump

С помощью программы irrecord можно для каждой кнопки пульта задать своё имя:
irrecord -d /dev/input/event0 /etc/lircd.conf --disable-namespace

Также для диагностики есть программа mode2.

Запускаем демона lircd. Файл /etc/lircd.conf является конфигурационным файлом демона lircd. В этом файле сопоставляется название кнопки и ее код, который принимается по ИК каналу. Этот файл конфигурации можно создать самому, для этого нужно считывать значения кнопок и задавать им имена, или взять готовый lircd.conf
Выглядит он следующим образом:

Код:
begin remote
 name ChapletSystem
 bits 32
 begin codes
 POWER 0x40004 0x80010074
 RADIO 0x40004 0x8001001e
 TV 0x40004 0x80010014
 DVD 0x40004 0x80010031
 MUSIC 0x40004 0x80010032
 PHOTO 0x40004 0x80010017
 VIDEO 0x40004 0x80010012
 DVD_MENU 0x40004 0x8001002f
 MUTE 0x40004 0x80010042
 BACK 0x40004 0x8001000e
 GUIDE 0x40004 0x8001003b
 VOLUME_UP 0x40004 0x80010073
 VOLUME_DOWN 0x40004 0x80010072
 CHANNEL_UP 0x40004 0x80010068
 CHANNEL_DOWN 0x40004 0x8001006d
 ARROW_UP 0x40004 0x80010067
 ARROW_DOWN 0x40004 0x8001006c
 ARROW_LEFT 0x40004 0x80010069
 ARROW_RIGHT 0x40004 0x8001006a
 ENTER 0x40004 0x8001001c
 RECORD 0x40004 0x8001001d 0x40004 0x80010013
 REPEAT 0x40004 0x8001002a 0x40004 0x80010013
 PLAY 0x40004 0x8001002a 0x40004 0x80010019
 PAUSE 0x40004 0x8001001d 0x40004 0x80010019
 STOP 0x40004 0x8001001f
 REWIND 0x40004 0x8001002a 0x40004 0x80010020
 FORWARD 0x40004 0x8001002a 0x40004 0x80010021
 PREV_TRACK 0x40004 0x8001001d 0x40004 0x80010030
 NEXT_TRACK 0x40004 0x8001001d 0x40004 0x80010021
 NUMPAD_1 0x40004 0x80010002
 NUMPAD_2 0x40004 0x80010003
 NUMPAD_3 0x40004 0x80010004
 NUMPAD_4 0x40004 0x80010005
 NUMPAD_5 0x40004 0x80010006
 NUMPAD_6 0x40004 0x80010007
 NUMPAD_7 0x40004 0x80010008
 NUMPAD_8 0x40004 0x80010009
 NUMPAD_9 0x40004 0x8001000a
 NUMPAD_0 0x40004 0x8001000b
 end codes
 end remote
Посмотреть список всек кнопок
irrecord --list-namespace

Запускаем демона lircd:
mkdir /var/run/lirc
lircd -n --driver=default --device=/dev/input/event0 --pidfile /var/run/lirc/lircd.pid

В другом окне запускаем клиент irw. Клиент irw считывает данные lircd и выводит результат на экран. После запуска нажимаем кнопки на пульте. На экране должны видеть название кнопок и код:
irw
Цитата:
0000000000040004 00 ENTER ChapletSystem
0000000000040004 00 VOLUME_UP ChapletSystem
0000000000040004 00 VOLUME_DOWN ChapletSystem
0000000000040004 00 ARROW_RIGHT ChapletSystem
0000000000040004 00 ARROW_UP ChapletSystem
0000000000040004 00 ARROW_DOWN ChapletSystem
0000000000040004 00 ARROW_LEFT ChapletSystem
Чтобы к кнопке привязать требуемое действие, имеется файл lircrc
Его формат рассмотрим на примере:
Цитата:
begin
prog = irexec
button = ENTER
config = echo "It is button 'ENTER'"
end

begin
prog = irexec
button = VOLUME_UP
config = /home/my_script.sh
end
При нажатии кнопки ENTER на пульте, выполнить echo "It is button 'ENTER'" или при нажатии кнопки на пульте VOLUME_UP, выполнить скрипт /home/my_script.sh. Irexec - это демон, который осуществляет запуск программ по нажатию кнопки на пульте.

Что бы понять его работу , запустим демона lircd в фоновом режиме, а при запуске демона irexec укажем ему файл lircrc:
lircd --driver=default --device=/dev/input/event0 —pidfile
irexec /home/lircrc
sh: /home/my_script.sh: not found
It is button 'ENTER'
It is button 'ENTER'
sh: /home/my_script.sh: not found /var/run/lirc/lircd.pid
Admin вне форума   Ответить с цитированием
Старый 20.09.2012, 00:22   #2
Civil
Junior Member
 
Регистрация: 19.09.2012
Сообщений: 6
Вес репутации: 0
Civil is an unknown quantity at this point
По умолчанию

Очень интересно, спасибо.
Civil вне форума   Ответить с цитированием
Старый 20.09.2012, 23:05   #3
Civil
Junior Member
 
Регистрация: 19.09.2012
Сообщений: 6
Вес репутации: 0
Civil is an unknown quantity at this point
По умолчанию

Что-то ругается. Не дадите ссылку на оригинальную статью?

Цитата:
root@OpenWrt:~# irrecord -d /dev/input/event0 /etc/lircd.conf --disable-namespace
irrecord: WARNING: you should specify a valid gap value

irrecord - application for recording IR-codes for usage with lirc

Copyright (C) 1998,1999 Christoph Bartelmus(lirc@bartelmus.de)

irrecord: could not get hardware features
irrecord: this device driver does not support the LIRC ioctl interface
irrecord: did you mean to use the devinput driver instead of the default driver?
irrecord: could not init hardware (lircd running ? --> close it, check permissions)
коды девайс передает как-то так:
Цитата:
root@OpenWrt:~# cat /dev/input/event0 | hexdump
0000000 505b 688b 0000 2ba6 0004 0004 000c 018a
0000010 505b 688b 0000 2bb1 0001 009b 0000 0001
0000020 505b 688b 0000 2bb8 0000 0000 0000 0000
0000030 505b 688b 0000 6a10 0004 0004 000c 018a
0000040 505b 688b 0000 6a1c 0001 009b 0000 0000
0000050 505b 688b 0000 6a2c 0000 0000 0000 0000

0000060 505b 6890 0004 521a 0004 0004 0007 00e0
0000070 505b 6890 0004 5227 0001 001d 0000 0001
0000080 505b 6890 0004 5247 0004 0004 0007 00e2
0000090 505b 6890 0004 524d 0001 0038 0000 0001
00000a0 505b 6890 0004 52aa 0004 0004 0007 0004
00000b0 505b 6890 0004 52b0 0001 001e 0000 0001
00000c0 505b 6890 0004 52b6 0000 0000 0000 0000
00000d0 505b 6890 0004 9109 0004 0004 0007 001e
00000e0 505b 6890 0004 9113 0001 0002 0000 0001
00000f0 505b 6890 0004 9119 0000 0000 0000 0000
0000100 505b 6890 0004 cf84 0004 0004 0007 003a
0000110 505b 6890 0004 cf8e 0001 003b 0000 0001
0000120 505b 6890 0004 cf94 0000 0000 0000 0000
0000130 505b 6890 0005 0d8d 0004 0004 0007 00e0
0000140 505b 6890 0005 0d97 0001 001d 0000 0000
0000150 505b 6890 0005 0db5 0004 0004 0007 00e2
0000160 505b 6890 0005 0dba 0001 0038 0000 0000
0000170 505b 6890 0005 0e09 0004 0004 0007 0004
0000180 505b 6890 0005 0e0f 0001 001e 0000 0000
0000190 505b 6890 0005 0e1e 0000 0000 0000 0000
00001a0 505b 6890 0005 4c73 0004 0004 0007 001e
00001b0 505b 6890 0005 4c7d 0001 0002 0000 0000
00001c0 505b 6890 0005 4c8c 0000 0000 0000 0000
00001d0 505b 6890 0005 8af7 0004 0004 0007 003a
00001e0 505b 6890 0005 8b01 0001 003b 0000 0000
00001f0 505b 6890 0005 8b06 0000 0000 0000 0000
Civil вне форума   Ответить с цитированием
Старый 21.09.2012, 00:16   #4
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,612
Вес репутации: 9814
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

Можно в ручную привязать названия к кодам, в файле lircd.conf
Копируешь код кнопки и вставляешь его в lircd.conf рядом с названием
Admin вне форума   Ответить с цитированием
Старый 22.09.2012, 03:43   #5
Civil
Junior Member
 
Регистрация: 19.09.2012
Сообщений: 6
Вес репутации: 0
Civil is an unknown quantity at this point
По умолчанию

Похоже пульт не вполне адекватно видится софтом.
Вот эти блоки 0-50 и 60-1f0 это 2 нажатия кнопок.
Civil вне форума   Ответить с цитированием
Старый 22.09.2012, 18:25   #6
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,612
Вес репутации: 9814
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

Возможно что код нажатия первой кнопки 0004 0004 000c 018a
Admin вне форума   Ответить с цитированием
Старый 06.04.2013, 22:17   #7
mszerg
Junior Member
 
Регистрация: 21.01.2013
Возраст: 42
Сообщений: 17
Вес репутации: 0
mszerg is an unknown quantity at this point
По умолчанию

У кого нибуть получилось запустить?

При разных варинатах запуска пишет одно и тоже

Driver `dev/input' not supported.
Supported drivers:
default
mszerg вне форума   Ответить с цитированием
Старый 06.04.2013, 23:52   #8
amod-cccp
Senior Member
 
Аватар для amod-cccp
 
Регистрация: 05.01.2013
Адрес: Беларусь
Сообщений: 241
Вес репутации: 630
amod-cccp has a reputation beyond reputeamod-cccp has a reputation beyond reputeamod-cccp has a reputation beyond reputeamod-cccp has a reputation beyond reputeamod-cccp has a reputation beyond reputeamod-cccp has a reputation beyond reputeamod-cccp has a reputation beyond reputeamod-cccp has a reputation beyond reputeamod-cccp has a reputation beyond reputeamod-cccp has a reputation beyond reputeamod-cccp has a reputation beyond repute
По умолчанию

А что можно управлять на роутере с пульта? Как то фантазия у меня затормазилась.
__________________
Моя солянка на основе TL-MR3020.
amod-cccp вне форума   Ответить с цитированием
Старый 06.04.2013, 23:59   #9
mszerg
Junior Member
 
Регистрация: 21.01.2013
Возраст: 42
Сообщений: 17
Вес репутации: 0
mszerg is an unknown quantity at this point
По умолчанию

Цитата:
Сообщение от amod-cccp Посмотреть сообщение
А что можно управлять на роутере с пульта? Как то фантазия у меня затормазилась.
Ардуину приделай и расширяй сознание)))
mszerg вне форума   Ответить с цитированием
Старый 31.03.2017, 01:44   #10
ald
Junior Member
 
Регистрация: 13.10.2013
Сообщений: 14
Вес репутации: 0
ald is an unknown quantity at this point
По умолчанию

продублирую здесь вопрос

Помогите подключить устройство:

#lsusb
ID 07d0:4100 Dazzle Kingsun SF-620 Infrared Adapter

Роутер TL-WR703, флеш 16Mb, OpenWRT CC 15.05.1

Но усстойство в /dev/input/_DazzleUSB-IRStick_ не появляется. И lirc его не видит.
Похоже, драйвер нужен.
ald вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 14:05. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика