宅配ボックス投函通知用のIoTボタンを作成した

最近我が家も宅配ボックスを設置した。

ポストを毎日確認するのに宅配ボックスは何故か確認しなくなったので

できれば通知用のボタンが欲しいなぁと思って作成・設置した次第です。

押していただけるか分かりませんが…

今回はRaspberry Piを使用してIFTTTのwebhooksにリクエストを送り、連携したLINE Notifyて通知を送るようにしています。

今回はBluetoothボタンにダイソーのBluetoothリモートシャッターを使用しています。専用のライブラリもあります。

別のボタンを利用する場合は別途設定が必要になると思います。

概略としては下記のような感じです。

 

必要な機材

Bluetoothシャッターボタン

Raspberry Pi Zero W

電源とかwifiとか

 

ダイソーのシャッターボタンは一時期ハックが流行していたようで専用のライブラリもあったりします。先人の偉大さをかみしめながらサクッと構築していきましょう。

なお、Raspberry Piのセットアップやwifi接続は今回は割愛しています。

 

Bluetooth接続

・ラズベリーパイ近くでシャッターボタンをONにします。

Raspberry Piにログインして、CLIで作業を行います。

bluetoothctl

[bluetooth]# scan on

でBluetooth端末一覧が表示されます。AB Shutter3がシャッターボタンの名称です。

[NEW] Device XX:XX:XX:XX:XX:XX AB Shutter3

ペアリング実行

[bluetooth]# pair XX:XX:XX:XX:XX:XX

次回も自動でペアリング

・[bluetooth]# trust  XX:XX:XX:XX:XX:XX

接続は終わり。

ここでベアリングがうまくいっている場合はシャッターボタンを押下した時にのみシャッターボタンの青いランプが点灯するようになります。(接続先を検索中の場合シャッターボタンが定期的に点滅を繰り返す)

IFTTT設定

IFTTTはリクエストを受けて他のアプリを起動やリクエストを実行できるサービスになっています。
今回は家族用のLINEグループに投稿する際に提携可能なwebhookのIFTTTを選択しました。

登録後に

webhooksと検索するとservicesに利用可能なサービスが表示されます。

 

Webhooksを押下すると詳細画面に遷移します。

右上のDocumentationを押下します。

 

画面の一番下にCLIから実行する用のコマンドが記載されているのでここをメモしておきます。

Webhooksの作成

メニューアイコンからcreateを押下。

IFを選択してイベント条件を設定します。

+Thisの部分を押下してイベントが発生する条件を設定します。

 

webhooksを探します。

 

webhooksを選択すると、実行条件の詳細が表示されるので、リクエスト時に実行するのでそのまま選択します。

イベント名はそのままアドレスの一部になるので英語推奨です。

次に実行先を選びます。

今回はLINEなのでLINEと入れます。

提携を行っていない場合は提携も行います。

通知先と通知メッセージを選択します。

リクエスト時に引数を受け取ることもできますが、今回は定型文にします。(そもそも通知なので。)

これでIFTTTの設定は完了です。

スクリプトを書く

Bluebuttonを導入

管理者でログイン後、

$ sudo apt-get install ruby

$ sudo gem install bluebutton

bluebuttonはkeydown、keyup 、keylongup、leylongdownのイベント発生時に指定したスクリプト内の記述からコマンドを実行してくれます。

今回はRaspberry pi を起動した時に裏で走ってほしいのでetc内にスクリプトを作成します。

今回はキーアップ時にcurlでリクエストをポストします。

$ sudo vi  /etc/bluebutton

keyup=curl -X POST https://maker.ifttt.com/trigger/event名/with/key/ユーザーキー

keydown=echo DOWN

longup=echo LONG UP

longdown=echo LONG DOWN

試しに動かしてみます。

$ sudo bluebutton -d="Shutter3" -c /etc/bluebutton

ボタンを色々押してみる。

echo及びcurlがうまくいっているか確認します。

起動時に実行するようにしておく。

$ sudo vi /etc/rc.local

# 新規に追加する行
bluebutton -d="Shutter3" -c /etc/bluebutton &

再起動して、

$ sudo reboot

ボタンを色々押してみて動作していれば完了です。

あとはメモをぐるぐる巻きにして置いておきます。

余裕があれば押してくれる(と思います。)

感想

結構電波が弱い。扉を挟んでしまうので端末と2メートル程度が限界な気がする。雨の日は反応しにくいかも。

Linux(Raspbian)を触るのが久しぶりだったのでネットワーク周り、権限で地味に時間がかかった。普段はソフトウェアばかりなので新鮮だった。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする