Raspberry Piで遊びつつ技術習得をするまとめ( Node.js, Socket.IO, Samba, カメラモジュール, Dropbox)
目的
Raspberry Piで遊びつつ技術習得をする!買うならRaspberry Pi Type B 512MBの奴が使いやすくていいっすよ。
習得する技術
1. Node.jsでウェブサーバーを立てる
2. Socket.IOでローカルチャットサーバーを立てる
3. Sambaでファイル共有サーバーを立てる
4. カメラモジュールで監視システムを作る
5. デバイスのGPIO制御をブラウザから実行してみる
1. Node.jsでウェブサーバーを立てる
まずはNode.jsのインストール。
下記リンクにある方法でNodeをインストールします。
⇒ 【Node.js】nvmをインストールして設定するまでの方法
【注意】
- Raspberry Piの貧弱CPUでビルドするので2h近く掛かる
- nodeの設定をターミナル起動時に毎回読み込む必要があるため、
以下を参考にして、 .bashrc等に設定スクリプトを入れる。
http://d.hatena.ne.jp/white_chi/20111101/1320097898
インストールできているかは以下で確認。
NodeでのHello worldはこんな感じにサクッと書けます。
2. Socket.IOでローカルチャットサーバーを立てる
以下のコードを実行してSocket.IOをインストール
環境設定はこれで完了したので、あとはサンプルアプリを実装して動作確認したいところ。
少し知識が必要な部分なので、こちらはdotinstallのSocket.IO入門を参照。
あとはこっちも参考にしましたね。
http://lealog.hateblo.jp/entry/2012/10/04/005326
実装コードはこんな感じ。
<サーバーサイド>
<クライアントサイド>
動作方法の一例としては、raspberry piにsshで入って以下のコマンドで実行でサーバーを立てる
raspberry piと同一のLANに接続されたPCからブラウザで以下のURLにアクセス
【注意】
IPアドレスは実行環境に合わせて変更する必要があります。
この辺自動取得しておくべきところですが面倒なのでハードコーディングしてしまっています。。
Sambaのインストール
Sambaの設定
以下の設定を追記
# 末尾に追加 [share] path=/home/pi/share read only=no1 browsable=yes guest ok = yes force user = pi
共有ディレクトリを作成
sambaが自動起動するように設定
sambaのインストール:
http://j-caw.co.jp/blog/?p=1046
共有ディレクトリへのアクセス:
http://junkroom2cyberrobotics.blogspot.jp/2013/01/raspberry-pi-windows-samba.html
4. カメラモジュールで監視システムを作る
【カメラモジュールの設定】
監視システムの構成は以下のとおり。- カメラモジュールをつかって画像を取得
Amazonで3000円やそこらで買えちゃいます。
買ったら以下の動画を参考にしてセットアップします。
ソフト側の設定も変更しなきゃいけないので以下を参考にして設定変更します。
http://www.rs-online.com/designspark/electronics/jpn/blog/jpn-raspberry-pi-camera-module-setup
ここまで設定できたら以下のコマンドで画像が撮れるか検証。
画像の確認方法として手っ取り早いのは、sambaで設定した共有ディレクトリ上に撮影した画像を置いて、ホストPCからエクスプローラ経由で画像を確認すると楽かも。
【cronで定期的にタスクを実行する】
cron編集:
cronの表示:
cronの設定:
*/10 * * * * hogehoge.sh # 10分に1回実行
00 * * * * hogehoge.sh # 1時間に1回、毎時00分に実行 45 23 * * * hogehoge.sh # 1日1回、毎日23時45分に実行 |
あとは、hogehoge.shにカメラ動作コマンドをぶち込んで実行すれば定期的に写真が取れるようになります。
【参考リンク】
http://www.limemo.net/blog/2013/07/%E3%83%A9%E3%82%BA%E3%83%99%E3%83%AA%E3%83%BC%E3%83%91%E3%82%A4%E3%81%AEcron%E3%81%A7%E3%82%B7%E3%82%A7%E3%83%AB%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%82%92%E5%8B%95%E3%81%8B%E3%81%99.html
【Dropboxにアップロード】
http://daisukeblog.com/?p=2067
5. デバイスのGPIO制御をブラウザから実行してみる
後で書きます。
コメント
コメントを投稿