たねやつの木

Photographs, Keyboards and Programming

Raspberry Piで今度こそSpotifyを使う!

079A9455.jpg

前の記事

この記事でSpotify公式の方法でRaspberry Piでもできるか試しましたが、2017年末現在では不可能になってしまいました。

できること

公式の方法の代替として"mopidy"を使用してSpotifyを使う。

mopidy-spotifyの実行にはspotifyのプレミアムアカウントが必要です。

mopidy

mopidy自体は、Raspbian, Debianならapt-getでインストール可能です。

$ sudo apt-get update
$ sudo apt-get install mopidy

ものすごい量の依存ファイルもついてきますが...(笑)




一時的に疎通できなかっただけかもしれませんが、以下のようなエラーが出ました。

E: Failed to fetch http://ftp.tsukuba.wide.ad.jp/Linux/raspbian/raspbian/pool/main/g/gst-plugins-base1.0/gstreamer1.0-plugins-base_1.10.4-1_armhf.deb Connection failed [IP: 203.178.132.80 80]

$ sudo apt-get update --fix-missingを実行した後に再トライすると大丈夫でした。 あまり関係ないかもしれません...

mopidy-spotify

mopidyでspotifyを使えるようにするエクステンションもインストール。(https://github.com/mopidy/mopidy-spotify)

インストールするためにはまずapt.mopidy.comのレポジトリをリストに追加します。

https://docs.mopidy.com/en/latest/installation/debian/に記載の内容で大丈夫です。

$ wget -q -O - https://apt.mopidy.com/mopidy.gpg | sudo apt-key add -
OK
$ sudo wget -q -O /etc/apt/sources.list.d/mopidy.list https://apt.mopidy.com/jessie.list
$ sudo apt-get update
$ sudo apt-get install mopidy-spotify 

開発はJessie(今よりひとつ前のDebian, Raspbianのバージョン)で止まっているのかな?

この方法でmopidy-spotifyをインストールした場合、依存ファイルもすべてインストールしてくれます。

mopidy-spotifyの設定

公式のドキュメントに沿って設定していきます。(https://github.com/mopidy/mopidy-spotify)

認証キーを取得する

https://www.mopidy.com/authenticate/#spotifyにアクセスして認証キーを取得します。

"Login with Spotify"をクリック > (Spotify公式サイト)Spotifyにログインをクリック > ログイン > OKをクリック

とすると、"Login with Spotify"のあった場所にキー(client_id, client_secret)が表示されます。

その3行をコピーして、mopidyの設定ファイルに貼り付けます。

mopidyの設定ファイル

/etc/mopidy/mopidy.confが設定ファイルになります。先程取得したキーとユーザーネーム、パスワードを末尾に貼り付けます。 以下のように記載します。

[spotify]
username = [Spotifyのユーザーネーム]
password = [Spotifyのパスワード]
client_id = [先程取得したclient_id]
client_secret = [先程取得したclient_secret]

以上で設定は完了です。

クライアントをインストールする

あと一息!(笑)

Mopidyはサーバーのようにして働くので、操作するためにはMopidyに命令してくれるクライアントとなるものが必要です。 MPDとMPCの関係性と同じようなものだと思います。

Moped-Irisやmopidy-spotify-webなどを試してみたのですが、うまいこと表示されず...(笑)

Mopidy-Mopedというブラウザから操作できるクライアントを導入しました。(https://github.com/martijnboland/moped)

sudo pip install Mopidy-Mopedでインストールできます。

pipコマンドが存在していない場合は、sudo install python-pipでインストールできます。pythonでできたサービスのパッケージ管理用コマンドです。 apt-getと同じような感覚で使います。Pythonでできたライブラリーを使う機会は他でも結構多いのでpipというコマンドを覚えましょう。

入力できたらsudo /etc/init.d/mopidy restartで再起動します。

webブラウザからhttp://[RaspiのIPアドレス]:6680 にアクセスするとクライアントが表示されます。

ちなみにポート番号:6600はMPDがデフォルトで使用するポートで、80はおなじみのHTTP用のポートですね。それを組み合わせて6680と。。。

ポートを変更したい場合はmopidy.confに

[http]
port = xxxx

を追加してください。

再生してみる

あとは特に説明も必要ないかと思います! GUIで操作できるってやっぱりいいですね...(´ε` )

ただ、Spotifyで検索した際にジャケットが表示されなかったりするのが残念です(_)

やっぱり純正のSpotifyアプリと比べてしまうとブラウジングなど見劣りしてしまう部分があります。こればかりはしょうがないですね! 上手な使い方は純正アプリで作成したプレイリストをMopidy-Mopedで再生するという感じですかね(´ε` )




予定してなかった副産物に、mopidyでローカルの音楽も再生できるようです。ほぼMPDの代替として使えそうですね!

Spotify Music

Spotify Music

参考

https://github.com/mopidy/mopidy-spotify https://docs.mopidy.com/en/latest/installation/debian/

Raspberry PiでIRKitを操作する。

079A9455.jpg

Raspberry Pi 3 Model B

IRKit

赤外線学習リモコン。は現在より高機能なものも発売されている。

IRKit

なんか価格高騰してる?もしかして生産終了なのかな...・ω・

セットアップ

初期セットアップ(通信できるようになるまで)はこの方の記事などを参考にしました。

IPアドレスの固定

無線LANルーターの再起動などのたびにIPアドレスが変わってしまっては困るので、IRKitのIPアドレスを固定します。

IRKitの設定を直接変更することはできないのでルーターの設定(DHCPリース)から固定します。 パスワードの書いてあるカードにMACアドレスも一緒に記載されているので、それを参考に。

信号を受け取る

以下のcurlコマンドで受信したリモコンの情報を表示できます。 リモコンのボタンをIRkitに向けて押した後に実行してください。

curl -i "http://[IRKitのIPアドレス]/messages" -H "X-Requested-With: curl"
例) curl -i "http://192.1681.100/messages" -H "X-Requested-With: curl" 面倒なのでシェルスクリプトにまとめる。ファイル名はgetSignalとします。

#!/bin/bash

ADDRESS=http://[IRKitのIPアドレス]/messages

curl -i "${ADDRESS}" -H "X-Requested-With: curl"

作成したらchmod 775 getSignalで実行権限を与えます。

./getSignalで実行すると以下のような出力を得ることができます。

HTTP/1.0 200 OK
Access-Control-Allow-Origin: *
Server: IRKit/3.0.0.0.g85190b1
Content-Type: text/plain

{"format":"raw","freq":38,"data":[18031,...]}

末尾の[18031,...]の部分がリモコンの信号をデジタル化したもの。 この部分だけ切り取ってファイルとして保存します。

ファイルの末尾には改行が含まれていないことを確認してから保存してください。 (試してはいないですが、なんとなくマズそうなので。。。orz)

ちなみに2回連続でこのコマンドを実行してもシグナルを取得できません。 もう一度表示したい場合は再度IRKitに向けてリモコンのボタンを押す必要があります。

信号を発信する

以下のコマンドで取得したシグナルを発信できます。

curl -i "http://[IRKitのIPアドレス]/messages -H "X-Requested-With: curl" -d "message=[18031,...]"

こちらもまとめる。ファイル名はsendSignalとした。

#!/bin/bash

COMMAND=`cat $1`
MESSAGE=message\=${COMMAND}
ADDRESS=http://[IRKitのIPアドレス]/messages

curl -i "${ADDRESS}" \
-H "X-Requested-With: curl" \
-d ${MESSAGE}

./sendSignal [[18031,...]を保存したファイル]でIRKitから赤外線が発信できます。

発信した際にはIRKitのLEDが点滅します。真っ暗な中だと結構目立ちます(´∀`)

点滅したにもかかわらず期待した動作をしない場合には、 取得した文字列のコピーが不十分であったり、そもそもIRKitの赤外線が届く範囲に操作したい機器が ないだけかもしれません。

これでRaspberry Piのコマンドライン上でIRKitを操作することができるようになりました。

応用(?)

ここまでくればWEBサーバーをRaspberry Pi内に立てて、HTMLとPHPを使えばスマホをリモコン代わりに 使うことができます!

こんなことをしなくてもスマホのアプリでいっぱいあるのですが、自分で作るから楽しいんですよ!(´ε` )(笑)

以下の記事の動画で行っていることもRaspberry Pi上でIRKitを操作できるからこその技です。

最後に

ココまでやっても普通のリモコンとできることは何ら変わらないのですが、他のプログラムやアプリケーションと 組み合わせることで「Raspberry Pi + IRKitで赤外線を送信する」ということの便利さが見えてくるはずです。

そのほかRaspberry Piでできること・やったことに関してはコチラの記事をご参考願います(´ω`)

[Node.js] Foreverコマンドでスクリプトをバックグラウンドで動かす

079A9455.jpg

できること

タイトル通り。node hoge.jsをバックグラウンドで実行できる。

Raspberry Piの起動時に実行されるスクリプトの中に書き込んでしまえば、 起動と同時に実行されるようになり、デーモンの様になる。

以下の記事の(一応!)続きです(笑)

ココで作成したスクリプトをnodeコマンドで実行すると、 他のコマンドライン操作が一切できなくなりますが、foreverで起動時に バックグラウンドで立ち上がるようにしておけば他のコマンドも実行できるようになります。

Foreverの導入

起動スクリプトはroot権限で実行されるので、グローバルオプションをつけてインストールします。

sudo npm install -g forever

導入自体は以上で完了です。root権限で実行しないとアクセス拒否でエラーとなりインストールできません。

ただ、実際にコマンドライン上でforever hoge.jsと実行してみてもnode hoge.jsとしたときと変わらず、 他のコマンドライン操作ができない状態になります...(笑)。ちょっと思っていた動作と違いますが、もしかしたらオプションでなんとかできるのかもしれません。

Raspberry Piの起動時にforeverで実行するようにする

foreverの導入が済んだので、Raspberry Piの起動時に実行するように設定します。

/etc/rc.localというファイルに書き込んだことが起動時に管理者権限で実行されます。

中身を見てみましょう。

$ cd /etc
$ vim rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi

exit 0

このようになっているはずです。よく見てみると、何か処理が書いてあります。 (コメントには何もしないと書いてありますが...(笑)

# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi

起動時にIPアドレスを表示する処理が書いてあります!これ実はRaspberry Piを箱から出して、 HDMIでモニタに繋いでSSHで繋いだりせずに直接設定を行う時に便利なんですよね(笑)

起動時にサービスの立ち上げがズラズラーと[ok]...と表示される一番最後の方 (ログインユーザー入力のちょっと上)に表示されているので、気になる方はチェックしてみてくださし。


話がそれましたが、先程のIP表示処理の最後(fi)の後に処理を書き込みます。

末尾のexit 0は消さないようにしてください!! 消しても問題無いのかもしれないですが、 触らぬ神に祟りなしです(笑)。この行は処理が処理が正常に完了したということを呼び出し元に返しています。

他のプログラム(Java)で言えばreturn true;といった感じでしょうか。


記述するコマンドはこんな感じです。

[which foreverで表示される内容] [起動したいjsファイル]

そのまんま過ぎて参考にならないですね...(笑) 私の場合はこのようになります。

/usr/local/bin/forever /home/taneyats/nodejs/scripts/dash_button.js

これをrc.localに書き足して、

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi

#nodejs forever
/usr/local/bin/forever /home/taneyats/nodejs/scripts/dash_button.js

#DO NOT DELETE EXIT 0!
exit 0

といった感じになります。exitは必ずファイルの末尾に書くようにしてください。(間違って消さないようにコメントを追加しておくのもいいかもしれません。)

上記の内容が何か間違っている場合は、再起動後Raspberry Piの起動処理が正常に完了できずに 最悪一時的にSSH接続などの遠隔からの接続ができなくなる可能性があります。

...ですので、手元にRaspberry Piがある状態で再起動を行ってください。

再起動後、数分待ってもSSH接続などができない場合は、Raspberry Piに直接HDMIとキーボードを挿して、 rc.localファイルを修正してください(_)

以前別の処理を書き込んだ時にこの状態に陥ってヒヤヒヤしたことがあります...orz

動いているか確認する

前回の記事でDash Buttonのスクリプトを作成しているのであれば、ボタンを押せばスクリプトが正常に バックグラウンドで動いているかを確認できます。

あるいは、forever listと打っても確認できます。

info:    Forever processes running
data:        uid  command         script                                      forever pid id logfile                 uptime        
data:    [0] b9ZR /usr/bin/nodejs /home/taneyas/nodejs/scripts/dash_button.js 629     667    /root/.forever/b9ZR.log 1:0:28:10.621

横に長いですが一番右のuptimeの部分が時間を表示していれば動いていることになります。 STOPPEDとなっていれば動いていません。

スクリプトを停止する

内容の変更をしたい時には一度止める必要があります。停止にはforever stopコマンドを使います。

stopの後ろにスペースを一つ開けて、uidを入力します。uidは先程のlistコマンドで表示されているものでおkです。

$sudo forever stop b9ZR
info:    Forever stopped process:
    uid  command         script                                       forever pid id logfile                 uptime        
[0] b9ZR /usr/bin/nodejs /home/taneyats/nodejs/scripts/dash_button.js 629     667    /root/.forever/b9ZR.log 1:0:42:10.835 
$ forever list
info:    No forever processes running

以上で停止の完了です。再度バックグラウンドで起動したいときには...再起動するしかないのかな?(笑)

他にバックグラウンドで実行する手段

私は、screenというコマンドも使います。node.jsではforeverがあるのでコチラは使用しませんが、 node.js以外のスクリプトをバックグラウンドで実行したいときなんかに便利です。

例えば、Minecraftのサーバーを動かしながら、Raspberry Piをコマンド操作した時とか。


また、screenを使うとSSH接続が途切れた際にも処理は続行されるので複数の端末から一つの作業に アクセスしたい時や、長時間の処理を行うときなんかにも便利です。

例では、youtube-dlで一括でファイルをゴニャゴニャしている時に...(笑)

Raspberry Pi 3 Model B

次の記事

現在特に無し(´ε` )

Raspberry Pi上では2017年現在公式の方法でSpotifyを使うことができない!

079A9455.jpg

version

$ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description:    Raspbian GNU/Linux 9.1 (stretch)
Release:    9.1
Codename:   stretch

できること

Raspberry Piに接続したスピーカーから音楽を鳴らせる。 Raspberry Pi上でSpotifyが使える。

2017年現在では以下の方法では不可能。代替手段としては以下の別記事ご参考。(作成中)

公式ページ

https://www.spotify.com/jp/download/linux/

公式でCLI上で動かせるパッケージを用意してくれているのはなんともありがたい!(´ω`)

Debianではリポジトリは特に追加しなくてもapt-get install spotify-clientでインストールできるらしいのだが、 Raspbianはではだめな模様。

$ sudo apt-get install
...
E: Unable to locate package spotify-client

なので下部の"Installation"にあるとおり、レポジトリを追加してパッケージリストを更新します。

記載の通り順番にコマンドをコピペでおkですが、#1のコマンドを実行した際に以下のようなエラーが出るかもしれません。

$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0DF731E45CE24F27EEEB1450EFDC8610341D9410
Executing: /tmp/apt-key-gpghome.PkYwMvfMYJ/gpg.1.sh --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0DF731E45CE24F27EEEB1450EFDC8610341D9410
gpg: failed to start the dirmngr '/usr/bin/dirmngr': No such file or directory
gpg: connecting dirmngr at '/tmp/apt-key-gpghome.PkYwMvfMYJ/S.dirmngr' failed: No such file or directory
gpg: keyserver receive failed: No dirmngr

/usr/bin/dirmngrがない!と怒られているので、インストールしましょう。証明書に関連する情報を管理するためのサービスのようです。

sudo apt-get install dirmngr

再度sudo apt-key adv ...を実行すると無事に完了するはずです(´ε` )

そして#4を実行したところ...

$ sudo apt-get update
Reading package lists... Done
N: Skipping acquire of configured file 'non-free/binary-armhf/Packages' as repository 'http://repository.spotify.com stable InRelease' doesn't support architecture 'armhf'

なんかまずい予感。。。パッケージにあるものはRaspberry PiのCPUアーキテクチャの"armhf"には対応していない!!

なんとかarmhf用のdebとかないか調べた結果、行き着いたのがココ(libspotify)である。

衝撃の文言をそのまま引用すると、

Please note that we have removed the LibSpotify binaries from our website in an effort to phase out the usage of this deprecated library. LibSpotify has been considered deprecated since 2015 and will be shut down in 2017, ...

2015年に廃止され、2017年中にはダウンロードリンクさえも削除するとのことorz そして今は2017/12月....(笑)

これで公式パッケージを利用したSpotifyの実行は不可能となったっぽいです。

さて、どうしたものか...

代替手段?

別記事で書こうと思いますが、"mopidy"というMPDのようなものがあるようで!

コチラからならできそうな気がします! to be continued....

Raspberry Pi 3 Model B

Raspberry PiでAmazon Dash Buttonの入力を受け取る

こんにちは。たねやつです。

Amazonのサイバーマンデーでは皆さん何を購入されたでしょうか?VRとかほしかったんですが、 あんまり安くなっていなかったのでスルーでした笑。

今回のサイバーマンデーではAmazon Dash Buttonが250円になっていたので、 ノリと好奇心で2個購入してみました。そして一個は正しくない使い方で(´ω`)

Dash Buttonを押した時にRaspberry Pi上で「押した」ということを受け取れるようにします。 そこからIRKitでシーリングライトを操作したりといろいろできるようになります。

できたこと

こんな感じでボタンを押したらnodejs上でスクリプトを実行できます。

とりあえずの動作確認です。シーリングライトにリモコンあるからね...(´ω`)

使うもの

  • Raspberry Pi 3 (Raspbian 9.2)
  • Amazon Dash Button (なんでもおk! CyberMondayで250円/個で購入)

Node.jsを導入

# apt-get install nodejs npm
$ nodejs

> console.log('hogehoge');
hogehoge
undefined

何か出力できればインストールは完了です。末のundefinedは不明。 undefinedはconsole.log()の戻り値のundefinedという値(?)。 nullとはまた異なった種類の値らしいです、javascriptはよく知りません笑。

node-dash-buttonの導入

node-dash-buttonのreandmeに設定方法があるのでそれを参考にする。

node-dash-button

必要ファイルのインストール

libpcap-devというパッケージが必須です。

# apt-get install libpcap-dev

npmからnode-dash-buttonをインストール。

$ npm install node-dash-button

node-gyp rebuild
/bin/sh: 1: node: not found
gyp: Call to 'node -e "require('nan')"' returned exit status 127 while in binding.gyp. while trying to load binding.gyp
gyp ERR! configure error 
gyp ERR! stack Error: gyp failed with exit code: 1

ビルド中にエラー発生。

ココ に書いてある曰く、node-gyp内部でnodejsを実行する際には'node'(/usr/bin/node)コマンドでnode.jsを 実行しているのだが、Debianでは別のパッケージとの名前の衝突を避けるため nodejsというコマンド名になっている。

これを解決するためにはnodeコマンドが使われていないことを確認 (which nodeで何も表示されないことを確認)して、 シンボリックリンクを作成してしまえばいいようです。

$ cd /usr/bin
$ sudo ln -s nodejs node

$ node 
> ... ←nodejsではなくnodeコマンドが使えることを確認

これでnpm install node-dash-buttonを再実行すると上手く行けました!

Amazon Dash Buttonの初期化

Amazon準拠の手順に沿って進めていくが注文する商品の選択は行わない。

スマホのアプリから設定を行う。左上のハンバーガーボタン > アカウントサービス > Dash端末 > 新しい端末をセットアップ (Androidの場合)

設定を進めていき、以下の部分で右上のXを押して設定を中断してください。

f:id:ibuquicallig:20171214182748p:plainf:id:ibuquicallig:20171214182742p:plain

Dash端末 > 端末を管理 より、新たに追加されていることが確認できます。 (商品を設定していないので警告は表示されたまま、、、)

node-dash-buttonでボタンを探す。

以下のコマンドでDash ButtonのMACアドレスを探す。

$ cd node_modules/node-dash-button/bin ←node_modulesのある場所はnpm install node-dash-buttonを行った所。
$ sudo node ./findbutton ←root権限で実行する必要アリ

Watching for arp & udp requests on your local network, please try to press your dash now
Dash buttons should appear as manufactured by 'Amazon Technologies Inc.' 
Possible dash hardware address detected: xx:xx:xx:xx:xx:xx Manufacturer: unknown Protocol: udp
Possible dash hardware address detected: xx:xx:xx:xx:xx:xx Manufacturer: unknown Protocol: arp
Possible dash hardware address detected: xx:xx:xx:xx:xx:xx Manufacturer: unknown Protocol: arp
Possible dash hardware address detected: yy:yy:yy:yy:yy:yy Manufacturer: BUFFALO.INC Protocol: arp

Dash Buttonを押すとDash ButtonのMACアドレスと思しきものが表示されます。

node-dash-buttonのinstructionには「Manufacturer: Amazon Technologies Inc.と表示されるはず」 とありますが、Unknownと表示されている(初代Dash Buttonじゃないから?)。

何度か押してみて正しいMACアドレスを特定してください。

Manufacturerの部分がIntelだったりBUFFALOだったりするものはDash Buttonではないです。

テスト用スクリプトを書いてみる

公式を参考に以下のようなスクリプトを作成します。 とりあえずfindbuttonと同じディレクトリで(何でもいいのですが) test.jsとして作成します。

#!/usr/bin/env node

var dash_button = require("node-dash-button");
var dash = dash_button("xx:xx:xx:xx:xx:xx", null, null, null);

console.log("awaiting...");

dash.on("detected", function () {
    console.log("button clicked!");
    }
);

xx:xx:xx:xx:xx:xxの部分には先程取得したDash ButtonのMACアドレスを 入れます。それ以外の引数はとりあえずnullで(デフォルト値を使用)。

作成したファイルに実行権限をつけて(chmod 775 test.js)、sudo node test.jsで実行します。 ここでもroot権限で実行しないとエラーとなりますのでご注意を。

実行してDash Buttonを押してみると以下のようになると思います。

$ sudo node test.js
awaiting...
button clicked! 

無事にボタンを押したという情報をRaspberry Pi上で受け取ることができました!

うまいこと行かない場合はもしかしたらDash ButtonのMACアドレスが間違っているのかもしれません。。。

ボタンを押してから5秒ぐらいの遅延がありますが、仕方ないでしょう(_)

応用(?)

ここまでで、なんとかDash Buttonを押すというイベントをRaspberry Pi上で取得することができました。

取得さえできれば、あとはこっちのターンでシェルスクリプトを実行したり、PHPの実行やSQL文の発行も Raspberry Pi上でできることは自由自在です(多分)。

冒頭のライトをつけるなどの細かい内容はまた後日追加していきます!(´ε` )

Dash Buttonの通知の設定

デフォルトの状態だとDash Buttonを押す度に、Amazonのアプリを入れている スマホに通知が飛んで鬱陶しいので通知を消したいとおもいます。

アプリの設定の[端末の管理]より通知を切ることができます。

Dash Buttonごとに設定できる(っぽい)ので、ちゃんとしたDash Buttonとして 使いたいDash Buttonは通知を飛ばし続けることも可能かと(´ω`)

詰まった点...

libcap-devを間違えてインストール

本当に初歩的なミスなのですが、node-dash-buttonをインストールする際の、 必須パッケージにlibpcap-devがあるのですが、間違えてlibcap-dev をインストールしていました...

npm install node-dash-buttonの段階でビルドエラーとなります。 fatal error: pcap/pcap.h: No such file or directory

apt-get install libpcap-devと間違えさえしなければこの点ではエラーと なりません。libcap-devが存在してさえいなければ...笑

最後に

Amazon Dash Buttonはめちゃくちゃいい匂いがする。新築の家みたいな(´ω`)

Raspberry Piを複数台動かすための周辺機器紹介

079A9468.jpg

自宅で動かしているRaspberry Piの周辺機器を紹介しました。

本体

Raspberry Pi 2 Model B

Raspberry Pi 3 MODEL B

2のほうが、無線モジュールを搭載していない点や、CPUクロックが若干低いため消費電力が低い。無線やBluetoothを使わなかったり、マシンパワーを極力抑えて、消費電力を抑えたいという目的(バッテリーで駆動させるなど)の場合旧モデルの2がおススメ。

2でもMinecraftのマルチサーバは割りと快適に動作しているので、全然2でいいんじゃないかな(笑

下記の記事のように、基盤に元からあいている穴にネジを通して、2段ベッドのようにして省スペース化を図っています。

www.taneyats.com


電源

Anker PowerPort 6 (60W 6ポート USB急速充電器)

私が実際に使用しているのは、PowerPort 6 Liteのほうですが、すでに生産完了している疑惑。Amazonには上位機種のLiteでないもののみがあります。相違点は、急速充電ポートの数(3 → 6に増加)ですが、特にRaspberry Piを使う上では関係ありません。

この製品が意外と便利で、家に3台もあります(笑)。 ひとつはこのRaspberry Piとその周辺機器用で、もうひとつは枕元のスマホなど充電用、もうひとつはPC付近での充電用および、旅行にもって行く用!!これひとつ持っていくとかなり重宝されます!なにせホテルとか旅館ってコンセントが少ないですからね...

あわせてUSBケーブルとかも必要かと思いますが、コチラは100均で売っているようなもので構いません。むしろ長さが0.5mとちょうどいいものが売っているのでそれを買わない手は無いでしょう。 最近の100均は毛エーぶる周りが天国のように充実していますよね。近所のSeriaなんかはType-CのUSBまで売っていて、Nexus 5X使いとしては本当に助かってます...


スイッチハブ

TP-Link スイッチングハブ 5ポート 10/100Mbps プラスチック筺体 TL-SF1005D

特に考えずに一番安いものを購入。後から気づいてPowerPortと配色がまったく同じ! ものすごい偶然ですね(笑)それかどっちかがパクッたのか...

使い勝手は可もなく不可もなく...特に問題が起きていないのでいいんじゃないかな。。 欲を言えば、電源はUSBケーブルにしてくれたらさらにまとまったと思う。(付属はAC電源)


ほか周辺機器

IRKit - iPhone,iPadを使って外出先からエアコン等の家電を操作できる学習リモコン

いわずと知れたIRKit。これを使えば、出先からエアコンの電源を入れたり、リモコンが見つからないときに変わりにLEDシーリングライトを消灯したりできます。 Raspiにクーロンを仕込んでおいて、平日の昼間に全家電に電源オフ信号を飛ばして消し忘れ防止とかもできそうですね。


サンワサプライ USBスピーカー ブラック MM-SPU6BK

Open JTalkなどの音声を出力するために導入。USB刺してそのまま使えたような希ガス。


iBUFFALO ツメの折れないLANケーブル UTP Cat6a ストレート フラットタイプ 0.5m
複数のLANケーブルをまとめるにはフラットタイプのものがまとめやすいです。輪ゴムではなく100均で売っている女性用の髪をまとめるためのゴムが見た目もいいと思います。 男性には購入のハードルが高いかもしれませんが、そこは我慢です(笑)

OSOYOO センサーモジュールセット
本当はDHT11という温度・湿度を測定するためのセンサーがほしいのですが、単品で買うと高いのであえてこのようなセット品を購入しました。特に問題なく動いています。

ジャンパーワイヤも十分数ついてくるのであとはブレッドボードさえ買えば温度の測定がRaspberry Piで可能です。

(記事は作成中。完了したら更新します。)

たまに値の取得に失敗しますがそれはソフトウェア側で対処可能なので問題ありません。


最後に

とまあこんな感じで、自宅の環境をまとめてみました。SDカードとか電子工作したものとかまだまだ紹介すべきとこはあるとは思いますが、一旦はこれだけそろっていれば複数台動かしてもコンセント周りやLANケーブルがごちゃごちゃにならないのではと思います。

Raspberry Piでできること、やったことまとめ (随時更新)

079A9455.jpg

何のためのページ?

私の行ったRasperry Piに関すること諸々のページへのリンクをどんどん追加していきます。

  • 何のためのページ?
  • ハードウェア周り
    • 複数台運用
    • Raspi + Amazon Dash Button
    • Raspi + IRKit
  • ソフトウェア周り
    • Spotify
    • Open JTalk
  • WEBアプリケーション
  • その他
続きを読む

Raspberry Piを二段ベッド的に積み重ねる

079A9452.jpg

  • 概要
  • 材料
  • 手順
  • 完成
  • 最後に

概要

家にはRaspberry Piが二匹います。
ひとつは勉強用で今はNAS担当になっているPi 2 Model Bと、
スマートホーム担当([IRKit]*(http://getirkit.com/)の制御とか)のPi 3 Model Bがいます。

現状結構適当な感じでPS4の上にポイポイ置いているだけなので、もうちょっと見栄えをよくしようと、元からあいている穴を利用して二段ベッド的に積み重ねてみました。

続きを読む