Raspberry Pi 3 で赤外線リモコン&温度センサーを試す
はじめに
RaspberryPi 3を使って室温を計測し、一定の温度になったらエアコンをON/OFFするという仕組みをつくりたくて、手軽に試せるirMagicianを使ってみました。
準備する物
- アイ・オー・データ機器 UD-RP3BP Raspberry Pi メインボード(Bluetooth、Wi-Fi対応モデル) Raspberry Pi 3 Model B+
- irMagician 温度センサー付完成品
- スマホの充電などに使用する[USBケーブル] (https://www.amazon.co.jp/gp/product/B003UIRIFO) (データ転送非対応だと使えないかもしれない)
- エアコン、テレビ、室内照明などのリモコンと照射先の機器
前提条件
- RaspberryPi 3 model B に CentOS7をインストール のセットアップが完了していることとします。
参考情報
- https://itdecoboconikki.com/2017/05/01/raspberry-pi-irmagician/
- http://www.omiya-giken.com/?page_id=889
- https://www.liquidweb.com/kb/how-to-install-pip-on-centos-7/
- http://netbuffalo.doorblog.jp/archives/4930959.html
irMagicianセットアップ
irMagicianをRaspberryPi 3 に USB ケーブルで接続します。
デバイスドライバのインストールなど不要で、挿すのみで認識します。
黄色LEDが点滅すれば認識されています。
/dev 以下に ttyACM0 が存在することでも確認できます。
# ls -l /dev/ttyACM0
もし、認識しない場合は、USBケーブルを挿し直してみましょう。
制御プログラム
制御プログラムを動かすために、python-pipとpyserialをインストールします。
# curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"
# python get-pip.py
# pip install pyserial
制御プログラムを取得するために、gitをインストールします。
# yum install git -y
制御プログラムを git clone で取得します。
$ git clone https://github.com/netbuffalo/irmcli.git
制御プログラムのディレクトリに移動します。
$ cd irmcli
赤外線センサーの学習
コマンドを実行します。
ここでは、室内照明のリモコンで点灯ボタンを押した場合の例を記載します。
Capturing IR...
と出力されたら、センサー部に向けてリモコンの点灯ボタンを押します。
学習すると... 134
や...132
などと出力されます。
失敗した場合やタイムアウトした場合は別のコードが出力されるので、再度コマンドを実行します。
$ sudo python irmcli.py -c
Capturing IR...
... 134
学習した赤外線データをJSONファイルに出力します。
$ sudo python irmcli.py -s -f light_on.json
Saving IR data to light_on.json ...
Done !
学習した赤外線データを、室内照明に発信します。
点灯すれば成功です。
$ sudo python irmcli.py -p -f light_on.json
Playing IR with light_on.json ...
... Done !
同様に、消灯や明るさ変更などのボタン操作を学習させ、それぞれのJSONファイルに保存することで、cron やプログラムからの呼び出しで様々な機器を操作することが可能です。
エアコンのON/OFF、テレビのON/OFFやチャンネル切替ができました。
試したところ、3,4m 程度離れた機器に赤外線データを発信できました。
温度センサー
コマンドを実行します。
irMagician の温度センサーが基板に接しているため、おそらく基板の熱の影響で気温は測れないようです。
周囲の温度と +10℃ 程度の誤差が生じます。
温度にあわせてエアコンを調整できないかと考えていたのでちょっと残念。
$ sudo python irmcli.py -t
Temperature: 39.3
irMagician コマンドパラメータ
$ sudo python irmcli.py -h
usage: irmcli.py [-h] [-c] [-p] [-s] [-f FILE] [-t] [-v]
irMagician CLI utility.
optional arguments:
-h, --help show this help message and exit
-c, --capture capture IR data
-p, --play play IR data
-s, --save save IR data
-f FILE, --file FILE IR data file (json)
-t, --temperature measure ambient irMagicianT temperature in degrees
Celsius
-v, --version show firmware version