Адресная передача аудио по IP

Тема в разделе "Проводная и беспроводная связь", создана пользователем fuzytsfcrew, 7 фев 2018.

  1. fuzytsfcrew

    fuzytsfcrew Нерд

    Всем привет. Работаю в школе (3 корпуса в 2 этажа каждый) и возникла необходимость создания умной системы оповещения. Сейчас стоят обычные 4Ом колонки в каждом корпусе и на каждом этаже. Все это подключено к усилку и выдает по расписанию звонки на урок и с урока (тоже кстати тема актуальная для учебных заведений, которая сейчас бюджетно реализована на ежедневной напоминалке по времени для каждого урока конкретным муз файлом). Есть много готовых решений на базе усилителей систем оповещения по зонам на технологии 100 вольтовых колонок, но в этом случае для каждой колонки (каждой зоны колонок) нужно вести отдельный кабель. Естественно во всей школе протянута витая пара для вай-фай точек доступа и хотелось бы использовать именно ее для создания системы оповещения. Идея - создать передающее устройство звука (голос, музыка без изысков) с коммутационным блоком выбора получателей и принимающие устройства (я так думаю это - БП+ардуинка+ETHERNET+усилок+динамик). То есть чтобы можно было указать в какие зоны передавать сигнал, а в какие нет. Желание использовать именно ETHERNET обосновано именно тем, что в школе более 700 клиентов по вай-фай - слишком большая вероятность обрыва сигнала. Предпологаемое количество зон - до 10. Может есть у кого какие-то идеи реализации подобного проекта?
     
  2. Airbus

    Airbus Оракул

    Если бы Вы поискали то нашли и увидели что эта тема уже обсуждалась.Преобразование в цыфру АЦП уже не по силам Ардуине а потом адресная передача и обратное преобразование ЦАП.Как Вы уже написали есть готовые решения под ключ вот их и используйте.Сделать гудронный колайдер на Ардуино не получиться для этого у нее очень мало ресурсов.Даже проигрывать МП-3 файлы уже невозможно.
     
  3. ИгорьК

    ИгорьК Давно здесь

    Ну почему не возможно? Чуть чуть возможно. Есть копеечные мп3 плейеры с заранее записанными звуками. Их воспроизведение можно вызвать по сети командой. Только так.
     
    fuzytsfcrew и Airbus нравится это.
  4. fuzytsfcrew

    fuzytsfcrew Нерд

    (офтоп)
    Странная идея пришла в голову: если для реализации не использовать витую пару, а оставить как есть сейчас (1 усилок и все колонки к нему последовательно), но вроде ж можно добавить к колонке ардуинку с сетью и реле, которая при выборе этой зоны будет подключать колонку к общему кабелю со звуком? тогда вроде и проблема с цифрой отпадает...
     
    Airbus нравится это.
  5. ИгорьК

    ИгорьК Давно здесь

    И так можно.
     
    Airbus нравится это.
  6. Airbus

    Airbus Оракул

    Выборочно включать любую колонку можно,Там должна быть как Вы сказали Ардуина с реле причем для каждой зоны отдельная плюс еще одна управляющая всем этим.А звук НЧ сигнал у Вас по витой паре идет?
     
    fuzytsfcrew нравится это.
  7. fuzytsfcrew

    fuzytsfcrew Нерд

    звук идет сейчас по отдельному кабелю (0.75 м2). останется только побюджетнее просчитать эти сетевые переключатели и решить вопрос по ограничению мощности с усилка в зависимости от количества активных колонок, т.к. кабель один (наверное для экономии так делали)
     
  8. ИгорьК

    ИгорьК Давно здесь

    Если более менее есть wifi - esp-8266 вполне справятся. Бюджетнее не куда. Причем самые дешевые - ESP-01.
    Сделайте для надежности реле не на замыкание-подключение, а наоборот - на отключение.
    Тогда, в случае чего, кто-то лишний услышит сообщение. Надеюсь там государственные тайны не передаются - ничего не случится.
     
    fuzytsfcrew и Airbus нравится это.
  9. Airbus

    Airbus Оракул

    А это еще лучше переключать нужные колонки по ВиФи Телегой или Блином
     
    fuzytsfcrew нравится это.
  10. ZAZ-965

    ZAZ-965 Гуру

    Отдельный кабель к каждой колонке - самое надежное решение. Но если хотите идею - на каждой точке одноплатный ПК (Raspberry или Orange) с усилителем и блоком питания, в качестве плеера mpd (или другой с поддержкой клиент-серверного управления). Готового клиента для управления под ваши задачи не подскажу, но mpd имеет клиенты на разных языках программирования и под все операционные системы - что-то можно подобрать и доработать.
     
    fuzytsfcrew нравится это.
  11. fuzytsfcrew

    fuzytsfcrew Нерд

    телегой? блином? это сленг?
    С малинкой вариант интересный, тем более что есть одна в наличии, но вот думаю что до 10 штук Апельсинок будет очень дорого. Спасибо за идею :)
    Дело в том, что вайфай сеть одна и реализована с (типа)безшовным роумингом на 42 точки. Как писал выше - клиентов около 700. Следовательно зашумленность радио эфира просто ппц.
    Про реле - спасибо.
     
  12. ИгорьК

    ИгорьК Давно здесь

    +/- 10 - ничего не изменит. Делайте один MQTT брокер на малине (или для проверки воспользуйтесь сводобным-бесплатым) и 10 подписчиков - будет держать, никуда не денется. По крайней мере попробовать стоило бы.
     
  13. Airbus

    Airbus Оракул

    Телега-Telegramm месенджер.Как с помошью него управлять релюхами описано на форуме даже код есть.Блин Blynk удаленное управление теми же реле с помошью приложения на смартфоне просто и красиво и для совсем ленивых.
     
    fuzytsfcrew нравится это.
  14. fuzytsfcrew

    fuzytsfcrew Нерд

    Перечитал немного тем с форума и в голове крутится вопрос - замыкание и размыкание релюшек возле каждой из колонок наверное возможно организовать на самих esp8266 без ардуины?
     
  15. ИгорьК

    ИгорьК Давно здесь

    Ну вам об этом и говорят.
     
  16. fuzytsfcrew

    fuzytsfcrew Нерд

    После подсчета бюджета и времени на внедрение было принято самое простое и банальное решение - увеличить количество колонок с 9 до 18 штук и к каждой вести свой отдельный кабель. Ардуинка с ETHERNET шилдом будет заниматься коммутацией релюшек (4 по входу и 18 на выход) + часы (ну и таймеры соответственно) и + вебсервер. и все в одном корпусе с усилком)
    front.jpg
     
    sdfg нравится это.
  17. sdfg

    sdfg Гик

    Да уж 10 апелсинок это дорого
     
  18. fuzytsfcrew

    fuzytsfcrew Нерд

    Прошло пару месяцев и очень много документации перелопачено. Железяка готова и софт готов.
    0-02-05-c4529bab9215acf9828530abf70ebaed57ee82227f8599e7188f4b3c1c90fd1c_full.jpg 0-02-05-f1c4634960c56d0b20b2220514d06af0b7f6d501ced18d5f60db5439e574639f_full.jpg 0-02-05-d5be3ce00d4bc79eb54e11520eceb68413d93c32cd7f8cf15522fb4e70a73e38_966f496.jpg 0-02-05-9a49a5a9481102cfd7309c0a32cb720f91b24f0813c2d87bd73577958e614508_e90d36bb.jpg
    Осталось казалось бы самое простое, но и тут наткнулся на трудности. В общем - вся система собрана на МЕГЕ с 18 релюшками и 18 кнопками. Все подключено к сети и управляется помимо кнопок через MQTT (москито на опенхабе). В чем беда - нужно влючать или выключать не по одному реле, а группами. Да еще и по времени! Капец! Голова кругом уже от инфы ОН2. Как запускать 1 релюшку по времени вроде получилось заставить работать с экспериментальным Rule Engine (Experimental).
    (хотя он как-то странно работает)
    Запутался совсем с sitemap и items. Никак не получается управится с группами.
    Код items сейчас примерно такого вида:
    Код (C++):
    Switch RELAY0 "Первый А" <speaker>  [ "Switchable" ]
      { mqtt=">[broker:/MEGA/Relay/1:command:ON:1],
      >[broker:/MEGA/Relay/1:command:OFF:0],
      <[broker:/MEGA/Relay/1:state:default]"
    }
    ...
    Код sitemap сейчас примерно такого вида:
    Код (C++):
    sitemap home label="Наша школа"
    {
    Frame label="Младшая школа"
    {
      Switch item=RELAY0
      Switch item=RELAY1
      Switch item=RELAY2
      Switch item=RELAY3
    ...
    }
    Frame label="Старшая школа"
    {
      Switch item=RELAY10
      Switch item=RELAY11
      Switch item=RELAY12
      Switch item=RELAY13
    ...
    }
    Помогите разобраться что и куда писать? В какой из файлов вставлять эти группы? Нужно ли создавать Switch item=RELAY_SMALL в item файле? По логике понимаю что в sitemap нужно добавить
    Switch item=RELAY_SMALL и Switch item=RELAY_HIGH (помимо отдельных переключателей для каждого динамика), но как заставить их включаться вместе - так и не догнал =(
    Может можно как-то добавить Switch item=RELAY_SMALL и Switch item=RELAY_HIGH в файл items и отправлять MQTT для всех релюшек группы?
     
    Последнее редактирование: 23 апр 2018
  19. SergeiL

    SergeiL Гуру

    В примерах (Demo sitemap) к OH есть вкладка Group Demo, с одновременным выключением всех выключателей светильников из примера.
    Сделайте по аналогии несколько групповых выключателей, и все будет работать.
     
  20. fuzytsfcrew

    fuzytsfcrew Нерд

    То есть все группы указываются в файле sitemap? В item не нужно добавлять виртуальных переключателей или групп?