Raspberry Pi로 저렴한 Sonos 스피커를 만드는 방법

01/17 2022
라즈베리 파이 4 모델 B

Sonos One은 몇 가지 이유로 최고의 스마트 스피커 목록에 포함되어 있습니다 . 모든 것이 놀랍게 들리고 수십 개의 오디오 스트리밍 서비스와 함께 작동합니다. Amazon Echo , Google Nest Audio , 또는 Apple HomePod Mini .

그러나 Sonos One은 상당히 비싼 $200입니다. 하지만 좋아하는 스피커가 있으면 Raspberry Pi를 사용하여 저렴한 Sonos 스피커로 바꿀 수 있습니다. 방법은 다음과 같습니다.

스마트 홈에서 Raspberry Pi를 사용하는 방법 

라즈베리 파이는 제작자와 땜장이에게 펀치를 포장한 저렴한 단일 보드 컴퓨터를 제공하면서 혁명을 일으켰습니다. 지금으로 빨리 감기고 우리는 Pi의 네 번째 반복에 있습니다. 기본적으로 무엇이든 실행할 수 있으며 심지어 Windows도 실행할 수 있습니다. 

가장 오랫동안 나는 라즈베리 파이를 갖고 싶었지만 그걸 가지고 무엇을 해야 할지 몰랐다. 하지만 집에서 기술을 확장하고 모든 것을 잠그면서 Pi에 대한 아이디어가 생기기 시작했습니다. 내가 한 첫 번째 프로젝트는 기본적으로 네트워크 전체 광고 차단기인 Pi-Hole 장치를 만드는 것이 었습니다. 스마트 TV스트리밍 스틱이 시청 습관에 대한 데이터를 수집하는 것을 원하지 않는다면 Pi-Hole이 절대적으로 필요합니다.

두 번째 Raspberry Pi는 홈 어시스턴트 호스트 역할을 했습니다. Home Assistant에 대한 자세한 내용은 이 기사의 범위를 벗어나지만 기본적으로 홈 자동화 및 스마트 홈 플랫폼입니다. 그러나 나는 내 Raspberry Pi 4가 작업에 적합하지 않다는 것을 금방 알게 되었습니다. 그래서 얼마 전에 검토한 XDO Pantera Pico를 새로운 홈 어시스턴트 호스트로 다시 전환했는데 아주 훌륭했습니다.

하지만 그로 인해 여분의 라즈베리 파이가 남아 서랍에 아무것도 하지 않고 앉아 있었습니다. 자유 시간을 채우기 위해 새로운 프로젝트를 우연히 발견하기 전까지는 그랬습니다. balenaSound를 입력합니다.

balenaSound: 뭔데?

접두사 'balena'가 친숙하게 들리면 개발자의 가장 인기 있는 소프트웨어인 balenaEtcher (새 탭에서 열림)를 알고 있기 때문일 수 있습니다 . 라이브 Linux USB 또는 Raspberry Pi SD 카드를 만드는 데 완벽한 플래싱 도구입니다. 크로스 플랫폼이기 때문에 현재 기본 권장 사항 중 하나입니다. 윈도우, 맥, 리눅스 상관없습니다. 

(새 탭에서 열림)

그러나 Etcher는 balena가 진행하는 유일한 프로젝트가 아닙니다. 사실, 다른 몇 가지가 있지만 특히 한 가지가 내 눈을 사로 잡았습니다. 싱글룸 및 멀티룸 레이아웃을 지원하는 오디오 스트리머인 balenaSound (새 탭에서 열림) 입니다 . Raspberry Pi와 결합하면 일반 구형 스피커를 Sonos와 같은 멀티룸 기능을 갖춘 Wi-Fi 스피커로 바꿉니다.

컨테이너에 IoT(사물 인터넷)를 배포하기 위해 특별히 설계된 운영 체제인 balenaOS (새 탭에서 열림) 위에서 실행되는 Docker 컨테이너입니다 . balenaSound(또는 다른 balena IoT 프로젝트)의 인스턴스를 관리하려면 balenaCloud 포털을 통해 제어합니다. OS는 OpenVPN 프로토콜을 사용하여 배포 및 관리를 위해 대시보드에 대한 보안 연결을 생성합니다.

