moruxaのアイコン画像
moruxa 2021年05月14日作成
製作品 製作品 閲覧数 1004
moruxa 2021年05月14日作成 製作品 製作品 閲覧数 1004

メーターボックスへの置き配を通知する装置

メーターボックスへの置き配を通知する装置

デモ動画

ここに動画が表示されます

構想

まず、obniz Board 1Yのスリープ機能を使って、メーターボックスへの置き配があったことをスマホへ通知できないかと考えました。
当初は光センサー(CdSセル)を使ってメーターボックスが開いたことを検知する予定でしたが、より省電力な振動スイッチを使うことにしました。
振動スイッチはバネの動きでスイッチングを行うという非常にアナログな部品であります。
メーターボックスのドアの開閉による振動を検知するために、一番高感度なSW-18010Pをamazonで購入しました。
テスターで導通を見てみたところ、ほんのわずかな振動でもOFF→ONになることが確認できました。
これで、メーターボックスを開く→obnizスリープ解除→slackへメッセージ送信→スマホへ通知というフローが実現できそうだと思いました。

部品

品名 価格
obniz Board 1Y Gifted
USB Type-C to Type-A ケーブル 108円
モバイルバッテリー Gifted
振動スイッチ SW-18010P(10個入り) 537円
ジャンパー線 Gifted

設計図

振動スイッチにVccを接続し、io0に入力する
ハード的にはこれだけです;-)

ソフト的には次のサンプルを流用しました。(スリープ解除→slack連携)
https://blog.obniz.com/make/アプリ版-スリープ機能搭載-obniz-board-1yを使った省電力な

なお、都合によりio0のトリガー設定を立ち下がり→立ち上がりに変更してあります。

ソースコード

概要:io0の入力の立上がりを検知したら、スリープを解除しSlackへメッセージを投稿する

<html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" /> <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.3/umd/popper.min.js"></script> <script src="https://unpkg.com/obniz@3.x/obniz.js" crossorigin="anonymous" ></script> </head> <body> <div id="obniz-debug"></div> <script> const config = Obniz.App.configs(); const SLACK_WEBHOOK_URL = config.SlackWebhookURL; let obniz = new Obniz("OBNIZ_ID_HERE"); //Timeout 25s let tid = setTimeout(() => { obniz.sleepIoTrigger(true); }, 25000); obniz.onconnect = async () => { //post to Slack Webhook URL await fetch(SLACK_WEBHOOK_URL, { method: "POST", mode: "no-cors", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ text: "置き配を検知しました!" }) }) .then(() => console.log("success")) .catch(error => console.log(error)); //sleep until io0 rise up obniz.sleepIoTrigger(true); //program finish wait... await obniz.wait(1000); clearTimeout(tid); if (Obniz.App.isCloudRunning()) { Obniz.App.done({ status: 'success' }); } }; </script> </body> </html>

感想

この度はこのようなコンテストを催していただき、どうもありがとうございました。
今回初めてobnizを使いましたが、驚くほど簡単にやりたいことが試せると感じました。
(最初のWi-Fiの接続から楽チンでした。あのダイヤルスイッチは画期的ですね。)
obnizはハードウェアとソフトウェアの融合っぷりが素晴らしいと思います。
今後もobnizを使って思い付いたアイデアをプロトタイピングしていきたいと思います。

  • moruxa さんが 2021/05/14 に 編集 をしました。 (メッセージ: 初版)
ログインしてコメントを投稿する