Мультирум на ардуино

Аудио мультирум своими руками. Многокомнатная музыкальная система на основе бесплатного Logitech Media Server

По специфике работы мне часто приходится давать советы профессиональным инсталляторам, каким образом решить ту или иную задачу при создании системы домашней автоматизации.


Проект Tobias на основе HiFiBerry

Один из вопросов, удивляющих своим постоянством — как организировать музыкальную систему на объекте таким образом, чтобы было легко включить её в единый интерфейс управления домом, наравне с освещением, климатом и другими системами. Вспоминая, что сам в первый раз делал это с большими сложностями и ошибками, я решил описать этот процесс подробнее для всех интересующихся.

Первый совет здесь, обычно — используйте Sonos (и готовые модули). Если у вас KNX — ставьте Amati от Evika (модуль) или Trivium (и модуль). И если инсталлятора/заказчика это устраивает — с точки зрения бюджета и взаимодействия с остальной системой — вопросов почти не остается. Нередко случается, что эти решения по какой-либо причине не подходят, есть усилители, но нужно подключить к ним правильный источник. Ну и много систем умного дома, у которых хорошие решения для освещения, климата, безопасности, но музыкальная система отсутствует/оставляет желать лучшего, требует дополнения хорошей сетевой библиотекой (Z-Wave, HDL, LonWorks и многие другие).

Здесь первой мыслью приходит в голову попробовать использовать компьютеры с iTunes или другим ПО для создания мультимедиа библиотеки (и соответствующие модули). В основном это тяжелые решения, каждое из которых имеет недостатки или заточено под другие задачи. Например iTunes довольно закрыт, постоянно меняется, подходит только для любителей Apple и не поддерживает .flac.

На моей практике, пока лучше других зарекомендовало себя решение на основе бесплатного программного пакета Logitech Media Server.

До 2012 года Logitech производила устройства Squeezebox, работавшие с этим медиа-сервером, но уже три года как прекратила это делать, а платформа превратилась в бесплатное ПО, распространяемое на условиях GNU General Public License. То есть железо нашего аудио-источника мы можем выбирать сами, а оно каждый день все лучше и дешевле.

  • бесплатное и чисто программное решение
  • поддержка интернет радиостанций
  • поддержка обложек
  • поддержка библиотеки iTunes
  • поддержка .flac и HiRes 24bit/96kHz (да-да, работает)
  • онлайн радио
  • можно дополнительно установить программный приемник AirPlay и DLNA

Главный недостаток этого решения тот же, что и преимущество. Решение бесплатное, поэтому, если у вас что-то не работает — никто вам ничего не должен. Решение программное, поэтому многое зависит от того железа, на котором вы его реализуете, правильных настроек и сети. Но я знаю немало профессионалов, которые, один раз разобравшись, как это работает, в дальнейшем предпочитали продолжать использовать именно его.

В интерфейсе управления домом раздел аудиобиблиотеки будет выглядеть примерно так, если вы будете использовать стандартный драйвер:

Или так, если вы будете использовать дополненный драйвер.

Что нужно сделать, чтобы это работало?

Идем на сайт и скачиваем Logitech Media Server. Есть версии для OSX, Windows и Linux, включая популярные NAS. Чаще всего устанавливают именно на NAS.

Устанавливаем, указываем серверу папку с музыкой и другие данные — импортировать ли iTunes, учетная запись на www.mysqueezebox.com и т.д.

На этом этапе можно все попробовать, используя свой компьютер в качестве плеера, запустив ярлык SqueezePlay.

Дальше — самое важное, нужно выбрать плееры. Здесь есть варианты, предполагающие различную степень кастомизации:

Вариант 1 (проще):

Очень общая схема того, что у нас получится будет выглядеть так:

Приставка на Android, лично мне нравятся варианты с оптическим выходом. Как вариант — CX-S806, у нас продается под разными марками, включая Rubox. Можно использовать любой аналог, предварительно самостоятельно его протестировав — далеко не все устройства играют хорошо.

Ставим на нее приложение Squeeze Player (174 руб.) и опционально Air Receiver (94 руб.), который к LMS отношения не имеет, просто дает нам дополнительные потоковые функции. Задаем простые настройки при первом запуске.