시작하고 실행하는 것은 매우 쉽습니다. 프로젝트를 생성하고, OS 이미지를 사용자 지정하고, microSD 카드에 플래시하는 단계를 안내합니다. 그것을 Raspberry Pi에 넣고 스피커를 연결하면 붐이 일어납니다. AirPlay, Spotify Connect, UPnP 및 Bluetooth를 지원하는 Wi-Fi 스피커가 있습니다(스냅캐스트 지원도 있음). 사실 balenaSound가 갖고 싶었던 유일한 것은 Google Cast였습니다. 내 스피커를 Cast 대상으로 전환하기 위해 Google에서 청구하는 라이선스 비용을 감당할 수 있어 기쁩니다.

무료 등급을 사용하면 balenaCloud에서 10개의 장치로 제한됩니다. 그것은 대부분의 주거 목적에 적합합니다. 

아래에 배치할 부품이 있다고 가정하면 약 10분 안에 가동 및 실행할 수 있습니다. 수정할 수 있는 구성이 있지만 기본 사항은 배포하기가 매우 쉽습니다. 또한 balenaSound에 대한 설명서가 매우 견고하므로 일부 읽기를 두려워하지 마십시오.

Raspberry Pi를 사용하여 Sonos와 같은 스마트 스피커를 만드는 방법

시작하려면 다음 부품이 필요합니다.

  • Raspberry Pi(3B+ 또는 4B가 가장 좋음)
  • 전원 공급 장치(Pi에 필요한 전원 공급 장치 확인)
  • 마이크로SD 카드(8GB)
  • 스피커
  • 3.5mm 또는 RCA 오디오 케이블(지원되는 DAC를 사용하는 경우)

또한 다음 소프트웨어가 필요합니다.

  • 이미지 작성자(예: balenaEtcher)
  • 무료 balenaCloud 계정
  • 맞춤형 balenaSound 이미지

1. 제공된 링크를 사용하여 balenaSound (새 탭에서 열림) 를 배포합니다 . 플릿 생성 대화 상자로 이동합니다. 원하는 경우 이름을 변경하십시오.

(새 탭에서 열림)

2. 기본 장치 유형 드롭다운 메뉴 에서 장치를 선택합니다 . 검색 기능을 이용하시면 빠르게 찾으실 수 있습니다.

(새 탭에서 열림)

3. 만들기 및 배포를 클릭합니다 .

(새 탭에서 열림)

4. 방금 생성한 집합에 대한 새 대시보드가 ​​표시됩니다. Raspberry Pi 프로비저닝을 시작하려면 + 장치 추가 를 클릭합니다 .

balenasound 클라우드 대시보드: 플릿에 장치 추가

5. 표시되는 대화 상자에서 필요한 경우 장치 유형을 변경합니다. OS 유형, 버전 및 버전을 기본값으로 둡니다.

Raspberry Pi를 이더넷에 연결하려는 경우 플래시 버튼을 클릭하여 Etcher로 플래시하거나 화살표를 클릭하고 BalenaOS 다운로드를 선택하여 선택한 프로그램을 플래시합니다.

대신 Wi-Fi에서 Raspberry Pi를 작동시키려면 Wi-Fi + 이더넷 라디오 버튼을 클릭하세요. 네트워크의 SSID와 암호를 입력한 다음 Flash 버튼을 클릭합니다.

balenasound 클라우드 대시보드: 장치 OS 이미지 프로비저닝

6. microSD를 컴퓨터에 삽입합니다. Flash 버튼을 사용하거나 다운로드한 이미지 파일을 사용하여 이미지를 플래시합니다 .

7. microSD 카드를 꺼내서 Raspberry Pi의 슬롯 (보드 밑면) 에 설치합니다 .

8. 전원 공급 장치를 연결 하고 오디오 케이블을 스피커에 연결합니다.

기본 구성에서는 3.5mm 헤드폰 잭을 통해 Raspberry Pi의 온보드 오디오를 사용합니다. IQAudio DAC Pro (새 탭에서 열림) 와 같은 DAC 모자가 있는 경우 RCA 오디오 케이블을 사용할 수 있습니다.

balenaSound 구성 및 설정

기본적으로 balenaSound는 네트워크 설정이 올바른 한 작동해야 합니다. Raspberry Pi 부팅 후 대시보드에 표시되어야 합니다(몇 분 정도 소요될 수 있음). 여기에서 balenaSound 인스턴스를 관리하고 호스트를 제어할 수 있습니다. 

그러나 당신은 상황에 반드시 만족하지 않을 수도 있습니다. 나에게는 Spotify Connect 및 AirPlay의 임의의 대상 이름이 마음에 들지 않았습니다. 환경 변수를 설정해야 하는 다른 것으로 변경하고 싶었습니다.

