こんにちは、なかしーです。
寒くなって来ましたね。エアコンの時期です。
ということで、我が家のRaspberry Pi君を、現在のAirPlayサーバー、VPNサーバーだけでなく、リモコンサーバーにもしてみました。
ざっくり環境:
- 機器:raspberry pi B+ (Firmは最新化済)
- OS:raspbian jessie
- Framework:laravel 4.2
- HTTP:apache2 2.4
- PHP:php5.6
- DB:mysql(バージョンなんだろう?最新のやつ)
やり方は、先人達が詳しくやり方をのせてらっしゃるので、それを参考にした感じです。但し、RaspbianのJessieを使っている場合はデバイス関連の扱いがWheezyと違うので、要注意です。(ここでハマって、2回クリーンインストールした。。)
- /etc/modulesではなく/boot/config.txtを弄ります
- sudo cat /sys/kernel/debug/gpioしても、リストされません。
英語記事やらさんざん見てみましたが、結論として、日経BPさんの記事Raspberry Piをリモコンにしてエアコン制御、ロボットにも搭載が一番参考になりました。感謝。
そして、ある程度コマンドレベルでLIRCが動かせる様になったら、次は無駄にLaravelを入れてみます。(単に、MVCの書き方に慣れすぎたせいで、普通のPHPコードを書くのが億劫なだけ、、という。。)
下ごしらえ:
- sudo apt-get install at (一時ジョブ用として使う。Cronよりお手軽。)
- sudo apt-get install apache2 (入ってるかな?)
- sudo vi /etc/apache2/sites-available/000-default.conf (必要に応じてドキュメントルート変更)
- sudo vi /etc/apache2/apache2.conf (同じくドキュメントルート変更分と、AllowOverride Allにする)
- sudo a2enmod rewrite
- sudo vi /etc/apache2/ports.conf (Portを80ではなく8080とかにする)
- sudo vi /etc/apache2/sites-enabled/000-default (同じくPort変更)
- sudo service apache2 restart
- sudo apt-get install mysql-server (rootのパスワードは適宜)
- インストール確認
mysql -u root -p
select user,host,password from mysql.user;
->ユーザーが5つ表示されることを確認
- アプリ用のユーザー作成
GRANT ALL PRIVILEGES ON <DB名>.* TO <ユーザー名>@localhost IDENTIFIED BY ‘<パスワード>’ WITH GRANT OPTION;
select user,host,password from mysql.user;
->ユーザーが6つ表示されることを確認
- アプリ用のデータベース作成
CREATE DATABASE <DB名> CHARACTER SET utf8;
select host,db,user from mysql.db;
->データベースが1件表示されることを確認
- sudo apt-get install php5-mysql
- sudo apt-get install unzip (入ってれば良いです)
- sudo apt-get install curl (入ってれば良いです)
- sudo apt-get install openssl (入ってれば良いです)
- sudo apt-get install php5-mcrypt
- sudo /etc/init.d/cron start (Cronを使えるようにする)
- 家のルーターに穴を開ける。(上でapacheのポート変更した番号をRaspberry Pi君に渡してあげる)
- DDNSなどを適宜設定する。(すいません、私はここは手抜きしているので割愛)
- SSL(お金が有れば鍵を買いましょう。。無ければ野良・・?)
- リモコンコマンドの準備
- irsend SEND_ONCE XXX XXXX で扱える様に、複数登録しておく
- カンタンで良いのでスクリプトに上記を突っ込む
- 上記スクリプトをアパッチで使えるように、sudoers下部に以下エントリ追加する(XXXはスクリプトのパス)
www-data ALL=NOPASSWD:/XXXXXXXX
はい。ここまでくれば、あとは既にどこかで動かしてあるLaravelをまるごとtarで持ってくれば動きます。(というか、疲れたのでcomposerの設定するが面倒になっただけです。初Laravelの人は、、他所の記事を参考にして下さい。。。スマソ)
Laravel確認事項:
- 初回のmigrate (不要なら不要です)
- app/config以下を見直す
- appのKey要素
- databaseのDB設定
- emailの各種設定
- その他。。
- ユーザー認証をしていれば、ユーザーを再作成する(必要な分だけ)
- コマンド実行は、raspiコントローラを作って(非REST)、getIndexの引数みてswitch文でコマンド実行してからreturnするようにしてみてます。ここはそのうちもすこしマシにする予定。
ということで、わざわざここまでしてリモコンサーバー on Raspberry Pi powered by Laravel環境を作る意味は謎ですが、まぁ、やってみたかったのでやりました。
若干メモ感は半端ない記事ですが、その内ハンズオンセミナーなどやってみますかね。
今後やる事:
- リモコンコマンドのジョブスケジュール登録を可能にする(atコマンドを使う)
- 予約済みジョブを変更する(atqコマンドでリストアップして削除などを行う、Cronを編集する)
- 室温センサーで現在の室温・外気温をモニターする
- 気圧計をつけてみる
とかかなー。次回あたりは回路図など載せていきます。
では。
役に立ったよ、という方、(役に立たなかったよ!という方も)
Facebookページにいいね!して頂けると嬉しいです。
まだの方は、ビジネスクリエーターズへの会員登録をどうぞ。
会員登録は無料です。
◆◆スタッフ募集中◆◆
ビジネスクリエーターズでは、
一緒に活動するスタッフを募集中です。
今よりもちょっと成長のスピードを上げたい方は、
ぜひ一緒に活動しましょう♪