Кухонный медиаплеер на основе raspberry
Спросите почему кухонный? Да тут все просто – таймер. Не так много мест, где иногда нужен таймер, если у вас не лаборатория, где вы варите мет, или туалет, чтоб гости не засиживались, то единственное место, где он нужен обычному человеку – на кухне (чтоб не сгорел пирог или курица в духовке, не переварить яйцо всмятку и т.д.). Есть же смартфон! Да есть, но я не хожу по квартире со смартфоном в руках. Дома он превращается в обычный телефон, тихонько лежит где-нибудь на зарядке и ждет звонка. Прожженный критик сразу закричит – о, опять малина, и для часов с таймером – это как микроскопом забивать гвозди. А я улыбнусь и ничего не скажу. Просто вспомню, какой путь я прошел, чтоб сделать каконец-то на кухне вещь, которая покрывала бы все мои и моей жены хотелки для этого аппарата. Да, сперва были часы, нет, даже не на ардуино, я про них тогда не знал, на PIC16F628, был там и таймер и радио и управление с пульта, но кроме функций часов, другие функции были невостребованы – неудобно, лишние телодвижения, неинформативно, ненаглядно. А с радио получился большой облом. Бывают такие места в городах, где есть настоящие «ямы», радио не ловит, мобильная связь никакая…у меня дома так. Забавно смотреть, как приходящие гости, чтоб поговорить со своего лайфа высовываются в окно, чтоб связь не отрубалась (киевстар и водафон чуть получше берут, но не сильно). Радио. Стабильно ловит 3 станции, которые можно слушать, для остальных нужна антенна на крышу – но увы, не вариант. И тогда я наткнулся на проект Ka-radio, о, это было чудо! Интернет-радио – слушай, что хочешь, сделал я этих радио много в разных вариациях с разными экранами, со своими хотелками, но, нужен был большой экран. Вы когда-нибудь пробовали на ардуинке работать с большим экраном? Ну да, наверняка, многие скажут – мега2560 и вперед. Да, все так. А пробовали нарисовать какой-то красивый сложный интерфейс и с обработкой тачем кучи кнопок? Тоже без проблем. А если таких интерфейсов-экранов с десяток? Что-что? На меге память закончилась? :) Да ладно, есть же SD – просто работаем с картой, отрисовываем весь экран с карты и просто обрабатываем, хватит памяти. Что? Медленно отрисовывается? Почухав репу…есть же STM в конце концов! Да и esp пошустрее будет! Все так, но я решил не извращаться, а встретил вдруг экраны Nextion (там кстати STM-ки и стоят). Да, это нечто. Свой GUI-редактор, и не только рисовать, но и обрабатывать можно. Радовался я недолго. Красиво (относительно), но убогий редактор, убогие углы обзора, «дубовый» тач и чтоб сделать что-то очень непростое надо сильно постараться. А шрифты…боже, на то время (года 3 тому назад) у них был только 1 русский шрифт, причем корявый, да, разные размеры, но 1. Но я сделал. Esp + nextion, там были почти все мои хотелки. Через полгода экран сдох. А к тому моменту у меня на руках уже была малина. Я не знал ни питона, ни qt, ни js, но разве может разогнанного дикого кабана, учуявшего добычу, остановить тонкая береза? Нет! Хотя за березой впритык стоят вековые дубы… Это я все о том, зачем малина. А почему бы и нет? Что делают сейчас на малине – NAS, торрентокачалки, медиаплеер (ну, на андроиде приставки получше будут, но пользоваться можно), volumio (для аудиофилов), эмуляторы старых приставок для игр и всякие извращения для опытов, ну так почему бы и не малина с ее полноценными возможностями компьютера? Проект этот я закончил больше 2 лет назад, делал около полугода (в основном в выходные, иногда вечерами после работы). Qt я, конечно, так до конца и не освоил (какие там можно красивые вещи делать….эх), но для обычных «окошек» и кнопок меня хватило. Аппарат вот уже более двух лет работает стабильно в режиме 24/7, я доволен, жена довольна – наконец-то на кухне та вещь, которая была нужна нам обоим. А гости приходят, смотрят, задают вопросы…что и сподвигло меня наконец-то пересилить свою лень и написать эту статью.Теперь о самом медиаплеере:
Состоит это дело из:
- Raspberry 3b+ (можно было и попроще, но был на руках только такой)
- Официальный экран Raspberry 7`` - да, дорогой, но понравился экран сочностью красок, отзывчивостью тача, настраиваемой яркостью, углами обзора
- Датчик DS18b20 (внешний, с некоторых пор, я перестал их держать в корпусе, а выношу наружу)
- резистор 10к (можно и 4,7к) – паял его прямо навесом к проводам, потом замотал изолентой
- Модуль реле 5В
- 2 Динамика (у меня были такие: https://aliexpress.ru/item/32834511016.html?spm=a2g0s.9042311.0.0.274233ed7TdMuf, расстояние между диагональными отверстиями 63мм, корпус проектировал под них)
- Усилитель типа pam8403
- Внешняя юсб-звуковая плата (да, встроенный выход звука у raspberry никуда не годится – даже самая простая внешняя намного лучше), такой хватит «за глаза»:
- Блок питания 5В 2A – для малины (нужен хороший БП, с запасом по мощности, выдающий 5,1-5,2В, не стоит экономить на БП – это залог здоровья и долголетия малины, а она дороже БП)
- Блок питания 5В 0.5А для усилителя (от 0,5 до 2 А – смотря какой усилитель)
Да, я добавил отдельный блок питания на усилок, т.к. не осилил сделать нормальный фильтр по питанию, и от 1 БП звук был ужасный. Потому у меня при включении радио – реле замыкает вход на блок питания к усилку и он включается. Можете закидывать помидорами, схемами и пр. Я уже писал – я сделал это еще 2 года назад, оно работает (1 у меня, 1 у родителей и 1 у друга) и переделывать я уже ничего не буду, увы, захотите – дерзайте, все исходники будут тут.
- ИК-приемник (можно купить пульт управления сразу с платой приемника, типа такого:
https://aliexpress.ru/item/4001314231721.html?spm=a2g0o.productlist.0.0.1ba62fbcd1dNAZ&algo_pvid=c68ef584-4e38-4c9c-b3b4-282ff99eb99c&algo_expid=c68ef584-4e38-4c9c-b3b4-282ff99eb99c-9&btsid=0b0a0ae215981062421351972eadfd&ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_
- ИК-пульт (см. выше)
Соединяем вместе:a) датчик температуры (сигнальный на GPIO4, GND – GND, Vcc – 3.3V):
б) ИК-приемник (сигнальный на GPIO24, GND – GND, Vcc – 3.3V), реле (сигнальный на GPIO17, GND-GND, Vcc – 5V):
Блок питания малины подключаем по microUSB, экран подключаем и прикручиваем к малине по официальной инструкции, например такой:
https://hobbytech.com.ua/%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B4%D0%B8%D1%81%D0%BF%D0%BB%D0%B5%D1%8F-7-%D0%BA-raspberry/
Основные функции:
- Часы
- Прослушивание интернет-радиостанций
- Прослушивание mp3 (тут поле непаханое, можно сделать как угодно и откуда угодно, я же сделал просто – прослушиваются mp3 из 1 папки на самой малине, закидываю по сети в эту расшаренную папку и слушаю, вы же можете добавить прослушивание с ЮСБ, по сети да как угодно – но это уже сами, хоть видео – мне это ненужно, я не делал)
- Текущая погода в моем городе на сейчас (картинкой и словами)
- Прогноз погоды на ближайшие 5 дней (картинки + описание)
- Температура в квартире (датчик ds18b20)
- Просмотр календаря
- Таймер с выводом звука после окончания
- Просмотр списка радиостанций/mp3
- Управление громкостью
- Отключение ИК-пульта (у некоторых пультов, типа мой для ТВ-приставки, коды кнопок одинаковы, потому перед включением ТВ-приставки я отключаю кнопкой работу пульта на малине)
- Смена фоновой картинки (да, их там много, если надоедает - меняю).
- Управление всем этим делом может осуществляться аж 3 способами: ИК-пульт, тачем на экране, через web-интерфейс, но добавить/удалить станцию можно только через web
«А теперь слайды…» (с)
Основной экран:
Пояснять тут особо нечего, вроде все интуитивно понятно, единственное, что добавлю, кроме кнопок внизу и вверху, часы – тоже кнопка, вызывает таймер, справа иконка погоды – тоже кнопка, вызывает прогноз погоды на 5 дней, строчка с датой – тоже кнопка, вызывает календарь. В обычном режиме под часами текстом показывает текущую погоду (обновляется раз в 10 минут). Температура слева от часов – температура дома, справа – температура на улице + иконка состояния погоды.
Нажимаем кнопку Play (снизу в центре) или через web или пультом центральной кнопкой или цифрой от 1 до 6, начинает играть радиостанция (последняя, которая играла, или, если только включили – то 1 в списке. Список редактируется через web, там же можно менять порядок следования станций – об этом позже). Под часами текстом пишет номер радиостанции, ее название и название композиции, которая сейчас играет (если эти данные есть от станции):
Громкость – кнопка справа внизу (или через web, или пультом стрелками вверх/вниз), регулируется, как аналоговая ручка-крутилка:
Список радиостанций, вызывается пультом или кнопкой снизу слева:
Тут можно выбрать (через экран или пультом) станцию и нажать проигрывать
Прогноз погоды:
Закрывается окно по нажатию любой кнопки на пульте или в любом месте на экране
Календарь:
Настройки (кнопка слева вверху):
Настройка WiFi (2 кнопка слева вверху). Делается это 1 раз, далее настройки вайфая прописываются в настройки малины и больше этого делать не придется. А если сеть вы уже настроили, то этого и вовсе делать не нужно. Когда вайфай подключен, то иконка отображает уровень сигнала, если не подключен – нажимаем на нее:
Выбираем SSID и вводим пароль (появляется экранная виртуальная клавиатура):
Таймер. При нажатии на часы (или с пульта), появляется экран для ввода значения таймера в минутах:
Выставляем сколько надо и запускаем таймер:
Если таймер надолго, можно это окно скрыть, таймер будет продолжать идти и время будет показываться красным цветом над часами:
По окончании времени таймера, отобразится окно таймера с мигающими нулями и заиграет мелодия окончания таймера (если в это время играла mp3 или радиостанция – они выключатся и будет играть только мелодия окончания таймера – она там специфическая и громкость недефолтная – пропустить ее никак не получится)
Захотели послушать mp3 – справа вверху кнопка radio/mp3 – жмем кнопку (или с пульта) и нажимаем проигрывать, также можно просмотреть список композиций – кнопкой «список».
Ну и, если надо отключить пульт – вверху крайняя правая кнопка. Включается обратно той же кнопкой.
Управление через web. Когда заходим в настройки – то при подключенной сети будет отображаться IP-адрес малины, к примеру, у меня это 192.168.1.190:
Дабы айпиадрес не менялся – лучше прописать статический адрес в роутере, или, если он все время меняется динамически – заходим в настройки и смотрим, а далее, в любом браузнике вбиваем этот адрес в адресную строку, должно загрузиться такое окно:
Да, кто знаком с Ka-radio, узнает этот интерфейс, не стал я ничего выдумывать, просто переделал, упростил, добавил своего. Тут 2 закладки – Проигрыватель и Станции, на 1 закладке можно выбирать станцию/песню из списка, менять громкость, переключаться на следующую/предыдущую, запускать/останавливать проигрыватель. На 2 закладке управляем списком радиостанций:
Кнопка Добавить – добавляем новую радиостанцию, справа в самом конце каждой радиостанции есть «edit» - жмем и редактируем параметры – название, URL, порт.
Чтобы поменять порядок следования станций – левой кнопкой мышки зажимаем название станции, наводим на строчку куда хотим переместить и отпускаем левую кнопку мыши – станции поменяются местами. Кнопку «удалить» не ищите, ее я делать принципиально не стал.
Установка. Есть 2 пути:
1. Качаем образ системы отсюда:
https://drive.google.com/file/d/1jMRKlXGXwZzM-A3XEKLxvsynIZZdnL0S/view?usp=sharing
архив 2.6 Гектар, в разархивированном состоянии будет 16 гектар (разархивировать не обязательно). Берем microSD на 16 гигабайт (лучше Sandisk), качаем etcher https://etcher.download/ Запускаем etcher, выбираем файл образа (можно сразу и архив), выбираем карточку, прошиваем. Если выскочит ошибка, типа не хватает 50-100 мегабайт, значит вам не повезло, хоть на картах и пишут 16 гигабайт, реальный размер все равно отличается в ту или другую сторону, значит пробуйте другую карту или сразу можно взять на 32 гигабайта, чтоб наверняка влезло. Далее вставляем карту в малину, проверяем, что железо такое, как я написал, и подключения периферии правильное – включаем малину, должна запуститься система и затем и сама прога, если железо немного не такое (малина другая, экран не тот) – то, возможно не запустится, тогда надо мониторить, какие ошибки выдает или сразу переходить ко 2 варианту установки.
Да, на всякий случай, логин на малину: pi
пароль: pi
Если все прошло удачно – то после загрузки малины прога запустится, но не будет данных о погоде, о температуре дома и, хз, возможно не будет работать пульт, потому радуемся, что запустилось, но переходим к п.3-п.5. и да, не забываем сразу настроить вай-фай.
2 путь – путь самурая – все ставим ручками. Тут уже разжевывать не буду, увы, слишком дофига объяснять, да и есть свои форумы по этому делу, просто делайте как написано и внимательно. Качаем исходники:
https://drive.google.com/file/d/1R3NXZjv1XF4FFcVonJVzo0tlDdcolOVN/view?usp=sharing
Качаем с официального сайта raspberry образ raspbian с GUI, записываем на карточку.
Далее включаем малину, настраиваем сеть (про это писать не буду, куча спец. форумов по малине) и понеслась:
2.1) sudo nano /boot/config.txt
добавляем/или раскомментируем строки (для офиц. 7 дюймового экрана):
framebuffer_width=800
framebuffer_height=480
hdmi_force_hotplug=1
hdmi_group=2
hdmi_mode=87
hdmi_cvt 800 480 60 6 0 0 0
2.2) sudo apt-get update
2.3) sudo reboot
2.4) Языки - ставим ВСЕ ru и кому надо – UA
sudo dpkg-reconfigure locales и там указываем нужные локали:
en_US.UTF-8 UTF-8
ru_RU ISO
ru_RU.CP1251
ru_RU UTF-8
ru_UA.UTF-8
uk_UA.UTF-8
и ОБЯЗАТЕЛЬНО указываем дефолтный: ru_RU UTF-8 или ru_UA.UTF-8 (!!!)
2.5) sudo raspi-config - настраиваем пароли, SSH и пр. локали, таймзоны
2.6) alsamixer – настраиваем громкость, источник звука
2.7) sudo apt-get install mplayer
2.8) sudo apt-get install mc (кому надо, мне с ним удобней)
2.9) sudo apt-get install python3 python3-pyqt5 qt5-default pyqt5-dev pyqt5-dev-tools
2.10) устанавливаем экранную виртуальную клавиатуру:
2.10.1) git clone https://github.com/xlab/matchbox-keyboard
2.10.2) sudo apt-get install libfakekey-dev libpng-dev libxft-dev autoconf libtool –y
2.10.3) sudo apt-get install libmatchbox1 –y
2.10.4) cd matchbox-keyboard
2.10.5) ./autogen.sh
2.10.6) ./configure
2.10.7) make
2.10.8) sudo make install
2.10.9) copy /usr/local/share/matchbox-keyboard /usr/share/ (sudo mc)
2.11) sudo apt-get install nginx
2.12) sudo mkdir /home/pi/www
2.13) sudo mkdir /home/pi/PiRadio
2.14) sudo nano /etc/nginx/sites-available/default
находим в нем строку root /usr/share/nginx/www и заменяем ее на root /home/pi/www
2.15) sudo reboot
2.16) Далее надо скопировать из архива с исходниками все файлы и папки из \SRC\Radio на малину в /home/pi/PiRadio
Если не знаете как, можно на компе расшарить папку, туда закинуть исходники, потом на малине подключить эту расшаренную папку:
sudo mount -t cifs //192.168.1.1/server /mnt/ -o iocharset=utf8,username=guest,password=guest
где 192.168.1.1 – IP-адрес вашего компа (это мой, для примера)
/server/ - имя расшаренной папки (это – моя, для примера)
и далее просто скопировать все из /mnt/ в /home/pi/PiRadio
2.17) Заходим в папку /home/pi/PiRadio/WebSocketServer ( можно качнуть свежий отсюда, можно не качать и этот, что есть подойдет https://github.com/dpallot/simple-websocket-server) и запускаем:
sudo python3 setup.py install
2.18) кидаем все файлы из /home/pi/PiRadio/www/ в /home/pi/www
sudo cp -f /home/pi/PiRadio/www/* /home/pi/www
2.19) sudo apt-get install sqlite3
2.20) sudo apt-get install lirc
2.21) sudo nano /etc/modules
добавляем строки:
lirc_dev
lirc_rpi gpio_in_pin=24
2.22) sudo nano /etc/lirc/hardware.conf
добавляем/раскомментируем строки:
DRIVER="default"
DEVICE="/dev/lirc0"
MODULES="lirc_rpi"
2.23) sudo reboot
2.24) sudo nano /boot/config.txt
добавляем строку:
dtoverlay=lirc-rpi,gpio_in_pin=24,gpio_in_pull=up
2.25) lircd
2.25.1) проверка:
sudo /etc/init.d/lirc stop
mode2 -d /dev/lirc0
и жмакаем кнопки на пульте - если коды показуются - все ок
2.25.2) названия кнопок:
irrecord --list-namespace
2.25.3) irrecord -d /dev/lirc0 ~/lircd.conf
sudo cp lircd.conf /etc/lirc/lircd.conf
2.25.4) sudo /etc/init.d/lirc start
irw
2.25.5) для питона нужен конфиг:
sudo nano /etc/lirc/lircrc
2.26) sudo apt-get install python3-lirc
2.27) звук
sudo nano /boot/config.txt
комментируем строчку в самом конце:
#dtparam=audio=on
тест:
speaker-test -Dhw:1,0 -c2 –twav
2.28) обновление времени
sudo apt-get install ntpdate
sudo apt-get install ntp
sudo /etc/init.d/ntp stop
sudo ntpd -q –g
sudo /etc/init.d/ntp start
2.29) Отключаем скринсейвер:
sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart
Дописываем туда:
@xset s off
@xset –dpms
@xset s noblank
2.30) Делаем ярлык на рабочем столе:
В "проводнике" (который файловый менеджер PCManFM) в директории /home/pi/Рабочий стол/ (/home/pi/Desktop/) создать файл, например, shortcut.desktop со следующим содержанием:
[Desktop Entry]
Type=Application
Icon=/home/pi/PiRadio/ResIco/radio.png
Name=Radio
Name[ru]=Радио
Exec=sudo python3 main.py
StartupNotify=true
Terminal=true
Path=/home/pi/PiRadio
2.31) автозагрузка
sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart
в конце дописываем строчку:
@sudo python3 /home/pi/PiRadio/main.py
Ну все, справились, осталось 3 момента, они касаются обоих установок.
3. Пульт.
Возможно, вам повезет и вы найдете такой, как у меня:
Возможно, вам повезет дважды, и коды будут совпадать с моим пультом – тогда, ура, вам ничего не надо по пульту менять. Проверить кнопки в программе: цифры от 1 до 6 – запуск радиостанции с номером от 1 до 6, 7 – настройки, 8 – календарь, 9 – прогноз погоды, 0 – таймер, * - переключение radio/mp3 (она же – кнопка отмена в таймере, она же – кнопка перегрузить в настройках), # - прогноз погоды (она же – запустить таймер, она же – кнопка выключить в настройках), ок – старт/стоп проигрывания, вверх – громкость+, вниз – громкость-, влево – предыдущая станция/песня, вправо – следующая станция/песня.
Если же кнопки не совпадают (может у вас пульт такой же, только стрелки вверху, цифры внизу), тогда достаточно просто поменять название кнопок в файле /home/pi/PiRadio/lircrc
Коды там такие:
BTN_GEAR_UP – стрелка вверх
BTN_GEAR_DOWN – стрелка вниз
BTN_LEFT - влево
BTN_RIGHT - вправо
BTN_0 - 0
KEY_OK - ок
BTN_1 - 1
BTN_2 - 2
BTN_3 - 3
BTN_4 - 4
BTN_5 - 5
BTN_6 - 6
BTN_7 - 7
BTN_8 - 8
BTN_9 - 9
BTN_B - #
BTN_A - *
Если же совсем все плохо, тогда придется гуглить raspberry+ИК пульт и внимательно проходить пункт 2.25), названия клавиш должны быть такими, как указаны выше
4. Второй момент, который надо сделать, независимо от типа установки – это вставить свои данные о погоде (иначе погоду показывать не будет)
4.1 Идем на openweathermap.org и регистрируемся на сайте
4.2 Заходим под зареганным аккаунтом и жмем на закладку API keys
4.3 Справа будет написано Create Key – пишем имя ключа и жмем кнопку Generate
4.4 Добавится ключ типа такого: «ee2f890a79c02188edbaa007c2f343e6», запоминаем свой ключ – копируем его куда-нибудь, он нам еще пригодится
4.5 Жмем кнопку maps, слева вверху есть лупа – в поле ввода вводим название своего города, например Dnipro, если город нашелся, будет инфа, типа такой:
Dnipro, UA overcast clouds
22°С temperature from 22 to 22 °С, wind 4 m/s. clouds 98 %, 1014 hpa
Geo coords [48.45, 34.9833]
Нам отсюда нужны координаты: Geo coords [48.45, 34.9833], запоминаем/записываем цифры
4.6 Открываем для редактирования файл /home/pi/PiRadio/main.py
и ищем там такие строки (строка 671):
class ThreadWeatherTimer(QtCore.QThread):
myweather = QtCore.pyqtSignal(str, str, str)
def __init__(self, parent=None):
QtCore.QThread.__init__(self, parent)
def run(self):
global weather_title
while True:
weather_title = ""
try:
x = urllib.request.urlopen('https://api.openweathermap.org/data/2.5/weather?lat=xxxx&lon=yyyy&&units=metric&lang=ru&appid=zzzzzzzzzzzzzzzzzzzzzz')
меняем в этой строке xxxx на свою широту (в моем примере это 48.45), yyyy меняем на свою долготу – в моем примере это 34.9833, а zzzzzzzzzzzzzzzz меняем на свой ключ из п.4.4
должно получится так:
x = urllib.request.urlopen('https://api.openweathermap.org/data/2.5/weather?lat=48.45&lon=34.9833&&units=metric&lang=ru&appid=ee2f890a79c02188edbaa007c2f343e6')
Аналогично делаем такие же замены для такого куска (строка 2779):
def ShowForecast():
global w3
global ForecastWindow
w3 = WidgetForecast()
w3.showFullScreen()
ForecastWindow = 1
try:
x = urllib.request.urlopen('https://api.openweathermap.org/data/2.5/forecast?lat=xxxx&lon=yyyy&&units=metric&lang=ru&appid=zzzzzzzzzzzzzzzzzzzzzzzzz')
должно получиться так:
x = urllib.request.urlopen('https://api.openweathermap.org/data/2.5/forecast?lat=48.45&lon=34.9833&&units=metric&lang=ru&appid= ee2f890a79c02188edbaa007c2f343e6')
Сохраняем файл с этими изменениями. Перегружаемся, теперь должна показываться погода, если нет – перепроверьте все внимательно, и, после создания ключа на сайте, он может действовать не сразу, а в течение 10 минут, чуток подождать и снова проверить.
5. Последнее, что нужно исправить – это прописать ID своего датчика DS18b20
5. 1. Находим свой датчик в системе, ищем папку (я пользуюсь mc) в этой папке:
/sys/bus/w1/devices/
у меня это 28-0516a647a1ff, у вас будет свой, заходим внутрь
/sys/bus/w1/devices/28-0516a647a1ff/ - внутри должно быть w1_slave, ага, значит он,
запоминаем его (у меня 28-0516a647a1ff, у вас - свой)
5.2. Открываем для редактирования файл /home/pi/PiRadio/main.py
и ищем там такие строки (строка 1338):
class ThreadTemperature(QtCore.QThread):
def __init__(self, parent=None):
QtCore.QThread.__init__(self, parent)
def run(self):
while True:
try:
tfile = open("/sys/bus/w1/devices/28-0516a647a1ff/w1_slave")
И меняем 28-0516a647a1ff на свой из п.5.1, Сохраняем файл с изменениями. Все, если после ребута не будет показывать температуру – перепроверьте еще раз п.5.1-5.2
6. MP3. Так как я сделал проигрывание файлов из 1 папки на малине, то я папку расшарил и просто закидываю туда файлы иногда по сети. Я просто установил samb`у и расшарил, как умею (на всякий случай расшарил и папку с html и папку с основной прогой):
настройка samba:
sudo apt-get install samba samba-common-bin
sudo nano /etc/samba/smb.conf
[radio]
Comment = PiRadio shared folder
Path = /home/pi/PiRadio
Browseable = yes
Writeable = yes
only guest = no
create mask = 0777
directory mask = 0777
Public = yes
Guest ok = yes
[music]
Comment = Pi Music shared folder
Path = /home/pi/Music
Browseable = yes
Writeable = yes
only guest = no
create mask = 0777
directory mask = 0777
Public = yes
Guest ok = yes
[www]
Comment = Pi www shared folder
Path = /home/pi/www
Browseable = yes
Writeable = yes
only guest = no
create mask = 0777
directory mask = 0777
Public = yes
Guest ok = yes
sudo chmod -R 777 /home/pi/PiRadio
sudo chmod -R 777 /home/pi/Music
sudo chmod -R 777 /home/pi/www
sudo /etc/init.d/samba restart
Потом просто с компа захожу на 192.168.1.190\Music и удаляю/добавляю mp3
192.168.1.190 – IP-адрес моей малины, у вас будет свой, смотрите в настройках
7. Еще 1 момент. Некоторые станции играют хорошо, некоторые не очень из-за сервера, на котором крутится станция, может помочь настройка mplayer, а именно кеш:
/root/.mplayer/config
тут прописываем:
cache=512
или 256 или вообще лучше убрать этот параметр – сами посмотрите, как у вас лучше будет, если будет долго включаться станция – возможно стоит этот параметр убрать совсем.
8. STL. Тут даже описывать нечего, если вы освоили все вышесказанное и все получилось, то распечатать и собрать корпус будет проще, чем лего. Исходники в солидворксе и STL тут:
https://drive.google.com/file/d/1-MsI60T4jYXEZkiEIrdIYk_Joyijt8VG/view?usp=sharing
пару фоток еще вставлю, основной корпус:
2 перегородки, ставятся в корпус и закрепляются болтами:
На этой сделал возле 4 отверстий выступы – чтоб закрутить и поставить сюда модуль реле
Корпус колонок левой и правой:
В правой, как видно на скриншоте, есть место под плату ИК-приемника, после установки можно капнуть чуть клея зафиксировать плату. Корпуса колонок крепятся к корпусу 4 болтами, по центру – отверстие для проводов. Динамики я крепил маленькими шурупами. Скриншоты задних крышек приводить не буду, крышки также крепятся шурупами. Но, исходники есть – вы можете сделать для себя под болты или еще как-то. Также корпуса колонок сделал отдельно – вдруг захотите что-то побольше поставить. Ножки – их можно не печатать, когда я распечатал корпус, засунул все внутрь, понял, что оно смотрит как-то вниз, решил направить экран немного выше – распечатал ножки и прикрепил к корпусу снизу на двухсторонний скотч.
9. Сборка. Вставляем динамики – прикручиваем, вставляем плату ИК-приемника, соединяем корпуса к центральному, левый и правые планки закручиваем к центральному корпусу, малину с прикрученным экраном вставляем в центральный корпус и прикручиваем к планкам (если не идет – экран перевернуть), соединяем все проводами, далее я выкинул корпус от блока питания для малины и вставил плату БП в свободное место – зафиксировал клеевым пистолетом, 2 блок питания вставил аналогично, зафиксировал клеем, усилитель поместил в 1 из корпусов для динамика – зафиксировал пистолетом. USB sound card подключил к малине, от усилка воткнул jack 3.5 в звуковуху, зафиксировал звуковуху, чтоб не болталась. Датчик температуры подключил и вывел через отверстие в крышке. Проверяем все соединения, если все ок – включаем и проверяем работоспособность малины, если все ок– прикручиваем крышки – к корпусам. Все.
Пару фото, как у меня наляпано внутри:
10. Эксплуатация. Рекомендую проверенные microSD типа Sandisk 10class или типа того. Больше 2 лет аппарат у меня пропахал нормально, работает 24/7, за все время только трижды вручную перегружал, и то, только из-за затыков каких-то станций, не хотело переключаться на следующие станции. Далее – иногда станции в инете меняют свое положение (меняются имена или айпиадреса – тут ничего не поделать, ручками редактировать станции).
Еще больше интересных статей
RC модель Ford Mustang 1969 на 3D принтере
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Как я собирал намоточный станок для намотки катушек звукоснимателей
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Быстро. Дешево. Качественно. 10 основных советов по изготовлению масштабной фигурки при помощи 3D-печати.
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Комментарии и вопросы
Красиво! Прозрачность дает инт...
Офигеть! Чего только не бывает...
Прикольно. Первый раз вижу как...
Спаситепомогите, это уже не эх...
Такое впечатление, что у прюша...
Вот такие «лесенки» появляются...
Отслайсил модель в Cura закину...