balena-sound 플릿 대시보드의 왼쪽 메뉴에서 변수를 클릭합니다 . 파란색 변수 추가 버튼 을 클릭합니다 . 서비스 섹션을 모든 서비스로 둡니다 . 이름 섹션 에 SOUND_DEVICE_NAME을 입력합니다 . 값 상자에서 원하는 스피커 그룹을 설정합니다.

(새 탭에서 열림)

이것은 전체 함대에 대해 전역적이라는 점을 명심하십시오. Raspberry Pi가 여러 개 있고 이들을 모두 별도의 이름으로 지정하려면 대시보드로 돌아가 장치 이름이 있는 파란색 하이퍼링크를 클릭하십시오. 장치 변수 메뉴 옵션을 클릭합니다 . 여기에 방금 설정한 SOUND_DEVICE_NAME 변수가 표시되지만 재정의 버튼이 있습니다. 그것을 클릭하고 특정 Pi의 새 이름을 설정하십시오.

플릿 요약 외에도 각 장치의 통계를 볼 수 있는 장치 요약 섹션이 있습니다. 여기에서 로그, 터미널 액세스(SSH를 통한), 서비스 상태 및 로컬(및 공용) IP 주소를 찾을 수 있습니다. 

건너뛰기에 도움이 되는 사용자 지정 입력 루프백 대기 시간 설정과 같이 사용할 변수가 몇 가지 더 있습니다. Spotify Connect에 지연이 있다는 것을 알았지만 여전히 제가 알아낼 수 있는 것을 보기 위해 구성을 가지고 놀고 있습니다. 그리고 내 DAC 모자가 도착하면 balenaSound가 제대로 재생되도록 조정해야 할 몇 가지 사항이 있습니다.

나만의 Sonos 대안 만들기

저는 이 프로젝트에 80달러 미만을 썼습니다. 199달러인 보급형 Sonos One SL과 비교해보세요. 멀티룸 서버를 실행하는 2개의 괜찮은 스피커가 있는데 Cast 지원이 부족하다는 유일한 문제가 있습니다.

물론 칩 부족으로 Raspberry Pi를 찾기가 어려울 것입니다. 제 두 지역 Micro Center는 완전히 매진되었습니다. 그리고 재판매 시장에서 그들은 요즘 다른 모든 기술과 마찬가지로 꽤 많은 돈을 요구합니다.

balenasound를 실행하는 스피커에 연결된 라즈베리 파이 4

멀티룸 마스터 장치 역할을 하고 각 스피커 Raspberry Pi 그룹이 클라이언트 역할을 하도록 Docker 컨테이너의 별도 시스템에서 balenaSound를 실행할 계획입니다. 고맙게도 저는 작업에 필요한 것 이상의 전용 서버를 가지고 있습니다(이 서버는 제 Plex 서버도 처리하고 제 다음 프로젝트인 Rhasspy의 정면을 담당할 것입니다).

나는 balenaSound가 완벽한 솔루션이라고 생각하지 않지만, 진행 중인 작업입니다. Sonos만큼 플러그 앤 플레이 방식은 아니지만 Craigslist 또는 Facebook Marketplace에서 우수한 표준 스피커를 선택하고 대신 이 방법을 사용하여 비용을 절약하거나 가격에 상응하는 Sonos가 할 수 있는 일을 능가할 수 있습니다. (운이 좋으면 일부 오래된 스피커에서 많은 점수를 얻을 수도 있습니다.) 또한 모든 것을 관리하고 원하는 대로 조정할 수 있습니다. Sonos에게는 그렇게 말할 수 없습니다.

이 프로젝트를 시작했을 때는 이렇게 재미있을지 몰랐습니다. 이제 사무실의 오디오를 크게 업그레이드했는데 Raspberry Pi의 DAC 모자가 아직 도착하지 않았습니다. 향상된 음질을 기대해 봅니다.

결과가 어떻게 나왔는지 매우 기쁩니다. 더 많은 Wi-Fi 스피커를 배치하고 싶습니다. 결국 모든 Google Home 스피커를 제거할 때 대부분의 방에서 쉽게 스트리밍할 수 있는 음악을 갖고 싶습니다. 이제 편안히 앉아 MacBook Pro 스피커 또는 Nest Hub가 제공할 수 있는 것보다 더 나은 음질을 즐길 수 있습니다.