スマホからエアコンを操作をする(Raspberry Pi & Blynk)

公開日:2019-06-22
最終更新:2019-07-07

はじめに

夏になると、帰宅後の部屋の温度が暑くて死んでしまうので、家に帰る前にスマホからエアコンのスイッチをONにできるようにしてみました。
スマートリモコン等ありますが、せっかくなので眠っているRaspberryPiを使用して遠隔操作します。

参考サイト

raspberry piとirMagicianを使って赤外線で家電を操作
Rasberry Pi 3B + Blynkで実現、スマホからラズベリーパイを遠隔操作してシャットダウンする無料で簡単な方法 | IoT PLUS
Raspberry Piブログ : 第3回 CPUの温度/周波数/負荷状態を見よう - 連載 IoTサービス「Blynk」を使ってRaspberry Piをスマホからコントロールしよう

「irMagicianを使用したエアコン操作の方法」及び「Blynkを使用してRaspberryPiを操作する方法」が記載されているのでそれらを組み合わせて試してみました。
irMagicianやBlynkの説明は参考サイトを参照ください。以降、具体的な手順のみ記載していきます。

使用したもの

RaspberryPiからエアコンを動かす

irMagicianの設定

irMagicianを使用してラズパイ⇒エアコンの操作をできるように設定していきます。参考

  • irMagicianを認識させるためファイルを修正します
    cmdline.txt内の”console=serial0,115200″を削除します
    sudo vi /boot/cmdline.txt  
  • 再起動してirMagicianを繋ぎます。”ttyACM0”が表示されていれば認識されています

    ls /dev/  
  • 制御プログラムを動かすのに必要なpython-pip,pyserialをインストールします

    #インストール済みなら省略  
    sudo apt-get install python-pip  
    sudo pip install pyserial  
  • gitをインストールします

    #インストール済みなら省略  
    sudo apt-get install git  
  • 制御プログラムをローカルにコピーします。irmcliディレクトリが作成されます
    ディレクトリの場所は任意でかまいません。今回はホームディレクトリにコピーしました。

    #以降irmcliディレクトリで作業するので移動  
    git clone https://github.com/netbuffalo/irmcli.git  
    cd irmcli  

赤外線信号を受信する

  • 以下のコマンドを実行後、irMagicianのセンサに向けてエアコンの赤外線(電源ONを押す)信号を送ります
    sudo python irmcli.py -c  
    #実行後  
    #Capturing IR...  

学習した赤外線データをファイル出力する

  • 以下のコマンドを実行すると、先ほど学習した赤外線データがjson形式のファイルに書き込まれます。(ファイル名は任意)
    sudo python irmcli.py -s -f eakon_on.json  
    #実行後  
    #Saving IR data to eakon_on.json ...  
    #Done !  
    #同様の手順でoffの信号もファイル出力します  
    sudo python irmcli.py -c  
    sudo python irmcli.py -s -f eakon_off.json  

出力ファイルを元に赤外線データをエアコンに向けて送信する

#エアコンON!  
sudo python irmcli.py -p -f eakon_on.json  
# エアコンOFF!  
sudo python irmcli.py -p -f eakon_off.json  

これでラズパイからエアコンを操作できるようになりました!

スマホからRaspberryPiを操作する

ラズパイ→エアコンの操作はできるようになったので、次はスマホからラズパイを操作できるように設定していきます。

RaspberryPiにblynkをインストールする

  • インストール用のフォルダを適当に作成

    mkdir -p ~/src/blynk  
    cd ~/src/blynk  
  • Blynk How to install を確認すると最新verのzipファイルをダウンロードするよう勧められているのでzipをダウンロード

    #現時点の最新ver(v0.6.1)を取得しています。  
    wget https://github.com/blynkkk/blynk-library/releases/download/v0.6.1/Blynk_Release_v0.6.1.zip  
    #unzipで展開  
    unzip Blynk_Release_v0.6.1.zip  
  • makeコマンドを実行すると、 blynkという実行ファイルが作成されます。

    cd ~/src/blynk/libraries/Blynk/linux/  
    make clean all target=raspberry  
  • blynkコマンドをどこからでも実行できるよう、シンボリックリンクを設定します

    cd /usr/local/bin/  
    sudo ln -s /home/pi/src/blynk/libraries/Blynk/linux/blynk .  
  • ~/src/blynk/libraries/Blynk/linuxの main.cppファイルを修正していきます。

