Кухонный медиаплеер на основе 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, за все время только трижды вручную перегружал, и то, только из-за затыков каких-то станций, не хотело переключаться на следующие станции. Далее – иногда станции в инете меняют свое положение (меняются имена или айпиадреса – тут ничего не поделать, ручками редактировать станции).
Еще больше интересных статей
Держатель Батарей DeWALT
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Наводил я тут в гараже порядок и решил распечатать держал...
Как я собирал намоточный станок для намотки катушек звукоснимателей
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Рассказ на тему творческого применения моего станка и что из этого вышло...
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Давненько я не писал на Портале, ибо чукча в большинстве своем амплуа...
Комментарии и вопросы
А ведь можно еще PLA с опилкам...
Угу, наверное именно по причин...
Нет, не для того "чтоб напечат...
Собственно попросили распечата...
Я начинающий, странное в куре....
При печати стали появляться шв...
Здравствуйте, друзья. Сталкива...