kjakxのアイコン画像
kjakx 2021年05月15日作成 (2021年05月16日更新)
製作品 製作品 閲覧数 636
kjakx 2021年05月15日作成 (2021年05月16日更新) 製作品 製作品 閲覧数 636

obniz Board 1YでICカード式照明スイッチをつくる

obniz Board 1YでICカード式照明スイッチをつくる

obniz Board 1YでICカード式照明スイッチをつくる

ビジネスホテルによくあるアレが好きなので、作ってみました。

デモ動画

部品

・obniz Board 1Y 1個
・ブレットボード 1個
・ジャンパワイヤ
・MFRC522(および付属のICカード) 1個
・サーボモーター(Tower Pro SG92R) 1個

設計図

キャプションを入力できます
MFRC522の端子は左からSDA,SCK,MOSI,MISO,IRQ,GND,rst,3.3V。
SG92Rの端子は左からGND,+V,SIG。

ソースコード

<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <script src="https://obniz.com/js/jquery-3.2.1.min.js"></script>
    <script src="https://unpkg.com/obniz@3.14.0/obniz.js" crossorigin="anonymous"></script>
  </head>
  <body>
    <script>
      const obniz = new Obniz("OBNIZ_ID");

      obniz.onconnect = async function() {
        // パーツの接続
        const mfrc522 = obniz.wired("MFRC522", { cs: 0, clk: 1, mosi: 2, miso: 3, gnd: 5, rst: 6});
        const servo = obniz.wired("ServoMotor", {signal:7});

        // スイッチオン・オフ時のサーボモーター角度の定義
        const on_angle = 100; // スイッチオン時の角度
        const off_angle = 70; // スイッチオフ時の角度

        // スイッチの初期状態はオフとする
        servo.angle(off_angle); 
        let switch_is_off = true;

        // カードが検出されている間スイッチをオンに、検出されない間スイッチをオフにする
        while(true)
        {
          try {
            let card = await mfrc522.findCardWait();
            // カードが検出された場合
            if (switch_is_off == true)
            {
              servo.angle(on_angle);
              switch_is_off = false;
            }
          }
          catch(e)
          {
            // カードが検出されないと"card_search_ERROR"エラーが起こる
            if (e.message == "card_search_ERROR" && switch_is_off == false)
            {
              servo.angle(off_angle);
              switch_is_off = true;
            }
          }
          await obniz.wait(300);
        }
      };
    </script>
  </body>
</html>

感想

obnizおもしろいですね!!!

kjakxのアイコン画像
趣味でやってます!
ログインしてコメントを投稿する

投稿者の人気記事