Скорее всего, куча народу занимались подобным до меня, но я напишу.
Как-то раз стало лень мне вставать с дивана, чтобы переключить музыку на колонках в другом конце комнаты. Через пару дней я увидел окончательную реализацию своей идеи.
Была поставлена цель: создать устройство, позволяющая удаленно контролировать воспроизведение музыки на аудиосистеме.
Исходные данные: Одноплатный компьютер Raspberry Pi, MicroSD карта на 4 Гб, USB HDD (я взял терабайтник), USB звуковая карта.
В процессе настройки я добавил к этому устройству некоторые дополнительные функции, а конкретно файлопомойки и торрентокачалки.
Я выбрал Raspberry Pi, так как она не издает шума от слова совсем и недорогая, по сравнению с обычными компьютерами.
Купил ее я на aliexpress(https://ru.aliexpress.com/item/Original-Raspberry-Pi-3-Model...)
После того, как мне пришла плата, я записал на sd карту операционную систему raspbian, подключил usb-клавиатуру, hdmi монитор и включил. Сразу, чтобы не возникало вопросов: стандартная пара логин/пароль - "pi" / "raspberry".
Подробно об этом написано здесь: https://geekelectronics.org/raspberry-pi/raspberry-pi-pervyj...
После того, как вы получили доступ к командной консоли, необходимо настроить работу сети. Гайд подразумевает, что вы имеете доступ к домашней wifi сети, способны изменить конфигурацию роутера.
До этого вы проводите начальную конфигурацию устройства в псевдографической утилите raspi-config. Если при первом входе в систему она не запустилась - войдите в консоль и наберите команду sudo raspi-config
В этой утилите вы настраиваете все под себя как вам угодно, однако не забудьте включить сервер SSH для более удобной настройки устройства через Interfaces > SSH > Enable
Первым делом, подключаемся к wifi. Вот хорошая статья: http://robocraft.ru/blog/electronics/3162.html
После того, как подключились к wifi, нам необходимо получить статический адрес в локальной сети. Я знаю два способа сделать это.
1) Наилучшем вариантом будет настройка роутера
Необходимо найти настройку DHCP сервера и сделать так, чтобы он выдавал нашему устройству определенный IP-адрес. В моем роутере это делается в таком окошке, у вас может быть по другому.
2) Прописать статические настройки в системе. Для этого редактируем файл /etc/network/interfaces(это делается командой sudo nano /etc/network/interfaces)
В файле находим строку, которую меняли при настройке wifi, а именно
"iface wlan0 inet manual"
и меняем manual на static, а сразу после этой строки дописываем
"address 192.168.123.254 # ip-address
netmask 255.255.255.0 # маска подсети
network 192.168.123.0 # подсеть
broadcast 192.168.123.255 #широковещательный адрес
gateway 192.168.123.1 # шлюз"
Я, тем не менее, рекомендую вам использовать первый метод, так как он практически исключает возможность конфликта адресов в сети.
Поскольку мы получили статический адрес в сети, мы можем спокойно отключить монитор от Raspberry Pi и пойти за свой домашний компьютер. Или остаться у монитора с raspberry pi. Вариативно.
Если вы захотели посидеть за вашим компьютером, то подключитесь к Raspberry Pi по SSH. В линуксовых системах введите команду ssh pi@192.168.1.231(Вместо него статический ip, который вы дали микрокомпьютеру. В windows скачайте ssh-клиент PUTTY(или какой-нибудь другой) и подключитесь подобным образом к Raspberry Pi.
Самое время научить наш сервер правильно монтировать жесткий диск. Сначала, разумеется, нужно подключить его к одному из USB-портов.
Для поддержки NTFS необходимо установить пакет ntfs-3g. Для этого в консоли набираем команду:
sudo apt-get install ntfs-3g
Создаем каталог, в который будем монтировать наш USB HDD
sudo mkdir /mnt/usbdrive
Устанавливаем права на запись на этот каталог
sudo chmod 777 /mnt/usbdrive
Прописываем в конец файла /etc/fstab команду авто монтирования нашего USB HDD:
/dev/sda1 /mnt/usbdrive ntfs-3g defaults,rw 0 1
Перезагружаем устройство:
sudo reboot
После перезагрузки вы сможете увидеть все файлы с диска, зайдя в папку /mnt/usbdrive
Установим драйвер звуковой карты:
sudo apt-get update
sudo apt-get install alsa-utils -y
sudo modprobe snd_bcm2835
sudo amixer cset numid=3 1
В самый конец файла /etc/modules добавим строку snd_bcm2835
Проверим звук. Не забудьте воткнуть наушники/колонки
Скачаем аудиофайл с интернета:
wget http://dl1-1.mp3party.net/download/7128
sudo apt-get install mplayer -y
mplayer 7128
Как вы можете слышать, звук не очень качественный. Объясняется это тем, что звуковая карта Raspberry Pi работает по очень своеобразной схеме: вместо стандартного преобразователя цифрового сигнала в аналоговый там установлен широтно-импульсный модулятор, управляемый непосредственно процессором. Эта технология значительно уступает обычной по качеству. Выход - подключение внешней audio карты.
У меня внешняя аудиокарта заработала после того, как я создал файл /etc/modprobe.d/alsa.conf и добавил в него "options snd slots=snd_usb_audio,snd_bcm2835"
Далее - настройка плеера. Я выбрал плеер mpd, поскольку им можно управлять практически с любого устройства, в частности с android смартфона.
sudo apt-get install mpd -y
Далее необходимо отредактировать файл конфигурации mpd( /etc/mpd.conf)
Я лишь дам вам ссылку на свою конфигурацию, а вы поменяйте ее под себя.
https://pastebin.com/cEiJnVzd
sudo reboot
mpc update
mpc listall | mpc add
mpc play
После этого вы можете установить приложение mpdroid(например) на свой телефон, ввести настройки подключения к raspberry pi и управлять воспроизведением.
Если будет кому-то интересно, я допишу часть с настройкой файлового сервера и торрент-клиента.