Amazonのアソシエイトとして、ラズパイダ(raspida.com)は適格販売により収入を得ています。詳しくは当サイトの プライバシーポリシーをご覧ください。
Speaker pHATとRaspberry Pi Zero W で携帯型ミュージックボックスを構築しました。
iPhoneでいいじゃん・・・と言わないでください・・・。 またはiPhoneとBluetoothスピーカーでいいじゃん・・・と言ってしまうと元も子もありません。
制作のポイント
- モバイルバッテリーを使い屋外で聴きたい
- iPhoneとはRaspberry Pi Zero WのWi-Fi経由で繋ぐ
- ウェブブラウザsafariにてMopidyのWEBインターフェイスで操作する
ケースに入れたRaspberry Pi zero W + Speaker pHAT

今回使用したパーツ
制作した環境
Raspberry Pi Zero Wはモニターとキーボードを繋げて作業しました。(途中までヘッドレスインストールでもOK)
Raspbian(STRETCH LITE )
- Raspberry Pi Zero W/WH
- Pimoroni Speaker pHAT - スピーカー pHAT キット
- Adafruit Raspberry Pi Zero用ケース
- モバイルバッテリー(Anker製品が良いですよ)
RaspbianOSのインストール
RASPBIAN STRETCH LITEのイメージファイルをSDカードに書き込み、通常通りのセットアップをします。
Wi-Fiの設定
Wi-Fiはひとまず自宅のWi-Fiで設定します。その後、hostapdを利用してRaspbian側にアクセスポイントを構築してiPhoneで接続します。
Wi-Fiの設定は通常通り、セットアップウィザード内で設定するだけです。
「Raspberry Pi のWi-Fi設定(初期設定)」ではWi-Fiについて細かくまとめています。参考にしてください。
hostapdのインストールは最後にして先に必要なMPDなどのインストールと設定をします。
Mopidyのインストール
OS内に音楽ファイル置いて聴く形式を取ります。(正確にはOS仮想イメージ内) そのためまずはMPD環境を整えます。今回もMopidyを使います。
どうもVolumio2はPimoroniのHAT系が上手く設定できませんでした。・・・最新バージョンは対応していると記載があったのですが、LED系が上手くできません。う〜ん、またチャレンジします。
pHAT BEATの時の記事が参考になります。Raspbianのバージョンも上がったので、改めて順番に記載します。
GPG keyの登録:
wget -q -O - https://apt.mopidy.com/mopidy.gpg | sudo apt-key add -
パッケージソースのダウンロード:
sudo wget -q -O /etc/apt/sources.list.d/mopidy.list https://apt.mopidy.com/
Mopidyのインストール:
以下コマンドにてインストール
sudo apt-get update
sudo apt-get install mopidy
■Pi 5は8GBモデルがオススメ
Mopidy.confの修正と追加
mopidy.confにて動作させるための設定をします。
sudo nano /etc/mopidy/mopidy.conf
最終行から追加と変更をします。
[http]
enabled = true
hostname = 192.168.XX.XX #(IPアドレスまたはホスト名※1)
port = 6680
static_dir = /usr/local/lib/python2.7/dist-packages/mopidy_moped/static/
[audio] # ※2
mixer = software
mixer_volume = 50 #起動時のVolume設定。100が最大。
output = alsasink
[softwaremixer]
enabled = true
[alsamixer]
enabled = true
card = 0
control = PCM
[mpd]
enabled = true
hostname = :: #コロン2つ続けて(Listens on all interfaces, both IPv4 and IPv6)※3
port = 6600
※1 IPアドレスの場合、固定させないとなりません。別途、dhcpcd.confにてstaticで設定します。Raspbianの設定でホスト名を決めて、そのホスト名で処理すると楽です。例:sp-mopidy.local
※2 【】が2つになっていますが、実際には一つです。Wordpressのショートコード回避のため2重にしてあるだけです。
※3 **::**は半角コロンを続けて2つです。全角と間違えないようにしてください。
mpdクライアントをインストール
pipというツールコマンドでインストールします。Raspbian Wheezy 以前と Jessie Liteではpipがインストールされていません。pip自体をインストールされていない場合はapt-getでインストールしてください。
sudo apt-get install python-pip
上記はPython 2系です。
Mopidyクライアントのインストール
ブラウザから制御するクライアントソフトを用意します。Mopidyにエクステンション(拡張)アプリケーションを入れないとなりません。
sudo pip install Mopidy-Moped
サービスに登録
サービスに登録します。これでシステム起動と同時に起動します。
sudo systemctl enable mopidy
mopidyを再起動。
sudo systemctl restart mopidy
ステータスの確認
ステータスを確認します。アクティブになっていれば大概はOKです。
sudo systemctl status mopidy
● mopidy.service - Mopidy music server
Loaded: loaded (/lib/systemd/system/mopidy.service; enabled; vendor preset: e
Active: active (running) since Sat 2018-01-20 08:06:14 UTC; 8s ago
Process: 3189 ExecStartPre=/bin/chown mopidy:audio /var/cache/mopidy (code=exi
Process: 3186 ExecStartPre=/bin/mkdir -p /var/cache/mopidy (code=exited, statu
Main PID: 3192 (mopidy)
CGroup: /system.slice/mopidy.service
└─3192 /usr/bin/python /usr/bin/mopidy --config /usr/share/mopidy/con
Jan 20 08:06:13 sp-mopidy systemd[1]: Starting Mopidy music server...
Jan 20 08:06:14 sp-mopidy systemd[1]: Started Mopidy music server.
ブラウザ(safariなど)からコントールする
今回はiPhoneのsafariブラウザに下記を入力(localhostはIPアドレスまたはホスト名)
http://localhost:6680/
この記事ではホスト名が
sp-mopidy
なので次のようになります。
http://sp-mopidy.local:6680/
画像はMacBook Proのデスクトップからです。
音楽を転送できるようにsambaのインストール
音楽ファイルをWi-Fi経由でコピーしたいので、sambaを入れ共有フォルダを設定します。今回も分かり易い様に、mopidyで音楽ファイルの場所であるローカルの/var/lib/mopidy/mediaをSambaで共有する形にしてあります。適時読み替えてください。
sambaのインストール
<span class="hljs-attribute">sudo</span> apt-get install samba
パスワードは設定しましょう。質問形式でパスワードを2回入れます。
sudo smbpasswd -a pi
設定ファイル(.conf)の編集
sudo nano /etc/samba/smb.conf
下記6行を最終行に追記します。
[media]
path = /var/lib/mopidy/media
read only = No
writable = Yes
guest ok = Yes
create mode 0777
パーミッションの変更
書き込み出来るように権限を変更します。
フルアクセスの777にしています。気になる方は適時読み替えてください。
sudo chmod 777 /var/lib/mopidy/media
音楽ファイルのスキャン
ライブラリを更新は以下コマンドです。ローカルの音楽ファイルを入れた後にまず一度スキャンしてください。
mopidy local scan
ライブラリの更新はAPIのみで可能で以下のコマンドを実行します。
curl -d '{"jsonrpc": "2.0", "id": 1, "method": "core.library.refresh"}' http://localhost:6680/mopidy/rpc
iPhoneで操作する
どうやってiPhoneをRaspberry Pi Zero WとWi-Fiで繋ぐのか? Wi-Fiはルーター側(RT)かアクセスポイント側(AP)か変えられます。今回は音楽再生の操作をしたいので、 Raspberry Pi 側のWi-Fiをアクセスポイントとして動作させます。iPhoneがクライント側ですね。
iPhoneとペアで接続したいので、DHCPで番号を振ることまではしません。アクセスポイント(AP)と言ってもインターネットには繋がないので、ローカル環境以前にiPhoneだけがアクセスポイント(AP)であるRaspberry Pi Zero Wへ接続する形です。
hostapdというアプリケーションを利用しアクセスポイントを立てます。
続き >> hostapdのインストールと設定へ