Чтобы все это запускалось автоматически при старте — ставим AutoStart .

Получаем источник, который можно подключить к внешнему усилителю через низкочастотный или оптический выход, воспроизводящий файлы из музыкальной библиотеки, AirPlay или DLNA. Работать он будет через WiFi или Ethernet, при перезапуске сохранять свою функциональность. Но не забывайте, что если адрес вашего сервера или настройки сети поменяются, придется зайти в приложение Squeeze Player и указать новый адрес.

Вариант 2 (он обычно и дешевле, и сложнее — здесь можно получить более высокое качество звука, а также встроенный усилитель):

Некоторые из лучших инсталляторов, например мой хороший друг Bogdan Dragoi из Румынии, предпочитают именно это решение (здесь он демонстрирует его в интерфейсе Moonlite).

Берем Raspberry Pi. Встроенный звук здесь ни к черту, поэтому ставим дополнительный DAC. Там же можно купить увеличенный корпус, чтобы обе железки поместились в один. Если нужен усилитель — они его тоже производят (Amp). Не забудьте, что стоимость увеличится за счет доставки — в России из этого вы найдете только саму Raspberry Pi.

Ставим бесплатный PiCorePlayer, настриваем через веб-интерфейс и получаем готовый аудио источник со всеми плюшками Squeezebox.

Если не нужно дополнительных функций, то с любого устройства можно будет подключиться к LMS по порту 9000 (например локально 127.0.0.1:9000) и управлять с веб-страницы.

Если же необходимо получить управление аудио-системой из единого интерфейса для умного дома — используем готовый модуль iRidium mobile:

Скачать его можно здесь , а открыв в редакторе — перенести в нужный проект. Примерно так:

Источник

(Умный Дом своими руками)

Мультирум

Мультирум

Сообщение Amirida » 05 фев 2014, 13:15

Re: Мультирум

Сообщение Andrey_B » 05 фев 2014, 23:14

Re: Мультирум

Сообщение Amirida » 06 фев 2014, 00:48

Re: Мультирум

Сообщение shemnik69 » 06 фев 2014, 08:03

Re: Мультирум

Сообщение ExReader » 06 фев 2014, 08:42

Re: Мультирум

Сообщение vtec » 06 фев 2014, 13:34

Re: Мультирум

Сообщение lysanev » 16 фев 2014, 21:03

Re: Мультирум

Сообщение Yura Sadon » 14 янв 2015, 12:26

Здравствуйте!
Если я не в ту тему вклиниваюсь, отправьте куда следует)))

Посоветуйте метод регулировки звуком в мультирум.
Планирую взаимозависимых 5 зон. то есть фонограма будет включаться одна на все зоны.
В идее использование аудио-сплитера и активных колонок на каждой зоне ватт по 5-10.
Включить/отключить зону используя 1-wire сеть не сложно, а как дистанционно регулировать громкость — это вопрос.
Посоветуйте, что можно использовать в данном случае?

Принцип построения системы такой:
1. Точки создаются из маломощных активных акустических систем.
2. Точек создать 5 штук:
— кухня\гостиная\прихожая
— ванная комната
— спальня
— кабинет
— детская
3. Для каждой точки подвести:
— питание 220 вольт из неуправляемой розеточной сети питания
— Ethernet
— 1-wire
— источник линейного аудио-сигнала от аудио-сплитера
4. Управление:
— включение выключение точек возможно:
— с использованием девайсов и компьютеров подключенных к Ethernet посредством MegaD-328-S Kit подключенным к нему по 1-wire 2-х канальным завершенным 1-wire модулем 1W-2CH-MOD13
— нажатием кнопки на стене посредством MegaD-328-S Kit подключенным к нему по 1-wire 2-х канальным завершенным 1-wire модулем 1W-2CH-MOD13
— регулирование громкости:
— предустановить комфортный уровень громкости при инсталляции и отладке точек
— дополнить каждую точку регулятором громкости Ethernet или 1-wire (эта доработка возможна в процессе эксплуатации)
5. Иточником линейного аудио сигнала является центральная акустическая система (ресивер)
6. Сигнал от ресивера подаётся на аудио-сплитер установленный в щитовой в кабинете.
7. Питание 220 вольт на ресивер подается из неуправляемой розеточной сети и управляется по 1-wire 2-х канальным завершенным 1-wire модулем 1W-2CH-MOD13
8. Из аудио-сплитера сигнал распределяется на каждую точку по схеме звезда.

