Вот и появилась у меня свободная минутка, постараюсь её использовать и рассказать как настроить инфракрасное управление музыкальным центром. Тот кто повторил мою конструкцию, однозначно выдел на плате передней панели ИК приемник, я использовал китайский VS1838B, но можно установить любой с возможностью декодировать сигнал на несущей частоте 38 кГц. ИК приемник устанавливается на плату как показано вот тут
Если внимательно посмотреть на схему, то можно увидеть, что ИК приемник подключен к 37й ножке системного разъема RPI Zero, или к GPIO26. Для возможности принимать ИК команды с пульта я использовал LIRC (Linux Infrared Remote Control). Напомню, что я использую moOde™ audio player. Для начала зайдем в консоль по SSH, для этого желательно использовать компьютер с Linux системой или PuTTY для винды. Итак в консоли вводим:
Пользователь: pi Пароль: moodeaudio
ssh pi@192.168.0.2 (используйте адрес вашего устройства!)
Теперь установим сам LIRC:
sudo apt-get update
sudo apt-get install lirc
Далее редактируем /etc/lirc/lirc_options.conf:
sudo nano /etc/lirc/lirc_options.conf
И меняем
изменить: driver = devinput на driver = default
изменить: device = auto на device = /dev/lirc0
Теперь редактируем /boot/config.txt
dtoverlay=gpio-ir,gpio_pin=26
Желательно уже иметь файл конфигурации к вашему пульту, у меня он выглядит вот так. Для пульта за 1 доллар В интернете можно найти огромное множество файлов для различных пультов, ну и конечно же можно создать этот файл самостоятельно, для этого вводим в консоли:
sudo irrecord -n -d /dev/lirc0 ~/lircd.conf
...и следуем инструкциям. И, к стати, на оффициальном сайте есть подробная инструкция.
Перегружаемся:
sudo reboot
Теперь редактируем: /lib/systemd/system/irexec.service добавляя запуск процесса от пользователя pi: (приведу файл целиком)
[Unit]
Documentation=man:irexec(1)
Documentation=http://lirc.org/html/configure.html
Documentation=http://lirc.org/html/configure.html#lircrc_format
Description=Handle events from IR remotes decoded by lircd(8)
[Service]
user=pi
group=pi
; Hardening opts, see systemd.exec(5). Doesn't add much unless
; not running as root. If these are applicable or not depends on
; what commands irexec.lircrc invokes.
;
; NoNewPrivileges=true
; MemoryDenyWriteExecute=true
; PrivateTmp=true
; ProtectHome=true
; ProtectSystem=full
Type=simple
ExecStart=/usr/bin/irexec /home/pi/.lircrc
; /etc/lirc/irexec.lircrc
[Install]
WantedBy=multi-user.target
И, наконец, создадим файл /home/pi/.lircrc, который будет содержать исполняемые команды при нажатии кнопок на ИК пульте:
begin
prog = irexec
button = KEY_POWER
# config = sudo /sbin/poweroff
config = mpc stop; sudo /var/www/command/restart.sh poweroff
end
begin
prog = irexec
button = KEY_VOLUMEUP
config = /var/www/vol.sh up 1
end
begin
prog = irexec
button = KEY_UP
config = /var/www/vol.sh up 1
end
begin
prog = irexec
button = KEY_VOLUMEDOWN
config = /var/www/vol.sh dn 1
end
begin
prog = irexec
button = KEY_DOWN
config = /var/www/vol.sh dn 1
end
begin
prog = irexec
button = KEY_MUTE
config = /var/www/vol.sh mute
end
Здесь синтаксиси очень простой, каждой кнопке ( button = KEY_VOLUMEUP ) соответствует команда ( config = /var/www/vol.sh up 1 ). Хочу отметить, что кнопка "KEY_POWER" работает только на выключение, включать девайс нужно все-же кнопкой на передней панели. Цифровым кнопкам с 0-9 я назначил выполнение команд - "mpc play Х", где Х-номер кнопки, и, соответственно номер песни в плей листе. Посмотрите внимательно мой файл и вы сможете сделать практически всё, что захотите!
Перегружаемся:
sudo reboot
И проверяем:
systemctl status lircd
systemctl status irexec
Теперь вы можете управлять вашим музыкальным центром с помощью ИК пульта. Кстати, если у кого-то есть интересные идеи, как это сделать лучше, добавляйте комментарии...