Raspberryでメールを受信する(その2)


このメールクライアントを使うと次のようなことができるようになります。
「hogehoge@docomo.ne.jp」さんから「GPIO14 ON」のメールが来ていたらGPIO14をONにする。
「hogehoge@docomo.ne.jp」さんから「GPIO15 ON」のメールが来ていたらGPIO15をONにする。
「hogehoge@docomo.ne.jp」さんから「GPIO14-15 ON」のメールが来ていたらGPIO14とGPIO15をONにする。

設定ファイルを以下の様に変更します。
赤字部分が今回追加した部分です。

$ cat config.ini
HOST=mail.biglobe.ne.jp
USER=hoge@biglobe.ne.jp
PASS=hogehoge
#
TITLE=GPIO14 ON
FROM=hogehoge@docomo.ne.jp
DEL=ON
EXIT=1
#
TITLE=GPIO15 ON
FROM=hogehoge@docomo.ne.jp
DEL=ON
EXIT=2
#
TITLE=GPIO14-15 ON
FROM=hogehoge@docomo.ne.jp
DEL=ON
EXIT=3



TITLE=
メールタイトル

FROM=
メール発信者のメールアドレス

DEL=ON/OFF
TITLEとFROMが一致するメールを見つけたときに、そのメールを削除するかどうかを指定します。
DEL=ONは該当メールだけを削除します。
DEL=OFFはメールを削除しませんので、何度も同じ動作をします。
テスト中はDEL=OFFでテストしてください。

EXIT=
TITLEとFROMが一致するメールを見つけたときの終了コード

上記の設定は以下の意味となります。
「hogehoge@docomo.ne.jp」さんから「GPIO14 ON」のメールが来ていたら、そのメールを削除して終了コード=1で終了する。
「hogehoge@docomo.ne.jp」さんから「GPIO15 ON」のメールが来ていたら、そのメールを削除して終了コード=2で終了する。
「hogehoge@docomo.ne.jp」さんから「GPIO14-15 ON」のメールが来ていたら、そのメールを削除して終了コード=3で終了する。

次に以下のスクリプト(名前は何でもいいですがここではbiff.shとします)を作成します。

#!/bin/bash
sudo sh -c "echo 14 > /sys/class/gpio/export"
sudo sh -c "echo out > /sys/class/gpio/gpio14/direction"
sudo sh -c "echo 15 > /sys/class/gpio/export"
sudo sh -c "echo out > /sys/class/gpio/gpio15/direction"

/home/pi/biff/biff /home/pi/biff/config.ini
ret=$?
if [ $ret -eq 1 ]; then
    sudo sh -c "echo 1 > /sys/class/gpio/gpio14/value"
fi
if [ $ret -eq 2 ]; then
    sudo sh -c "echo 1 > /sys/class/gpio/gpio15/value"
fi
if [ $ret -eq 3 ]; then
    sudo sh -c "echo 1 > /sys/class/gpio/gpio14/value"
    sudo sh -c "echo 1 > /sys/class/gpio/gpio15/value"
fi
sudo sh -c "echo 14 > /sys/class/gpio/unexport"
sudo sh -c "echo 15 > /sys/class/gpio/unexport"

スマホなどから「Rasapberry君」宛てに、「GPIO14 ON」のタイトルのメールを送信してください。
暫くして、上記のスクリプト(biff.sh)を実行すると、GPIO14がONになります。

今回はGPIOをONにするサンプルを紹介しましたが、これを以下の様に変更し、cronで定期的に実行することで
外出先からRaspberryを操作することができます。

#!/bin/bash
/home/pi/biff/biff /home/pi/biff/config.ini
ret=$?
if [ $ret -eq 1 ]; then
    照明をつけるコマンドを実行
fi
if [ $ret -eq 2 ]; then
    テレビを点けるコマンドを実行
fi
if [ $ret -eq 3 ]; then
    エアコンを点けるコマンドを実行
fi

照明やテレビやエアコンなど、リモコンが使える家電は全てRaspberryで制御することができます。
テレビ番組の録画予約を忘れたときなど、出先から録画を始めることもできます。

Raspberryで家電を制御する方法はこちらの ページが参考になります。
こちらで もAC100VのON/OFFの方法を紹介しています。

続く...