郵便物が届いたらLINEにお知らせ(スリープ編)

郵便物が届いたらLINEにお知らせ(スリープ編)

今回やること

前回、こちらの記事(郵便物が届いたらLINEにお知らせ)で、郵便物か届くたびにLINEで通知するシステムをつくりました。

今回はobniz Board 1Yを使って、スリープを用いた省電力な郵便物の通知システムにアップデートします。

郵便物が届いたらLINEに通知する

前回のシステムから少し変えて、以下のような流れのシステムを作ります。

  1. 郵便受けの投函口に傾きセンサーがついていて、傾きを検知しています。
  2. 郵便物が郵便受けに入れられると投函口が傾くため、郵便物が届いたことを検知することができます。
  3. 郵便物が届いたことを検知すると、LINE NotifyのAPIを叩いて、LINEに通知します。
  4. 郵便物が届いたことが手元でわかり、ハッピーになります!

準備するもの

組み立て方

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にかきかえてください。

また、 requestobniz のパッケージをnpmよりインストールしておいてください。

完成したプログラム

Node.jsでかかれたコードです。

const fs = require(‘fs’),
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に追加されたスリープ機能を用いると、システムを省電力化させて長持ちさせることができます。
省電力化によってバッテリーを交換する頻度が減ったり、コンセントの位置を意識する必要がなくなったりと、メリットが多いですね。ぜひ活用してみてください。