ruminoのアイコン画像
rumino 2021年05月16日作成 (2021年05月16日更新)
セットアップや使用方法 セットアップや使用方法 閲覧数 551
rumino 2021年05月16日作成 (2021年05月16日更新) セットアップや使用方法 セットアップや使用方法 閲覧数 551

箱の開閉状態を通知

箱の開閉状態を通知

はじめに

箱の開閉状態の変化を遠隔で取得します。
これにより、秘密にしている箱などが勝手に開けられたときに通知が来ます。
今回JavaScriptを初めて触りました。
私の力不足により、LINEやSlackによる通知を実現することができませんでしたが、遠隔地での状態取得を可能としたため、おおむね良好だと考えます。

デモ動画

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

部品

部品 数量
obniz Board または obniz Board 1Y 1
CdS素子 1
抵抗 ~10kΩ(今回は500Ω) 1
ジャンパワイヤ オス-オス 3
ブレッドボード 1
お好きな箱 1

設計図

下の写真のように配線したものをお好きな箱の中に入れます。(obnizへの電源必須)
キャプションを入力できます
今回は9番ピンを電源(HIGH)、11番ピンをGND(LOW)に設定し、10番ピンをアナログ入力としました。

ソースコード

<!-- HTML Example -->

<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">
  <link rel="stylesheet" href="/css/starter-sample.css">
  <script src="https://obniz.com/js/jquery-3.2.1.min.js"></script>
  <script src="https://unpkg.com/obniz@3.14.0/obniz.js"></script>
</head>
<body>

<div id="obniz-debug"></div>

<!--文字の表示-->
<div class="wrap">
  <div class="print">
    <h3 class="text-center">箱の状態</h3>
  </div>

</div>

<script>
  const obniz = new Obniz("5861-7967");
  const threshold = 4.5;
  var prev = threshold;
  
  obniz.onconnect = async function () {
    obniz.display.clear();
    obniz.display.print("Shielding");

    obniz.io9.output(true);
    obniz.io11.output(false);

    obniz.ad10.start((voltage) => {
      //console.log(voltage);
      if(prev < threshold && voltage > threshold){
        obniz.display.clear();
        obniz.display.print("閉じました");
        console.log("閉じました");
      }else if (prev > threshold && voltage < threshold){
        obniz.display.clear();
        obniz.display.print("開きました");
        console.log("開きました");
      }
      prev = voltage;
    });
    
  };
</script>
</body>
</html>
ログインしてコメントを投稿する