2014年6月30日: ラズベリーパイで手のひらガジェット入門

【ソリューション事業部 スミダ】
題名はスイーツでスマホ・タブレットを操作する。という意味ではございません。
久しぶりのブログです。
かなり前からバトンを受け取っていたので、今回は技術的な事でも書いてみるか。と
20140630-4.png
こやつ(Raspberry Pi:ラズベリーパイ)を購入して、色々試した結果を・・・と思ったのですが、OSを導入したまま
放置してしまっていたのを二日前に思い出し、取り急ぎ記事に出来るまで奮闘してみた結果を書いてみます。
かなりマニアックな記事となっておりますので、興味の無い方は回れ右をして頂ければと思います


方々で書かれていますが、このRaspberry Pi、これを元に
・家庭内LANにメディアセンター、ファイルサーバーとして運用
・タッチディスプレイを付けてオリジナルタブレットを作成
・温度センサーを取り付けて一定温度になった時点でエアコンをON!
などなど
用途はアイデア次第、ギークな方にはたまらないブツとなっております。
20140630-3.png
Raspberry PIのスペックは以下になります。
CPU: 700 MHz / ARM1176JZF-S
RAM: 512MB
外部接続: HDMI, USB×2, イーサネット
ストレージ: SDメモリーカード / MMC / SDIO カードスロット
昔型遅れPCにLinuxを入れて遊んでいたのですが、そのころのPCと比較すると、かなり高スペックです。(メモリ64MBのマシンにLAMP環境を作る等無茶なことをしていました)
しかも¥3000弱(本体のみ)。。。イイ時代になったものです。
———————————————————————–
■用意するもの
・class6以上、容量8GB以上のSDカード
・HDMIケーブル
・有線マウス&キーボード
・LANケーブル
・無線LANドングル(無線化する場合)
・500mA以上の電源ケーブル
■OSのインストール
色々選択肢はありますが、今回は情報の多いdebianベースのraspbian(ラズビアン)を採用しました。
http://www.raspberrypi.org/downloads/
上記URLから『NOOBS(オフライン用)』をDLしフォーマット済みのSDカードにコピーします。
Raspberry PIにマウス、キーボード、HDMIケーブル、SDカード、LANケーブルをセットし、電源ケーブルを差し込みます
20140630-1.png
※すべて接続した状態
後はインストーラーに従ってインストール作業を行います。
20140630-2.png
(GUIも動きます)
———————————————————————–
■カメラを接続して監視カメラを作ってみる■
※下記からはコンソールにて作業を行います。(リモートアクセス出来る状態で行います)
キーボード、マウスをはずし、USBカメラを接続します。
ある程度メジャー?なメーカーであれば特に設定は必要なく認識されると思います。
(今回はlogicool Webcam C200を利用)
・パッケージの更新とmotionの導入

root@raspberrypi:~# apt-get update
root@raspberrypi:~# apt-get -y upgrade
root@raspberrypi:~# apt-get -y install motion

・motionの起動

root@raspberrypi:~# service motion start

motionを起動すると、カメラの前で「物を動かす」、「カメラの前を通り過ぎる」などをすると、/tmp/motionへ画像と動画が保存されます。
20140630-stac.jpg
———————————————————————–
■さらに動画を自動的にdropboxへ保存してみる■
・dropbox接続用App Key、App secretの取得
https://www.dropbox.com/developers/apps
※当たり前ですが、dropboxアカウントが必要です。
20140630-6.png
TYPE: Dropbox API app
→APIを叩いて情報を保存します
What type of data does your app need to store on Dropbox?: Files and datastores
→ファイルとデータストア両方にアクセスします
Can your app be limited to its own folder?: No
→自身がオーナーのフォルダのみにアクセス権限を与えるか(共有フォルダへ保存する場合はNoを)
What type of files does your app need access to?: All file types
→扱うファイルの種類を制限するか(面倒なのですべての種類とした)
20140630-5.png
メールでの認証をクリアすれば上記の様にApp Key、App secretが発行されます。
・Dropbox-Uploaderのダウンロード
(有志によって作られたコマンドラインからdropbox APIを操作するためのシェルスクリプト)

pi@raspberrypi ~ $ cd ~
pi@raspberrypi ~ $ wget https://raw.github.com/andreafabrizi/Dropbox-Uploader/master/dropbox_uploader.sh

DL出来たら実行権限を与えてシェルを実行

pi@raspberrypi ~ $ ./dropbox_uploader.sh
./dropbox_uploader.sh
This is the first time you run this script.
1) Open the following URL in your Browser, and log in using your account: https://www2.dropbox.com/developers/apps
2) Click on "Create App", then select "Dropbox API app"
3) Select "Files and datastores"
4) Now go on with the configuration, choosing the app permissions and access restrictions to your DropBox folder
5) Enter the "App Name" that you prefer (e.g. MyUploader251081870423116)
Now, click on the "Create App" button.
When your new App is successfully created, please type the
App Key, App Secret and the Permission type shown in the confirmation page:
# App key: [発行されたApp Keyを入力]
# App secret: [発行されたApp secretを入力]
# Permission type, App folder or Full Dropbox [a/f]: f
> App key is , App secret is  and Access level is Full Dropbox. Looks ok? [y/n]: y
> Token request... OK
Please open the following URL in your browser, and allow Dropbox Uploader
to access your DropBox folder:
--> https://www2.dropbox.com/1/oauth/authorize?oauth_token=************
Press enter when done...

上記の様に途中でシェルが入力待ちになるので、表示されている
https://www2.dropbox.com/1/oauth/authorize?oauth_token=********
へWebアクセスをします。※OAuth認証
その後、Enterキーを押すとOAuth認証が完了します。

> Access Token request... OK
Setup completed!

・motionの動画保存イベントをフック

root@raspberrypi:~# vi /etc/motion/motion.conf
# Command to be executed when a movie file (.mpg|.avi) is closed. (default: none)
# To give the filename as an argument to a command append it with %f
; on_movie_end value
# 下記のコメントを外して、シェルのパスを指定します。
# %fは保存が終わった動画のフルパスが渡されます
on_movie_end "/home/pi/motion/on_movie_end.sh %f"

・Dropbox-Uploaderを実行するためのシェルの作成

pi@raspberrypi ~ $ vi /home/pi/motion/on_movie_end.sh
#!/bin/sh
FN=$1
DROPBOX=/motion/
UPFILE=${FN%.*}".avi"
DROPBOXFILE=${DROPBOX}${UPFILE##*/}
/home/watcher/dropbox_uploader.sh upload $UPFILE $DROPBOXFILE
rm $UPFILE

motionのフックイベントはユーザー名「motion」で実行されるため、権限を変更しておく

pi@raspberrypi ~ $ chmod -R 707 motion/

以上で設定終了です。
motionを起動して、カメラに対して動きを付けると自身のdropboxアカウントへ自動的に保存されます。
動きがあるときだけ保存されるので、赤ちゃんの寝起きを監視したり
自分の寝相を確認(笑)するのにも良いかと思います。
———————————————————————–
Raspberry PIの持つ魅力、少しは伝わりましたか?
現在ソリューションの一部でこれを使って(個人的に)遊んでいますので、興味のある方は
お声掛けくださいませ。
ご精読ありがとうございましたm(_ _)m

カテゴリー:
| 投稿者:
DAブログ | DAホールディングス(エクスショップ&ガーデンプラス)

コメント