obnizで近づくとブザーが鳴る仕組みを作りました。これ自体にたいした意味はありませんが、ほかの電子工作と組み合わせて役立つことは多いでしょう。
距離センサーとブザー直刺し
obnizボードに距離センサーとブザーを直刺し。一瞬で電子工作完了です。
0~2番ピンにKeyestudio社製ブザー。8~11番ピンに超音波距離センサーを接続しています。
ブザーは開発中うるさかったので、シールをつけたままです。
近づいたらブザーを鳴らすコード
距離が500mmまで近づいたら、ピッ!と音がでるようにしています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>近づいたらブザーを鳴らす</title> <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://unpkg.com/obniz@3.18.0/obniz.js" crossorigin="anonymous"></script> </head> <body> <div id="obniz-debug"></div> <script> var obniz = new Obniz("obniz-ID"); obniz.onconnect = async () => { const speaker = obniz.wired("Keyestudio_Buzzer", {signal:0, vcc:1, gnd:2}); const hcsr04 = obniz.wired("HC-SR04", {gnd:8, echo:9, trigger:10, vcc:11}); let dist = 0; const runSpeaker = async (Hz, n) => { for (let i=0; i<n; i++) { speaker.play(Hz); await obniz.wait(100); speaker.stop(); await obniz.wait(100); } }; while(true) { dist = await hcsr04.measureWait(); console.log(dist); if(dist < 500){ await runSpeaker(2000, 1) // (2000Hz, 1回) await obniz.wait(10000); // 10秒計測停止 } await obniz.wait(300); } }; </script> </body> </html> |
ブザーを鳴らす命令は他にも使えそうなので、runSpeaker()として関数を作りました。音の高さや、音の回数(ピッ!やピッ、ピッ!)を変更しやすいように、引数で指定するようにしています。
冷蔵庫に近づくとブザーが鳴る
冷蔵庫に取り付けてみました。取り付けパーツは3Dプリンターで作っています。
人が近づくと、ピッ!と音が鳴ります。
鳴りっぱなしはうるさいので、10秒のインターバルがあります。
子供が冷蔵庫を開けて、お菓子をかってに食べてしまうのに困っている家庭では、若干役に立つかもしれません。