
第4回ではGPIOポートにセンサーデバイスを接続して、温度や湿度、気圧の測定を行いました。第5回ではスマートフォン側からの操作で、Raspberry Piをコントロールします。スマートフォン上のボタンを押すと、Raspberry Piのシャットダウンを行うシステムを作ります。
Blynkのインストールやセットアップ手順については第1回〜第4回までの記事で解説しています。
Raspberry Piには電源ボタンが無いため、電源を切るときはシャットダウンコマンドを実行しなくてはなりません。今回はBlynkを使い、スマートフォン上のボタンを押すとシャットダウンするシステムを作りますが、一つ注意しなければいけないことがあります。うっかりボタンに触れて、シャットダウンしてしまう恐れがあります。
そこで今回は、安全装置つきのシャットダウンボタンを作ります。安全装置には「スライダー」ウィジットを使用します。スライダーを一番右までスライドさせないと、ボタンを押してもシャットダウンが実行されないようにします。
バーチャルポートは次のように割り当てることにします。
ファイル名:BLYNK_WRITE_V10.sh
サンプルプログラム BLYNK_WRITE_V10.sh はスライダーが動くと(値が変更されると)実行されるプログラムです。スライダーの値を受け取り、それをファイルに保存しています。
ファイル名:BLYNK_WRITE_V11.sh
サンプルプログラム BLYNK_WRITE_V11.sh はボタンが押されると実行されるプログラムです。ボタンが押された状態(値=1)の場合、スライダーの値が入っているファイルを読み込み、値が 255 だったら、シャットダウンコマンドを実行します。
プログラムの準備ができたら、次はアプリ側にウィジットを配置していきましょう。
はじめに「Slider S」ウィジットを追加します。SとLの違いは大きさですので、どちらでもかまいません。

ピンは「Virtual」の「V10」を選択します。横の数字は最小値と最大値で、今回は一番右に動かした場合に255になるようにしたいので、このままにします。SEND VALUES ON RERELASE ONLYという項目がありますが、これはONにすると指を離したとき、つまり値が最終決定されたときだけ呼び出されます。OFFにするとスライダーを動かしている最中も頻繁に呼び出されますが、今回は最終決定した値だけが取れればよいのでONのままにします。

次に「Button」ウィジットを追加します。

ピンは「Virtual」の「V11」を選択します。

これで準備が整いました。Blynkを起動していない場合は、起動します。
アプリの右上の三角ボタンをタップしてRaspberry Piに接続します。マークが四角に変わったら接続完了です。

まずはスライダーが左にある状態で、シャットダウンボタンを押してみてください。何も起こらないはずです。

それでは今度はスライダーを一番右まで動かしてから、シャットダウンボタンを押してみてください。即座にシャットダウンが実行されます。

シャットダウンしてもスマートフォンのBlynkの画面上ではスライダーは自動的に戻らないため、次回操作する場合は、一旦スライダーの位置を戻してから操作してください。
今回はシャットダウンのコマンド「shutdown -h now」を実行させましたが、簡単なシェルスクリプトになっていますので、ここに任意のコマンドを書くだけで様々な動作をさせることができます。ぜひいろいろと実験してみてください。
さて、次回はBlynkを使って、リモコンの赤外線信号で家電をコントロールする実験を行います。しかし夏場のエアコンを使うシーズンが過ぎてしまったため、内容は変更になる可能性があります。
連載 IoTサービス「Blynk」を使ってRaspberry Piをスマホからコントロールしよう
Raspberry Piには電源ボタンが無いため、電源を切るときはシャットダウンコマンドを実行しなくてはなりません。今回はBlynkを使い、スマートフォン上のボタンを押すとシャットダウンするシステムを作りますが、一つ注意しなければいけないことがあります。うっかりボタンに触れて、シャットダウンしてしまう恐れがあります。
そこで今回は、安全装置つきのシャットダウンボタンを作ります。安全装置には「スライダー」ウィジットを使用します。スライダーを一番右までスライドさせないと、ボタンを押してもシャットダウンが実行されないようにします。
バーチャルポートは次のように割り当てることにします。
- V10 … 安全装置(スライダー)
- V11 … シャットダウンボタン
ファイル名:BLYNK_WRITE_V10.sh
#!/bin/sh
SLIDER_FILE=/tmp/V10
echo $1 > $SLIDER_FILE
サンプルプログラム BLYNK_WRITE_V10.sh はスライダーが動くと(値が変更されると)実行されるプログラムです。スライダーの値を受け取り、それをファイルに保存しています。
ファイル名:BLYNK_WRITE_V11.sh
#!/bin/sh
SLIDER_FILE=/tmp/V10
if [ "$1" = "1" ] ; then
if [ -e $SLIDER_FILE ] ; then
num=`cat $SLIDER_FILE`
if [ $num -eq 255 ] ; then
rm $SLIDER_FILE
shutdown -h now
fi
fi
fi
サンプルプログラム BLYNK_WRITE_V11.sh はボタンが押されると実行されるプログラムです。ボタンが押された状態(値=1)の場合、スライダーの値が入っているファイルを読み込み、値が 255 だったら、シャットダウンコマンドを実行します。
プログラムの準備ができたら、次はアプリ側にウィジットを配置していきましょう。
はじめに「Slider S」ウィジットを追加します。SとLの違いは大きさですので、どちらでもかまいません。

ピンは「Virtual」の「V10」を選択します。横の数字は最小値と最大値で、今回は一番右に動かした場合に255になるようにしたいので、このままにします。SEND VALUES ON RERELASE ONLYという項目がありますが、これはONにすると指を離したとき、つまり値が最終決定されたときだけ呼び出されます。OFFにするとスライダーを動かしている最中も頻繁に呼び出されますが、今回は最終決定した値だけが取れればよいのでONのままにします。

次に「Button」ウィジットを追加します。

ピンは「Virtual」の「V11」を選択します。

これで準備が整いました。Blynkを起動していない場合は、起動します。
$ cd ~/blynk
$ sudo ./blynk --token=自分のAUTH TOKEN
アプリの右上の三角ボタンをタップしてRaspberry Piに接続します。マークが四角に変わったら接続完了です。

まずはスライダーが左にある状態で、シャットダウンボタンを押してみてください。何も起こらないはずです。

それでは今度はスライダーを一番右まで動かしてから、シャットダウンボタンを押してみてください。即座にシャットダウンが実行されます。

シャットダウンしてもスマートフォンのBlynkの画面上ではスライダーは自動的に戻らないため、次回操作する場合は、一旦スライダーの位置を戻してから操作してください。
今回はシャットダウンのコマンド「shutdown -h now」を実行させましたが、簡単なシェルスクリプトになっていますので、ここに任意のコマンドを書くだけで様々な動作をさせることができます。ぜひいろいろと実験してみてください。
さて、次回はBlynkを使って、リモコンの赤外線信号で家電をコントロールする実験を行います。しかし夏場のエアコンを使うシーズンが過ぎてしまったため、内容は変更になる可能性があります。
連載 IoTサービス「Blynk」を使ってRaspberry Piをスマホからコントロールしよう
- 第1回 IoTサービス「Blynk」を導入しよう
- 第2回 スマホからLチカをやってみよう
- 第3回 CPUの温度/周波数/負荷状態を見よう
- 第4回 温度センサーを接続してグラフにしよう
- 第5回 スマホからRaspberry Piをシャットダウンしよう
- 第6回 ドアが開いたらスマホにPUSH通知させよう
これ、とてもいいです。気に入りました。モニター&キーボードをつながなくても、vnc接続しなくても、iPhoneだけで終了できますね。