編集履歴一覧に戻る
kjakxのアイコン画像

kjakx が 2021年05月15日23時05分21秒 に編集

コメント無し

本文の変更

# obniz Board 1Yで磁気カード式照明スイッチをつくる ビジネスホテルによくあるアレが好きなので、作ってみました。 ## デモ動画 @[twitter](https://twitter.com/k_jak_x/status/1393563990429560833) ## 部品 ・obniz Board 1Y 1個 ・ブレットボード 1個 ・ジャンパワイヤ ・MFRC522(および付属の磁気カード) 1個 ・サーボモーター(Tower Pro SG92R) 1個 ## 設計図

-

![](https://camo.elchika.com/0bb7c11dda17380f0fb4a0edbf1b5d8cd4c48b7d/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f61393536366465632d363639622d343338632d613961382d6339376364303462653731342f34366664653031322d343038332d343738622d383165342d323030643638656265336635/)

+

![キャプションを入力できます](https://camo.elchika.com/52f611d8e4b8938fe69d3c54b0e8bf856dc879be/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f61393536366465632d363639622d343338632d613961382d6339376364303462653731342f35323733623638642d303539302d346438392d383864342d323934363031353235633266/)

MFRC522の端子は左からSDA,SCK,MOSI,MISO,IRQ,GND,rst,3.3V。 SG92Rの端子は左からGND,+V,SIG。 ## ソースコード ```html <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) {

-

//console.error(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おもしろいですね!!!