Raspberry Pi+irMagicianでスマホからエアコンをON/OFFする。
Raspberry Pi+irMagicianでスマホからエアコンをON/OFFする。
1.irMagicianの入手
(1)大宮技研製品ページで購入
http://www.omiya-giken.com/?page_id=959
(2)秋葉原の実店舗で購入
①秋葉原のITプラザ(http://www.itplaza.co.jp/)
②RTアイル(http://www.rt-shop.jp)
※irMagician は大宮技研(http://www.omiya-giken.com/)の開発による学習型赤外線リモコン・ボード。
※完成品(税込、送料込:3,980円)を推奨、半田付けに自信があればキット(税込、送料込:1,980円)購入も可。
※irMagicianを接続するためのmciroUSBケーブルも用意しておくこと。
2.Raspberry Piの環境設定
◎net buffaloさんのページを参照のこと。
http://netbuffalo.doorblog.jp/archives/4872290.html
(1)カーネル・パラメーターを変更してシリアル・インターフェースの割り当てを解除
①cmdline.txtの変更
# nano /boot/cmdline.txt
コンソール用として、ttyAMA0を設定している箇所(console=ttyAMA0,115200 kgdboc=ttyAMA0,115200)を削除する。
##dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
②inittabを編集(inittabが無ければ編集不要)
# nano /etc/inittab
Pi serial lineとしてttyAMA0を設定している行をコメントアウトする。
##Spawn a getty on Raspberry Pi serial line
##T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
※Raspberry Piをリブート後にirMagicianをUSBケーブルで接続(黄色LEDが点灯)
(2)pyserialライブラリをインストール
# apt-get install python-pip(python導入済の場合はインストール不要)
# pip install pyserial
(3)リモコンの赤外線データを irMagician でキャプチャ、プレイ、jsonファイルへ保存するためのpython用スクリプト(irm.py)を入手。
※net buffaloさんのページからirm.pyをコピーして、Raspberry Piの任意のフォルダ(pi_remoconフォルダ等)にコピー
3.リモコンのキャプチャとjson形式ファイルの保存
(1)リモコンの赤外線信号をキャプチャする。
①コマンドを実行後、受光部に向かってリモコンのボタンを押す。(冷房、暖房、除湿、OFFなど)
②キャプチャに成功するとバイト数が表示される。
$ python irm.py -c
Capturing IR…
…800
(2)キャプチャした赤外線信号を発射する。
①送信部をエアコンに向けて、コマンドを実行
②エアコンが動作すればOK、動作しなければ再度キャプチャする。
$ python irm.py -p
Playing IR…
… Done !
(3)キャプチャした赤外線信号をjson形式のファイルに保存する。
$ python irm.py -s -f エアコン冷房ON.json(冷房、暖房、除湿、OFFなど)
Saving IR data to OCR05-ON.json …
… Done !
(4)保存したjsonファイルを呼び出して赤外線信号を発射する。
$ python irm.py -p -f エアコン冷房ON.json(冷房、暖房、除湿、OFFなど)
Playing IR with エアコン冷房ON.json …
… Done !
※同様の操作でTV、AMP等のjsonファイルを作成可能
4.Webサーバーの起動とWebアプリの自動起動
◎net buffaloさんのページを参照のこと。
http://netbuffalo.doorblog.jp/archives/4873455.html
(1)python Webフレームワーク”Tornado”をインストールする。
# pip install tornado
Downloading/unpacking tornado
…
Successfully installed tornado certifi backports.ssl-match-hostname
Cleaning up…
(2)RemoteIRF、RemoteIRE を GitHub からダウンロード(clone)する。
# git clone https://github.com/netbuffalo/RemoteIRF.git
# git clone https://github.com/netbuffalo/RemoteIRE.git
※gitが無い場合は、gitをインストールしてから、上記のコマンドを実行すること。
# apt-get install git-core
(3)RemoteIRFをバックグラウンドで自動起動するようにする。
①以下のシェルをコピーして、/etc/init.d/に保存する。(実行権限は755)
#!/bin/sh
# IRmagician for Web Auto Start
# ir4web.sh
### BEGIN INIT INFO
# Provides: ir4web.sh
# Required-Start: $syslog
# Required-Stop: $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: ir4web started…
### END INIT INFO
# /root/RemoteIRF/server.py Start
python /root/RemoteIRF/server.py -p ポート番号 -user ユーザー名 -passwd パスワード > /dev/null 2>&1 &
※ポート番号は任意指定(初期値は8888)
②シェルが自動起動するようにする。
# update-rc.d ir4web.sh defaults 99 1
# reboot
③リブート後、/root/RemoteIRF/server.pyが起動していることを確認する。
# ps -ef | grep /root/RemoteIRF/server.py | grep -v grep
(4)jsonファイルのコピーとWebアプリに表示
①josonファイルを指定フォルダにコピー
# cp -p /pi_remocon/*.json /root/RemoteIR/devices/エアコン/
※json形式ファイルがあれば、エアコン以外にTV、AMPなどのフォルダも作成可能。
②RemoteIREを起動してフォルダを認識させる。
$ python /root/RemoteIRE/irelement.py -s localhost -p 80
③ローカルPCのブラウザからRaspberry Piにアクセスして操作してみる。
http://192.168.x.x:8888(任意のポート番号)/remocon/login
④ユーザー名、パスワードを入力
⑤操作ページが表示される。
Remote Devices > エアコン > 動作選択 > GO!
⑥大きなスマイルアイコンが表示されれば成功!!
5.ルーターの設定(固定IP、ドメインがあればベスト。無ければDDNSを利用)
(1)ルーターにポートフォワード(napt固定)を指定する。
①ルーターにログインして以下の指定をする。
ポート番号:8888(任意のポート番号) -> ローカルIP:192.168.X.X(Raspberry Piの固定IP)
②ルーターを再起動する。
6.スマホから操作する。
(1)キャリアのネットワーク(LTE等)に接続、ブラウザからアクセスする。
①http://webサーバーURL(or WANアドレス):8888(任意のポート番号)/remocon/login
②以下、ローカルPCからアクセスした場合と同じ。