ファイル内の以下の4行をこちらのサイトを参考に書き換えます。

BLYNK_WRITE(V1)  
{  
  printf("Got a value: %s\n", param[0].asStr());  
}  

今回はBLYNK_READは使用しません。

  • 修正後にmakeします

    cd ~/blynk/blynk-library/linux  
    make clean all target=raspberry  
  • 実行するスクリプトを格納する用のフォルダを作成します。(main.cpp内で指定した/home/pi/blynkを作成)

    cd /home/pi  
    mkdir  blynk  
  • エアコンに信号を送るプログラムを実行するスクリプトを作成します

    cd /home/pi/blynk  
    touch BLYNK_WRITE_V11.sh  
    vi BLYNK_WRITE_V11.sh  

    以下の通り編集して保存します

    #!/bin/sh  
    cd /home/pi/irmcli  
    sudo python irmcli.py -p -f eakon_on.json  

    確認用にecho出力用のスクリプトとしても良いかもしれません。

    #!/bin/sh  
    echo hello world!  
  • 作成したファイルには実行権限を付与します。

    chmod +x BLYNK_WRITE_V11.sh  
  • 同様の手順で電源OFF用のスクリプト(BLYNK_WRITE_V12.sh)も作成します。


Blynkスマホアプリ側の設定

  • Android/iOS各ストアからBlynkのアプリをダウンロードします。
    Create New Accountからアカウントを作成します。

  • Create New Projectから、プロジェクトを作成します。
    DEVICEには使用しているRaspberryPiのモデル
    CONNECTION TYPEにネットワークのタイプを設定します。
    プロジェクト名は適当です。

  • プロジェクトを作成するとtokenがe-mailに送られてきます
  • Blynkを起動する
    sudo blynk --token=送られてきたトークン  
    以下の画面が表示されれば起動成功です。
      ___  __          __  
     / _ )/ /_ _____  / /__  
    / _  / / // / _ \/  '_/  
    /____/_/\_, /_//_/_/\_\  
          /___/ v0.6.1 on Linux  

Blynkアプリでボタンを作成する

  • プロジェクト内で+ボタンから「Styled Button」を選択

  • OUTPUTをVirtual > V11に設定します

  • MODEをSWITCHに設定します。
    ※MODE PUSHの場合には、ボタンPUSHとRELEASEの二回イベントが送信されるようで、二回スクリプトが実行されてしまいます
    main.cpp内でパラメータ(0/1)で分岐させてもいいですが、SWITCH設定であればイベントは1回のみなので、今回はSWITCH設定にします。

  • その他ラベル等はお好みで

  • 同様にV12(電源OFF用)も作成しました。下記画面から右上の起動ボタン(三角)を押すと起動します。

エアコンONボタンを押す!!!

以下のように作成したスクリプトが実行されて無事にエアコンのスイッチがONになりました

[616279] Command: /home/pi/blynk/BLYNK_WRITE_V11.sh 0  
Playing IR with eakon_on.json ...  
... Done !  

最後に

今年の夏は快適に帰宅できそうです。

記事が少しでもいいなと思ったらクラップを送ってみよう!
50
+1
@yayaの技術ブログ

よく一緒に読まれている記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる

技術ブログをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

技術ブログを開設する

Qrunchでアウトプットをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

Markdownで書ける

ログ機能でアウトプットを加速

デザインのカスタマイズが可能

技術ブログ開設

ここから先はアカウント(ブログ)開設が必要です

英数字4文字以上
.qrunch.io
英数字6文字以上
ログインする