============================================================================= How to install the CloudPi(Ondo-Pi) on RasberryPi 2014/12/26 PLANEX COMMUNICATIONS INC. ============================================================================= OndoPiでできること - 温度湿度センサからリアルタイムデータを読み込んで表示する 温度湿度センサのデータをグラフ表示する データをMYSQLに10分毎に蓄積する - 赤外線LEDから赤外線コードを発光することにより、対応機器をリモート制御する - GPIOを制御しLED等をOn/Offする - USBカメラからの静止画を取り込み(インターバル撮影、動体検知)一覧表示する - シェルコマンドをリモート実行する visudo設定の変更により、sudoコマンド(sudo reboot等)の実行も可能 - (カメラ一発!の)人体感知センサを利用して侵入者検知を行う - 各種HW,SW情報を表示する - OndoPiはサンプルアプリであり、独自のセンサ組み込みなど自由にカスタマイズできる ============================================================================== インストールの準備 ============================================================================== piユーザーでログインする。 $cd 以下のコマンドでrasberry piをアップデートする。 $sudo apt-get update $sudo apt-get upgrade ============================================================================== Install i2c ============================================================================== piユーザーでログインする。 $cd $sudo nono /etc/moduleでmoduleファイルを編集し、以下の一行を追加する。 i2c-dev $sudo nano /etc/modprobe.d/raspi-blacklist.confでraspi-backlist.confファイルを編集し、以下の一行をコメントアウトする。 # blacklist i2c-bcm2708 以上の変更が終了したら、変更を反映するために再起動する。 $sudo apt-get install i2c-toolsとして、i2c-toolsをインストールする。 (i2cデバイスを接続している場合は、sudo i2cdetect -y 1でデバイスの確認を行う) (i2cデバイスを接続している場合は、sudo i2cdump -y 1 0xXXで値のダンプを行う) ================================================================================ Install hut21 driver (スイッチサイエンス社製Rasberry Pi環境センサモジュールの温湿度センサHUT21を 接続している場合、無い場合はスキップ) ================================================================================ piユーザーでログインする。 $cd $mkdir hut21 $cd hut21 (以下、スイッチサイエンス社製ドライバのドキュメントを参考にしてインストールしてください。インストール後、 $sudo ruby /home/pi/hut21/ondo.rb で温度、湿度が正しく表示されるか確認してください。(例:"23.5 改行 24.2") ================================================================================ Install am2321 driver (PLANEX標準回路の温湿度センサAM2321を接続している場合、無い場合はスキップ) ================================================================================ piユーザーでログインする。 $cd $git clone git://github.com/takagi/am2321で、ドライバのソースをダウンロードする。 $cd am2321 $nano am2321.cでソースコードを一行編集する。 #define I2C_DEVICE "/dev/i2c-0" -> "/dev/i2c-1" $gcc am2321.c -o am2321でコンパイルする。 $sudo cp am2321 /usr/local/bin/am2321で実行ファイルをコピーする。 $sudo chmod 755 /usr/local/bin/am2321で実行属性をつける。 $am2321 で温度、湿度が正しく表示されるか確認する。(例:"23.5 24.2") ================================================================================ Install wirlingPi (GPIOを利用する場合) ================================================================================ piユーザーでログインする。 $cd $git clone git://git.drogon.net/wiringPiで、ドライバのソースをダウンロードする(*)。 $cd wiringPi $./build でコンパイル、インストールする。 注(*): 2度目以降は以下の方法で、ダウンロードする $cd wiringPi $git pull origin ================================================================================ Install lirc (PLANEX標準回路の赤外線入出力LEDを接続している場合、無い場合はスキップ) ================================================================================ piユーザーでログインする。 $cd $sudo apt-get install lircでlircをインストールする。 $sudo nano /etc/modulesでmodulesファイルを編集し、以下の2行を追加する。 lirc_dev lirc_rpi gpio_in_pin=21 gpio_out_pin=19 $sudo nano /etc/lirc/hardware.confでhardware.confファイルを編集し、以下の3行を変更する。 DRIVER="default" DEVICE="/dev/lirc0" MODULES="lirc_rpi" リモコンコードの設定については、OndoPiをブラウザで開いた後「リモコン」-「リモコン登録」を参照してください。 ================================================================================ Instal apache, php, mysql (OndoPiが動作するための、webサーバー、データベースを準備する) ================================================================================ piユーザーでログインする。 $cd $sudo apt-get install apache2でapachをインストールする。 $sudo apt-get install php5でphpをインストールする。 $sudo apt-get install mysql-serverでmysql-serverをインストールする。 $sudo apt-get install php5-mysqlでphp5-mysqlをインストールする。 $sudo apt-get install phpmyadminでphpmyadminをインストールする。 エラーが発生した場合は、$sudo apt-get updateと$sudo apt-get upgradeを再度実行する。 ================================================================================ Install Ondo-pi Sample App (OndoPi本体をインストールする) ================================================================================ piユーザーでログインする。 $cd ondopi_v***.tar.gzをダウンロードする。 $tar zxvf ondopi_v***.tar.gzで解凍する。 $sudo cp -r ~/ondopi/www/* /var/www でコピーする。 ================================================================================ Setup database ================================================================================ piユーザーでログインする。 $cd ~/ondopi $cd mysql $mysql -u root -p Enter password: ←mysqlに設定したパスワード Create Database cloud_pi;でデータベースを作成する mysql> Create Database cloud_pi; Query OK, 1 row affected (0.00 sec) Grant Select,Insert,Update,Delete On cloud_pi.* To cloud_pi@localhost Identified by 'cloud_pi';でアプリ用権限を作成する。 mysql> Grant Select,Insert,Update,Delete On cloud_pi.* To cloud_pi@localhost Identified by 'cloud_pi'; Query OK, 0 rows affected (0.00 sec) Flush Privileges;でアプリ用権限を作成する。 mysql> Flush Privileges; Query OK, 0 rows affected (0.01 sec) mysql>quit Bye mysql -u 管理ユーザ名 -p cloud_pi< cloud_pi.sql でデーターベースを初期化する(管理ユーザ名は、上記で設定したcloud_piユーザではありません) $ mysql -u root -p cloud_pi< cloud_pi.sql Enter password: ←mysqlに設定したパスワード ================================================================================ Setup cron (センサのデータを定期的にデータベースに追加する。画像データを削除する) ================================================================================ piユーザーでログインする。 $cd ~/ondopi $cd cron $chmod 755 regist.sh $sudo crontab -eでcrontabを編集し、一行追加する。 */10 * * * * /home/pi/ondopi/cron/regist.sh $php regist.phpを実行してエラーが出ないことを確認する。 $sh regist.shを実行してエラーが出ないことを確認する。 注: regist.shはセンサからMYSQLへのデータの取り込みを行います。標準の設定は10分ごと ですが、間隔を変えたい場合は、"*/10 * * * *" を変更してください。 スイッチサイエンス社製Rasberry Pi環境センサモジュールの温湿度センサHUT21用の rubyドライバを使用している場合、トップ画面で表示されるのは、cronで取り込んだ 10分ごとの値となります。より短い更新が必要な場合は、取り込みの間隔を短くしてください。 regist.phpは30日以上経過した温度湿度データと、3日以上経過したUSB Camera画像および人体感知画像 ファイルを自動的に削除します。この日数を変更したい場合は、regist.php中の以下を変更してください。 define('TEMP_DELETE_DAY', "-30 day"); define('MOTION_DELETE_DAY', "-3 day"); define('IPPATU_DELETE_DAY', "-3 day"); ================================================================================ Install Flotr2 (グラフを描くjavascriptを組み込む) ================================================================================ piユーザーでログインする。 $cd $git clone git://github.com/HumbleSoftware/Flotr2でFlotr2をダウンロードする $sudo mkdir /var/www/js (jsディレクトリが無い場合) $sudo cp ./Flotr2/flotr2.js /var/www/js/ $sudo cp ./Flotr2/flotr2.min.js /var/www/js/ $sudo cp ./Flotr2/flotr2.ie.min.js /var/www/js/ ================================================================================ Ondo-piの起動 ================================================================================ 全てインストールが終了したら、RasberryPiを再起動する。 同一LAN内から接続している場合は、クライアント上のブラウザにhttp://(RaspBerry piのipアドレス)/index.htmlを入力する。 外部から接続する場合は、クライアントでCloudPiアプリを起動し、接続するRaspBerryPiを選択してから、 アプリの指示に従うか、ブラウザにhttp://127.0.0.1:8080を入力する。 ================================================================================ トップページ ================================================================================ トップページの表示は、温度、湿度、リモコン、外気温となります。 温度湿度センサをインストールしていない場合、カッコ付でRaspBerryPiのチップ温度を表示します。例:"(33.6)" 外気温の初期値はTokyoのデータです。お住まいの地域に変更する場合は、/var/www/index.phpの define ("CITY_NAME", "Tokyo") ---> "Kobe"; define ("CITY_CODE", "1850147") ---> "185971"; のように変更してください。city codeはパソコン等のブラウザからOpenWeatherMapの ページを開き、Your city nameに都市名を入れ、サーチするとアドレスバーの最後に表示されます ================================================================================ Install motion (USBカメラを静止画撮影に使う場合、無い場合はスキップ。使用するブラウザにより制限あり) ================================================================================ piユーザーでログインする。 $cd $sudo apt-get install motionでmotionをインストールする。 $sudo nano /etc/motion/motion.confでmotion.confファイルを以下のように編集する daemon off -> daemon on webcam_localhost on -> webcam_localhost off $sudo nano /etc/default/motionでmotionファイルを以下のように編集する。 start_motion_daemon=no -> start_motion_daemon=yes 撮影した静止画をOndo-Pi(ブラウザ)から見るために、続けて以下の作業を行う。 $sudo mkdir /var/www/motion (motionディレクトリが無い場合) $sudo chown motion /var/www/motion $sudo chgrp motion /var/www/motion $sudo chmod 777 /var/www/motion $sudo nano /etc/motion/motion.conf でmotion.confファイルを以下のように編集する target_dir /tmp/motion → target_dir /var/www/motion snapshot_interval 0 → 600 (インターバル撮影を600秒間隔で行う場合) $sudo service motion start でmotionを開始するか、再起動する。 注:クライアントによって、motionの静止画の表示と動画の再生に制限があります。 Android: 静止画、動画共に再生可能です。 ラスパイポート8081をスマホポート8081にマッピングし、ブラウザからhttp://127.0.0.1:8081にアクセスすることで動画を再生できます。 iOS: 静止画はOndoPi経由でブラウザ中で表示できます。 Safariではmotionの動画は再生できません。(別途mjpg-streamerを紹介予定です) Windows: 静止画、動画共に再生可能です。 ラスパイポート8081をスマホポート8081にマッピングし、ブラウザからhttp://127.0.0.1:8081にアクセスすることで動画を再生できます。 MAC: 静止画はOndoPi経由でブラウザ中で表示できます。 Safariではmotionの動画は再生できません。(別途mjpg-streamerを紹介予定です) motionを停止するには、$sudo service motion stopを実行します。 RasberryPiインストール済みデバイスドライバでサポートされないUSBカメラは動作しません。 /var/www/motionディレクトリ中の3日以上経過した画像は自動的に削除されます。 ================================================================================ Install 人体感知センサ (Planex社製カメラ一発!をお持ちの場合、無い場合はスキップ。) ================================================================================ piユーザーでログインする。 $cd $sudo apt-get install vsftpdでvsftpdをインストールする。 $sudo service vsftpd stopl $sudo nano /etc/vsfpd.confでvsftpd.confファイルを編集する。 anonymous_enable=YES → anonymous_enable=NO #local_enable=YES → local_enable=YES #write_enable=YES → write_enable=YES #local_unmask=022 → local_unmask=022 #chroot_local_user=YES → chroot_local_user=YES #chroot_list_file=/etc/vsftpd.chroot_list → chroot_list_file=/etc/vsftpd.chroot_list 続けて、vsftpd.confファイルの最後に以下を追加する。 # OndoPi: Allow the Camera-Ippatu to write human detected file to /var/www/ippatu local_root=/var/www/ippatu $sudo nano /etc/vsftpd.chroot_listでvsftpfd.chroot_listファイルを作成し、piユーザを追加する。 pi (一行追加) $sudo service vsftpd restartでftpを再起動する。 続けて以下の作業を行う。 $sudo mkdir /var/www/ippatu (ippatuディレクトリが無い場合) $sudo chown pi /var/www/ippatu $sudo chgrp pi /var/www/ippatu $sudo chmod 777 /var/www/ippatu ブラウザからOndopiを開き、メニューから「CloudPiについて」を選び、RaspBerryPiのIPアドレスをメモする。 FTPが使える場合は、RaspberryPiのIPアドレス,pi,piのパスワードで、/var/www/ippatuディレクトリにファイルの転送ができるか確認する。 -----ここからはカメラ一発!に対する設定です---- 同一LAN上のブラウザにカメラ一発!のIPアドレスを入力し、カメラ一発!の設定画面を表示する(カメラ一発!のIPアドレスは、スマホアプリからカメラの設定画面を開き、「カメラ設定」メニューで調べることができます) 「スケジュール」「Email/FTPアラーム」を開く。 「人体感知」を選択し、「FTPサーバーへ送信」にチェックを入れる。 「FTPサーバー」にRaspberryPiのIPアドレスを入れる。(例:192.168.3.123) 「ユーザー名」にpi、「パスワード」にpiのパスワードを入れる。 「リモートフォルダ」はブランクのままにする。 「設定」ボタンを押して設定する。これで、人体感知センサが感知すると、その時撮影した画像がRaspBerryPiにftp転送されます。 注:USBカメラの場合と同じく、/var/www/ippatuディレクトリ中の3日以上経過した画像は自動的に削除されます。 FTPの設定は必要最小限のものです。カメラ以外から使用する場合は、使用目的に合わせた設定を行ってください。 ================================================================================ 参考 インストールディレクトリ一覧 ================================================================================ /home/pi/cloudpi/p2ptunnel/ クラウドパイサーバープログラム /home/pi/hut21/ondo.rb hut21温度センサドライバ /home/pi/am2321/ am2321温度センサドライバ(ソース) /home/pi/ondopi/cron/ ondopi-cronファイル /mysql/ ondopi-mysql設定ファイル /www/ ondopi-wwwファイル(/var/www/のマスター) /var/www/index.html ブラウザトップページ index.php メインページ style.css スタイルシート /camera/ カメラページ /images/ 画像ファイル /ippatu/ 人体感知撮影画像 /irremo/ 赤外線リモコンページ /js/ javascript /motion/ USBカメラ撮影画像 /system/ システムページ /weather/ 天気ページ 以上