Edited at

Raspberry Pi 3 で赤外線リモコン&温度センサーを試す


Raspberry Pi 3 で赤外線リモコン&温度センサーを試す


はじめに

RaspberryPi 3を使って室温を計測し、一定の温度になったらエアコンをON/OFFするという仕組みをつくりたくて、手軽に試せるirMagicianを使ってみました。


準備する物


前提条件


参考情報


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