- А2ДП
- Припрема Распберри Пи за подешавање без главе
- Предуслови за инсталирање у Распберри Пи
- Упаривање Блуетоотх уређаја са Распберри Пи
- Аутоматизујте процес раздвајања Блуетоотх-а помоћу Питхон скрипти
- Покрените Блуетоотх скрипту за упаривање дугметом
- Кружни дијаграм
- Подесите Црон Јоб да бисте покренули програм Питхон за Блуетоотх звучнике при покретању
Распберри Пи је рачунар величине длана који има уграђени Блуетоотх, Ви-Фи, Етхернет порт, порт за камеру итд., Што га чини најприкладнијим микроконтролером за уграђене апликације засноване на ИоТ-у. Такође се користи за израду многих врста сервера као што су Принт сервер, Медиа Сервер, Веб Сервер итд. Данас ћемо научити како Распберри Пи може претворити нормални звучник са прикључком од 3,5 мм у бежични Блуетоотх звучник.
У овом посту ћемо изградити Блуетоотх звучник заснован на Распберри Пи- у спајањем снаге А2ДП, Линука и аудио кодека за бежично стримовање пакета података из аудио извора у аудио судопер. Да бисмо то урадили, хакираћемо мало Линук система и написаћемо комад кода на басх и питхон и бићемо у послу.
А2ДП
А2ДП је скраћеница од Адванцед Аудио Дистрибутион Профиле. Ово је протокол који је присутан на готово свим Блуетоотх уређајима. Отвара пут за пренос података звука са једног уређаја на други под условом да су оба међусобно повезана Блуетоотх везом. А2дп користи алгоритам компресије без губитака за компресовање аудио пакета пре преноса како би смањио кашњење, али губици услед ове компресије једва су приметни за људске уши.
Припрема Распберри Пи за подешавање без главе
За претварање Распберри Пи у бежични звучник, пре свега инсталирајте ОС (Распбиан Стретцх) на Распберри ПИ СД картицу, ако сте нови у Распберри Пи, следите овај чланак да бисте започели са Распберри Пи.
Већина нас поседује Распберри Пи и лаптоп, али им недостаје монитор. Али да бисмо ССХ претворили у Распберри Пи, желимо да исти буде повезан у исту мрежу у коју је повезан наш рачунар. Треба нам монитор повезан на Пи преко којег можемо да изаберемо Ви-Фи и повежемо се?
Заправо немамо. Распберри Пи се може повезати на Ви-Фи додавањем уноса у датотеку која се зове впа_супплицант.цонф
Да бисте то урадили, повежите СД картицу са рачунаром и отворите датотеку роотфс / етц / впа_супплицант / впа_супплицант.цонф и у њу додајте следећи унос. Не заборавите да отворите датотеку са администраторским (роот) привилегијама.
нетворк = {ссид = "вифи_ссид" пск = "вифи_пасскеи" кеи_мгмт = ВПА-ПСК}
Улаз би требао изгледати слично овоме.
Горе наведени унос требало би да нас повеже са Ви-Фи мрежом, али то није довољно за стварање и одржавање ССХ везе између Распберри Пи и рачунара. Подразумевано је ССХ онемогућен у Распберри Пи, па да бисте га омогућили, у директоријуму за покретање направите празну датотеку с именом ссх.
Сада је Распберри Пи технички омогућен даљински приступ. Прикључите малину пи на извор напајања. Сада би се пи аутоматски повезао са Ви-Фи мрежом, али је потребна његова ИП адреса да би се на њу ССХ. Постоји више начина да се исто сазна. Користим команду нмап
нмап -сн / 24
Ова наредба би нам дала ИП адресе свих уређаја повезаних у нашу мрежу. На пример,
Један од њих је малине пи. Сада знамо ИП адресу пи-а, повежите се са њом
ссх пи @ пи_ип_аддресс
Постоје и други начини да започнете са Распберри Пи без главе, проверите везу да бисте научили исто.
Предуслови за инсталирање у Распберри Пи
БлуеЗ
БлуеЗ је подразумевана апликација која долази са Распбиан дистрибуцијом. Користи се за приступ блуетоотх контролама система. Такође се може инсталирати у случају да га немате на располагању у себи из разлога који само ви знате.
Испод наредбе добија се апликација Блуетоотх интерфејс инсталирана у нашем пи.
апт-гет инсталирај блуез
ПулсеАудио
Пулсе Аудио је апликација која бајтове рачунарских података претвара у људску перцепцију. Такође се назива и музички плејер. А2ДП протокол је доступан у додацима за апликације ПулсеАудио. Дакле, инсталирајмо све апликације повезане са пулсом и звуком помоћу наредбе испод:
апт-гет инсталл пулсеаудио- *.
Упаривање Блуетоотх уређаја са Распберри Пи
Отворите апликацију БлуеЗ помоћу команде
блуетоотхцтл
Блуетоотх-Агент је брокер да су разговори између два Блуетоотх уређаја и иницијализујемо везу између њих. Постоје различите врсте блуетоотх агената. Она коју ћемо користити је НоИнпутНоОутпут агент јер нам омогућава повезивање без интервенције корисника. Дакле, хајде да иницијализујемо агент извођењем следећих команди.
агент НоИнпутНоОутпут
Као одговор требали бисте добити поруку „ Агент је регистрован “. Сад кад смо регистровали нашег агента, учинимо то подразумеваним .
дефаулт-агент
За који би одговор требао бити „Подразумевани захтев агента успешан“
Сада учинимо да наш уређај буде откривен
открити на
За шта би одговор требао бити „Промјена видљива на успјело“
Покушајте сада да повежете свој мобилни телефон или рачунар са Распберри Пи
Апликација ће тражити да одобримо услуге и не морамо их чинити. Уместо тога, само ћемо веровати уређају и повезати га. Поуздање у уређај је веома важно, јер када поуздани уређај покушава да се повеже са пи-ом, то омогућава исто без икакве интервенције корисника.
поверење повезати
Након свих ових радњи, ваш терминал би требао изгледати слично овом.
То, бре! Телефон смо повезали са Распберри Пи путем Блуетоотх-а. Али да ли је то довољно? Очигледно је да не, желимо да се наши пакети звучних података преносе са телефона на пи, а затим са пи-а на звучник који је повезан са аудио-прикључком пи-а.
Проверите да ли је наш телефон наведен у извору звука апликације ПулсеАудио покретањем наредбе у наставку:
кратка пактл листа
На њему ће се наћи сви учитани звучни модули, аудио судопери и аудио извори
Погледајте вредности према серијском броју 30. Блуез_соурце значи извор звука путем апликације БлуеЗ која је Блуетоотх. Унакрсно проверите Мац адресу уређаја која се налази између блуез_соурце и а2дп_соурце и адресе коју имате у апликацији БлуеЗ. У мом случају то је блуез_соурце.3Ц_28_6Д_ФД_65_3Д.а2дп_соурце који је исти као онај из БлуеЗ апликације. Сада, ако репродукујете песму са уређаја који је повезан на пи, требало би да је преусмерите на звучник који је повезан на аудио порт малине пи.
Еурека! Успешно смо изградили Блуетоотх звучник. Преусмерили смо звук, али то није све. Све горе наведене кораке не можемо ручно да радимо, па дозволимо да их аутоматизујемо користећи очекивану скрипту и интерфејс пи са прекидачем који када се притисне упарује Пи са уређајима.
Хладан? Пређимо сада на посао.
Аутоматизујте процес раздвајања Блуетоотх-а помоћу Питхон скрипти
Скрипте за очекивање су попут басх скрипти, али аутоматизоване. Тражи дату реч у терминалу и када иста стигне, шаље наредбу према скрипти. Допустите нам да аутоматизујемо поступак упаривања. Направите датотеку названу паир_блуетоотх_девице.екпецт
подеси временско ограничење 30 спавн блуетоотхцтл очекивати "#" слање "агент искључен \ р" очекивати "? регистрован" послати "\ р" очекивати "#" послати "агент НоИнпутНоОутпут \ р" очекивати "Агент регистрован" послати "\ р" очекивати "# "пошаљи" подразумевани агент \ р "очекуј" Подразумевани захтев за агента је успешан "пошаљи" \ р "очекуј" # "пошаљи" видљиво на \ р "очекуј" Овласти "пошаљи" да \ р "пошаљи" изађи \ р "
Копирајте код и залепите га у датотеку. То само ради аутоматски, радње које смо предузели приликом упаривања мобилног телефона са Распберри Пи. Само омогућава уређају да се повеже, али му не верује. Да бисмо веровали уређају, потребна нам је његова Мац адреса. Тако ћемо исписати излаз ове очекиване скрипте у датотеку дневника из које се може преузети мац адреса.
греп -Пом 1 "(? <= Уређај). * (? = Повезан)"
Горња команда исписује вредност између низа „Уређај“ и „Повезани“. У нашем случају (Уређај 3Ц: 28: 6Д: ФД: 65: 3Д Цоннецтед: не) то је мац адреса уређаја.
Хајде да писати очекивати скрипта да ће се у мац адресе као први аргумент и поверења и повезати на тај уређај.
Направите датотеку која се зове труст_анд_цоннецт.екпецт
подеси временско ограничење 30 спавн блуетоотхцтл очекивати "#" слање "агента искључено \ р" очекивати "? регистровано" слање "\ р" очекивати "#" слати "агента на \ р" очекивати "Агент регистрован" послати "\ р" очекивати "# " пошаљи" подразумеваног агента \ р " очекуј" Подразумевани захтев за агента је успешан " пошаљи" \ р " очекуј" # " пошаљи" поверење \ р " очекуј" Промена " пошаљи" повежи се \ р " очекује" Веза успешна " пошаљи" изађи \ р "
Копирајте горњи код у ту датотеку. Део за поверење и повезивање врши аутоматски.
Ставимо сада све ово у датотеку скрипте Питхон тако да цео процес упаривања може бити аутоматизован.
Нека нам створи фајл паир_анд_труст_блуетоотх_девице.сх
цд $ (дирнаме $ 0) ецхо "Упаривање…" очекујте паир_блуетоотх_девице.екпецт> ава_сцрипт.лог цхмод 777 ава_сцрипт.лог слееп 2 ецхо "Поверење и повезивање.." девице_мац_аддресс = $ (мачка очекујте_сцрипт.лог - греп -Пом 1 " (? <= Уређај). * (? = Повезано) ") ецхо мац адреса је $ девице_мац_аддресс иф]; онда очекујте труст_анд_цоннецт.екпецт $ девице_мац_аддресс елсе ецхо "Но девице цоннецтед" фи рм очекивати_сцрипт.лог
Дакле басх скрипта,
- Позива очекивану скрипту (чији ће излаз бити исписан у датотеку названу очекивани_скрипт.лог) која,
- Иницира агент НоИнпутНоОутпут
- Чини га подразумеваним агентом
- Укључује могућност откривања пи
- Чека да се неко повеже и изађе када се неко повеже или истекне
- Спавајте 2 секунде
- Ухватите датотеку авак_сцрипт.лог за мац адресу уређаја
- Верује и повезује уређај ако је адреса мац нулл
- Уклања датотеку остатака ава_сцрипт.лог
Покрените Блуетоотх скрипту за упаривање дугметом
Сада имамо скрипту за аутоматизацију процеса упаривања. Али ова скрипта мора да се покреће кад год корисник пожели. Дакле, допустимо да ову скрипту прикачите физичким дугметом тако да се ова скрипта позива сваки пут када се притисне дугме. Прекид је један од виталних делова уграђеног програмирања. За почетак, прекида када се осете стављају уобичајену рутину програма и покрећу унапред дефинисану ИСР која је позната као Интеррупт Сервице Рутине.
Дакле, спојимо дугме на гпио пин 11 и доделимо му ИСР. Унутар ИСР-а назваћемо скрипту.
Створимо питхон датотеку под називом Блуетоотх- спеакер- маин.пи и додајте јој доњи код. Додао сам коментаре у програм, тако да ако их користите, и даље их имате
#импорт потребни пакети импорт субпроцесс импорт РПи.ГПИО као гпио вријеме увоза импорт ос импорт логгинг паир_пин = 11 # дохватите директоријум датотеке из којег се покреће питхон скрипта филеДирецтори = ос.патх.дирнаме (ос.патх.реалпатх (__ филе__)) # Подесите локацију датотеке дневника исто као и локацију скрипте питхон логФиле = филеДирецтори + "/ блуетоотхСпеакер.лог" логгинг.басицЦонфиг (име датотеке = логФиле, филемоде = 'в', формат = '% (наме) с -% (левелнаме) с -% (мессаге) с ', левел = логгинг.ИНФО) деф паирНевДевице (канал): # ИСР за пин 11 принт ("Чекање на упаривање") логгинг.инфо ("Чекање на упаривање") оутпут = субпроцесс.цалл () гпио.сетмоде (гпио.ОДБОР, ТАБЛА) гпио.сетуп (паир_пин, гпио.ИН, пулл_уп_довн = гпио.ПУД_УП) три: # Подесите паир_пин као пин за прекидање који детектује падајућу ивицу и када то учини, позовите функцију паирНевДевице гпио.адд_евент_детецт (паир_пин, гпио.ФАЛЛИНГ, цаллбацк = паирНевДевице, боунцетиме = 1000) принт („Блуетоотх програм је покренут“) логгинг.инфо („Блуетоотх програм је покренут“) док је Труе: тиме.слееп (5), осим КеибоардИнтеррупт: гпио.цлеануп ()
Кружни дијаграм
Испод је дијаграм кола за повезивање дугмета са ГПИО11 од Распберри Пи за покретање процеса упаривања Блуетоотх-а за пренос звука путем Блуетоотх-а.
Подесите Црон Јоб да бисте покренули програм Питхон за Блуетоотх звучнике при покретању
Сада коначно поставимо црон посао који ће покретати овај питхон програм сваки пут када се пи покрене.
цронтаб -е
Изаберите свој омиљени уређивач и додајте доњи ред на крају датотеке
@ребоот питхон3 /хоме/пи/блуеоотх-спеакер/Блуетоотх-спеакер-маин.пи
Ово ће позвати наш питхон програм сваки пут кад се пи покрене.
И то је то. Орао је слетео. Направили сте безглави Распберри Пи Блуетоотх звучник.
Поново покрените Пи, упарите телефон и стримујте звук.:)
Све скрипте за овај Распберри Пи Блуетоотх звучник могу се преузети са ГитХуб налога. Такође погледајте доленаведени видео.