初めての留守番も安心。ダイソーの300円商品+LINE BOTで帰宅を確認

こんにちは。
無事、結婚10年目に入りました、OISエンジニアのただっしーです。
だんだん暑い季節になってきましたね。
とはいえ私は平日はほぼ一日中屋内にいるのであまり季節を感じることはありません。
さて、息子が通う小学校でついこの間の日曜日に運動会がありました。
暑くなる予報だったので、前日にダイソーでUSB扇風機を買いました。
それがこれです。
300円で単四電池とUSB給電どちらでも対応しています。
結構パワフルです。
髪がなびくくらいの勢いです。私はなびきませんが。
羽はスポンジ素材なので当たっても痛くない、安心設計です。
———————
さて、ダイソー扇風機の話は置いておくとして、
扇風機の隣にこんなものが売っていました。
『Bluetoothシャッター』です。これも300円です。
カメラアプリ用のシャッターですが、
何か使えるかなーと思い、とりあえず4つ買いました。
さて、買ったはいいものの、
何に使おうか考えた結果に、
前回、息子がMacにログインしたらLINEにメッセージを送る仕組みを作ったので、それをすこし改良してみようかと思います。
今回はBleutoothシャッターを押したらカメラで撮影してLINEで画像が送られる仕組みを作ります。
ラズパイ&ラズパイカメラを使い、以下のような構成にしました。
処理のフローとしては以下のとおりです。
1.子供が帰宅してスイッチを押す
2.ラズパイがBluetoothを受信し、カメラを撮影
3.画像をWebサーバにアップロード
4.LINE BOTのPUSH APIで画像メッセージを送信
———————
まず、ラズパイにBlueZをインストールします。
BlueZというのは
LinuxのBluetoothプロトコルスタック(ソフトウェア群)です。
BlueZのインストール
pi@raspberry:$ sudo apt-get install bluetooth bluez libbluetooth-dev libudev-dev
スキャンできるかどうか試してみます。
pi@raspberry:$ sudo hcitool lescan LE Scan ... FF:FF:3F:EE:F5:B2 AB Shutter3
できました!
AB Shutter3というのはこの製品のモデル名のようです。
ペアリングして使うこともできますが、
今回は電波を受信できればよいのでMACアドレスで判定しようと思います。
さてここからはシェルスクリプトで
・Bluetooth検出
・カメラ撮影
・サーバーアップロード
・LINEメッセージ送信
を書きます。
・beacon.sh
1秒間Bluetoothをスキャンをします。スキャン後にkillします。
#!/bin/bash hcitool lescan & sleep 1 && pkill --signal SIGINT hcitool
・camera.sh
ラズパイカメラで撮影し、curlコマンドで自分が持っているWebサーバへアップロードします。
Webサーバへ画像をアップロードするのは、PushAPIでは画像を直接送ることができず、画像のURLを渡すことになるためです。
#!/bin/bash DIR=/home/pi/hs/data/$(date +%Y%m%d) NOW=$(date +%Y%m%d%H%M%S) if [ ! -e ${DIR} ]; then mkdir ${DIR} fi raspistill -w 1280 -h 960 -n -o ${DIR}/$1 -t 2 -br 50 curl -F file=@${DIR}/$1 https://{POSTするWebサーバURL}/
・sendline
LINE BOTのPUSH APIを呼び出します。前回はテキストだけでしたが、今回はtypeにimageを指定し、アップロードした画像のURLを指定してやります。
#!/bin/bash /usr/bin/curl -X POST -H 'Content-Type:application/json' -H 'Authorization: Bearer (アクセストークン) ' -d '{"to":"(グループID)","messages":[{"type":"text", "text":"Hello, Hello, Hello"},{"type":"image","originalContentUrl":"https://(Webサーバ)/'$1'", "previewImageUrl":"https://(Webサーバ)/'$1'"} ]}' https://api.line.me/v2/bot/message/push
・hs.sh
3つのシェルを組み合わせます。
hsはhome securityの略です。
#!/bin/bash DIR='/home/pi/hs' BLEMAC='FF:FF:3F:EE:F5:B2' NOW=$(date +%Y%m%d%H%M%S) while true do BEACON=`/bin/bash ${DIR}/beacon.sh | grep ${BLEMAC} | wc -l` if [ ${BEACON} -gt 0 ];then /bin/bash ${DIR}/camera.sh ${NOW}.jpg /bin/bash ${DIR}/sendline.sh ${NOW}.jpg sleep 90 else sleep 5 fi done!/bin/bash
最後に起動時にシェルが呼び出されるようにcrontabで設定します。
sudo crontab -e
@reboot /home/pi/hs/hs.sh
これで準備完了です。さっそく試してみます。
まずはラズパイを設置。
カメラは竹ひごで支えています。
見た目は不細工ですが、味があると言えるのではないでしょうか。
この状態でBluetoothシャッターを押すと、
画像が送られてきました。
これで子供の帰宅確認が画像でできます。
このまま常設を、と思いましたが、
スペックが高いRaspberry Pi Model Bを使うのはもったいないので、安価なRaspberry Pi Zero Wを購入しました。
より多くの人にラズパイを使ってもらうことがコンセプトのため、
1人1つまでしか購入できませんが、1,296円と安いです。
ラズパイで何かやってみたいなーと考えている方には、Raspberry Pi Zero Wをおすすめします。
おしまい。
【前回参考】初めての留守番も安心。LINE BOTで帰宅を確認
ホームページ http://www.ois-yokohama.co.jp
facebook https://www.facebook.com/orientalinformationservice/
2 thoughts on “初めての留守番も安心。ダイソーの300円商品+LINE BOTで帰宅を確認”
この投稿はコメントできません。