Help us understand the problem. What is going on with this article?

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
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away