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
さんが
2021/05/15
に
編集
をしました。
(メッセージ: 初版)
-
kjakx
さんが
2021/05/15
に
編集
をしました。
-
kjakx
さんが
2021/05/15
に
編集
をしました。
-
kjakx
さんが
2021/05/16
に
編集
をしました。
(メッセージ: タイトルに誤りがあったため修正しました)
-
kjakx
さんが
2021/05/16
に
編集
をしました。
-
kjakx
さんが
2021/05/16
に
編集
をしました。
-
kjakx
さんが
2021/05/16
に
編集
をしました。
-
kjakx
さんが
2021/05/16
に
編集
をしました。
ログインしてコメントを投稿する