Re: Мультирум

Сообщение cheshir » 14 янв 2015, 13:32

Re: Мультирум

Сообщение Yura Sadon » 14 янв 2015, 14:25

Re: Мультирум

Сообщение Yura Sadon » 14 янв 2015, 15:24

Re: Мультирум

Сообщение shemnik69 » 15 янв 2015, 00:08

У меня была похожая идея но после пробных опытов оставил так.
Сервер это плата Атом на которой есть несколько аудио выходов (порт-разъем) . программа (последний Realtek) позволяет перенастраивать каждый порт как на выход так и на вход (кроме микрофонного) в итоге есть 5 выходных каналов. Сигнал с каждого идет на автомобильный многоканальный усилитель и от него на динамики. Динамики (автоколонки) встроены в короб кабель канала и еще несколько мест (голову поломал . куда (качество не супер, но . )
А поскольку сервер, еще и источник DLNA для телевизоров, то он же и может раздавать звук.
Регулировка каналов условно раздельная т.е скажем при фильме работают 2 в комнате с телевизором остальные приглушены (настройка в программе)
А вот звуковые (голос Алиса) сигналы от сервера (MajorDoMo) идут замечательно. Регулировка громкости программная через скрипты управления встроенным проигрывателем и полностью управляемая от системы.

Да.. На планшетах звук через SounWireSerwer и клиенты на самих устройствах. Но если скажем на планшете стоит VLC то вообще от DLNA поток можно перехватывать. Сам не использую это поскольку выше описанный вариант полностью устраивает.

Re: Мультирум

Сообщение 507 » 15 янв 2015, 02:06

Источник

Беспроводное оборудование nooLite и Умный дом (часть 1). Arduino

Здравствуйте уважаемые читатели Geektimes! На этот раз я хочу представить вашему вниманию цикл статей об интеграции беспроводного оборудования nooLite в системы домашней автоматизации. Этот цикл будет похож на уже вышедшую серию статей (раз, два, три) об интеграции модулей Laurent в системы Умного дома, только рассказываться в нём будет о системе nooLite и после прочтения этого цикла у вас не останется вопросов по управлению приборами nooLite из вашего Умного дома.

О цикле статей

Цикл разбит на три части. В первой части вы узнаете о принципах работы беспроводного оборудования nooLite и организации управления им из ваших проектов на Arduino. Во второй части будет подробно рассказано об интеграции управляющего модуля MT1132 в Arduino Mega Server и об открывающихся в связи с этим возможностях по управлению Умным домом. А третья статья цикла будет повещена очень интересной теме — концепции создания приборов «100 в 1» на основе Arduino Mega Server. Будет подробно разобран пример создания беспроводной паяльной станции на AMS буквально из ничего — на основе всего одного беспроводного димера nooLite. Будет ещё и четвёртая часть, из которой вы узнаете, как создать магический кристалл.

Кстати, паяльная станция, о которой пойдёт речь в третьей статье, уже присутствует в последней сборке Arduino Mega Server под номером 0.14. И самые любопытные читатели могут не дожидаться третьей статьи, а сразу скачать дистрибутив и самостоятельно разобраться с тем, как всё это работает.

И самое замечательное, что таких приборов в AMS может находиться сотни, причём одновременно. Например, паяльная станция, метеостанция, охранный блок, контроллер оранжереи и т. д. И работать всё это может одновременно или «запускаться» загрузкой веб-странички или даже целого сайта, посвящённого конкретному устройству.

Но не будем забегать вперёд, само интересное оставим напоследок, а пока займёмся необходимой теоретической подготовкой. Обещаю, что всё будет изложено самым простым и доходчивым образом. Итак, начнём.

Оборудование nooLite

Оборудование nooLite это уже известная и популярная система и в Интернет довольно много информации о ней. Я постараюсь здесь кратко изложить основные моменты.

Концепция очень проста — есть силовые блоки для управления светом и различными нагрузками и пульты управления, которые посылают команды этим силовым блокам. И всё это работает, естественно, без участия проводных соединений. Собственно всё. Прелесть системы в том, что все компоненты продуманы, качественно изготовлены и делают ровно то, что заявлено — надёжно управляют подключённым оборудованием.

Есть ещё беспроводные датчики, управление приборами со смартфона и многое другое, но в одной статье всё охватить невозможно, здесь мы сосредоточимся только на интеграции nooLite с популярной платформой DIY — Arduino.

Из всего обширного спектра оборудования nooLite нас будет интересовать управляющий модуль MT1132 потому, что он рассчитан на подключение к Arduino и одноплатным компьютерам типа Raspberry Pi. И работает он по простому последовательному интерфейсу. Забегая немного вперёд, скажу, что модуль мне понравился своей простотой, предсказуемостью и надёжной работой. И я смог по достоинству оценить эти качества после месяца бесплодной борьбы с сетевым модулем на чипе W5500, который так и не пожелал нормально работать.

И особенно мне понравилось то, что (не считая питания) модуль подключается к Arduino всего одним (!) проводом (RX). Второй (TX) можно вообще не подключать. Модуль «односторонний», т. е. рассчитан только на посылку управляющих сигналов. В планах компании «Ноотехника» разработка и выпуск «двухсторонней» версии модуля.

Второй нужный нам элемент из оборудования nooLite — это силовой управляющий блок, например, SU111-300. Подключение блока элементарно и видно на иллюстрации. Два провода подключаются к сети 220 вольт, а два других — к нагрузке. Единственное, на что хотелось бы обратить внимание, это то, что модули поставляются с перемычкой, которая блокирует режим димирования и, если вы хотите регулировать мощность, то нужно разрезать эту перемычку (и не забыть заизолировать образовавшиеся оголённые провода).

На пультах я особо останавливаться не буду потому, что это «ручное» управление, а нас, в связи с автоматизацией, больше интересует автоматическое. Скажу только, что эксперименты проводились с пультом PU311-2, выполненным в виде настенного выключателя и он показал себя самым наилучшим образом, то есть чётко и без сбоев включал и выключал свет. Чем, собственно, хорошее оборудование и отличается от плохого — хорошее просто не замечаешь.

Концепция работы. «Привязка» и «Отвязка»

Прежде, чем вы сможете включать и выключать электроприборы при помощи системы nooLite, вам нужно «связать» управляющие модули с соответствующими силовыми блоками. Это делается при помощи процедуры т. н. «привязки» и «отвязки», подробно описанной в документации nooLite. Вкратце, всё сводится к нажатию пары кнопок на связываемых блоках и не представляет каких-либо трудностей.

В случае, когда вместо пульта используется управляющий модуль MT1132, процедура происходит несколько иным способом. А именно: поскольку у модуля нет кнопок, то нужно программным способом сформировать и послать управляющую команду на нужном канале, а после этого уже нажать кнопку на силовом блоке, подтверждая «привязку» или «отвязку».

Каналы — это «линии управления» и в модуле MT1132 их 32, о чём свидетельствуют две последние цифры в названии. Это значит, что при помощи этого модуля вы можете управлять 32 отдельными группами оборудования, что более чем достаточно для квартиры или небольшого дома. Если у вас большой дом, то модули могут работать в связке и масштабироваться на любое количество каналов.

Описание протокола

На сайте компании «Ноотехника» есть замечательный документ, который исчерпывающе и во всех подробностях описывает подключение модуля и протокол управления им. Я не буду загромождать статью излишними техническими подробностями, любой желающий может ознакомиться с этим документом, опишу лишь основные моменты.

Для управления модулем нам нужно сформировать управляющую команду, состоящую из 12 байт. Принципы формирования этой команды описаны в вышеприведённом документе. И как вы увидите ниже, все эти правила уже запрограммированы в управляющих функциях и нам нужно только использовать их для отдачи команд в модуль.

Тестовые команды

nooLite имеет довольно развитую систему команд, из которой мы выберем самые простые и наиболее употребительные и на их примере проиллюстрируем работу системы.

  • Привязка
  • Отвязка
  • Включение
  • Выключение
  • Установка мощности (димирование)

Поняв, как работают основные команды, вы сможете без труда использовать и любые другие.

Подключение модуля MT1132

Как я уже сказал, подключение модуля MT1132 производится буквально одним проводом (кроме питания). Питаться модуль может как от напряжения 5 вольт, так и от напряжения 3.3 вольт. Поэтому не возникло никаких проблем с подключением ни к 5-вольтовой Arduino Mega, ни к 3.3-вольтовой Arduino Due. Единственный момент заключается в том, что при пониженном питании снижается дальность уверенной работы системы. И это нужно учитывать, если вы хотите питать модуль от напряжения 3.3 вольт.

На модуле есть выводы RX и TX для приёма и посылки сигналов по последовательному интерфейсу. Критичным для работы модуля является подключение RX, для приёма управляющих команд от контроллера. Соответственно, контакт RX на стороне модуля соединяется с контактом TX (18) на стороне Arduino. Эта распиновка справедлива как для Arduino Mega, так и для Arduino Due.

Программная часть

Теперь давайте разберёмся с тем, как управлять всем этим хозяйством из скетчей на Ардуино. Сначала инициализируем Serial1, к которому мы подключили модуль МТ1132 (делается это на стандартной частоте 9600):

Теперь код главной управляющей функции:

В принципе, нам даже не нужно знать как она работает, мы её можем использовать в режиме «чёрного ящика» или своеобразного API, у которого наружу «торчит» определённый интерфейс. Нам достаточно только знать, как пользоваться этим интерфейсом.

Как видите, там всего четыре параметра — канал, команда, данные и формат. По какому принципу формировать запросы к этому API, можно прочитать в вышеупомянутом документе, мы же ещё больше упростим себе задачу и обернём этот интерфейс в простые команды управления приборами nooLite.

Относительно сложной командой является только последняя, там, кроме канала, задаётся ещё и уровень мощности. В скетче есть ещё команды, на которых мы сейчас не будем останавливаться, но формируются они так же просто.

Собственно… всё! Проще некуда. В коде управляющие команды выглядят так:

Теперь давайте на практике потренируемся в управлении силовым модулем nooLite. Итак, привязываем силовой блок на нулевом канале:

На силовом блоке начинает мигать светодиод. Нажимаем кнопку на блоке — светодиод перестаёт мигать — силовой блок привязан. Вместо нулевого канала можно использовать любой другой. И вы можете легко формировать номер канала в коде скетча в соответствии с вашими потребностями.

Включаем лампу (если мы привязали лампу на нулевом канале, то и команды для неё нужно посылать на этом канале):

Устанавливаем мощность (яркость свечения лампы):

Тут нужно немного сказать о правилах формирования команды, устанавливающей уровень мощности. Значение мощности изменяется не в пределах от 0 до 255, как можно было бы подумать, а в пределах от 35 до 155. Если значение будет больше 155, то мощность будет максимальной, если будет равно 0, то это будет равнозначно команде выключения.

Вот (на всякий случай) формула, которая транслирует «стандартные» значения от 0 до 100 в формат, понимаемый модулем nooLite:

Используя эту формулу, можно устанавливать яркость свечения лампы в привычных процентах мощности. И, естественно, если нужно регулировать мощность нелинейно, то можно формировать переменную v по любому закону или даже просто подбирая фиксированные значения. Об этом речь пойдёт в третьей части цикла, когда мы будем юстировать температуру нагрева паяльной станции.

На силовом блоке начинает мигать светодиод. Подтверждаем отвязку, нажимая кнопку на силовом блоке. Всё, теперь силовой блок перестал реагировать на наши команды и мы можем «привязать» его снова на любом из 32 каналов модуля nooLite MT1132.

Вот полный текст скетча.

byte const PIN_TX = 18; // TX PIN (to RX noolite)
byte const PIN_RX = 19; // RX PIN (to TX noolite)

void nooSendCommand(byte channel, byte command, byte data, byte format) <
byte buf[12];

Источник

Adblock
detector