郵便物が届いたらLINEにお知らせ(スリープ編)
コンテンツ
今回やること
前回、こちらの記事(郵便物が届いたらLINEにお知らせ)で、郵便物か届くたびにLINEで通知するシステムをつくりました。
今回はobniz Board 1Yを使って、スリープを用いた省電力な郵便物の通知システムにアップデートします。
郵便物が届いたらLINEに通知する
前回のシステムから少し変えて、以下のような流れのシステムを作ります。
- 郵便受けの投函口に傾きセンサーがついていて、傾きを検知しています。
- 郵便物が郵便受けに入れられると投函口が傾くため、郵便物が届いたことを検知することができます。
- 郵便物が届いたことを検知すると、LINE NotifyのAPIを叩いて、LINEに通知します。
- 郵便物が届いたことが手元でわかり、ハッピーになります!
準備するもの
- obniz Board 1Y
- 電源 (モバイルバッテリーなど)
- LINEアカウント
- 傾きセンサー (keyestudioのDigital Tilt Motion Sensor moduleを使っています)
組み立て方
1. 傾きセンサーを配線する
下の表や図のようにobnizに傾きセンサーを配線します。
obniz | 傾きセンサー |
---|---|
0 | Signal |
+ | Vcc |
– | GND |
プログラム
LINE Notify側の準備
こちらは 郵便物が届いたらLINEにお知らせの手順「2.LINE Notify側の準備」と同じなので、そちらを参考にしてください。
このとき発行したトークンは忘れずに控えておきましょう。トークンの発行ページ離れてしまうと、トークンを確認することができなくなってしまいます。
プログラム
郵便受けの投函口が傾いたら、LINE Notifyから通知をするプログラムを書きます。
- 6行目
LINE_NOTIFY_TOKEN_HERE
の部分を 2. LINE Notify側の準備 で控えたトークンにかきかえてください。 - 24行目
let obniz = new Obniz('OBNIZ_ID_HERE');
のOBNIZ_ID_HERE
をお手持ちのobnizのIDにかきかえてください。
また、 request と obniz のパッケージをnpmよりインストールしておいてください。
完成したプログラム
Node.jsでかかれたコードです。
request = require(‘request’),
Obniz = require(‘obniz’);
const LINE_NOTIFY_URL = ‘https://notify-api.line.me/api/notify’;
const TOKEN = ‘LINE_NOTIFY_HERE’;
const MESSAGE = “郵便物が投函されました。”;
const HEADERS = {
‘Content-Type’: ‘application/x-www-form-urlencoded’,
‘Authorization’: ‘Bearer ‘ + TOKEN
};
const OPTIONS = {
url: LINE_NOTIFY_URL,
method: ‘POST’,
headers: HEADERS,
json: true,
form: { message: MESSAGE }
}
let obniz = new Obniz(‘OBNIZ_ID_HERE’);
let isFirstCall = true;
obniz.onconnect = async () => {
if(isFirstCall){
isFirstCall = !isFirstCall;
}else{
await request(OPTIONS, async(error, response, body) => {
console.log(body);
if(error){
console.log(error);
}
});
obniz.sleepIoTrigger(false);
}
40行目 obniz.sleepIoTrigger(false)
のところでスリープ状態に入ります。obnizの0番ピンの電圧がHIGHからLOWになると、スリープが解除されます(詳しくは スリープ | obniz.js をご覧ください)。
今回使用した傾きセンサーは、傾くことによって内蔵されているボールが接触し、傾きを検知する仕組みになっています。このボールが接触したとき、obnizの0番ピンがLOWになり、スリープが解除されます。
スリープが解除されるごとに、投函口から郵便物が届いたと判断され、LINEにメッセージが送られます。
うごかす
obnizに電源を繋ぎ、ポストの投函口の裏に設置します。このとき、郵便物を投函したときの蓋の傾きでセンサーが反応するよう、取り付ける向きに注意してください。
プログラムを実行すると、郵便物が届くごとにLINE Notifyから通知が来るようになります。
obniz Board 1Yに追加されたスリープ機能を用いると、システムを省電力化させて長持ちさせることができます。
省電力化によってバッテリーを交換する頻度が減ったり、コンセントの位置を意識する必要がなくなったりと、メリットが多いですね。ぜひ活用してみてください。