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

saitohiroaki が 2021年05月13日11時02分12秒 に編集

コメント無し

本文の変更

## 実現したいこと 自動車でバックモニターが付いていない車をバックさせたり狭いところに停めようとするときに、不注意で車をこすってしまうことがあります。 そんなときに、このような距離センサーと接近アラームがあれば、うっかりミスが減らせると思いました。 なお、このIoTデバイスはあくまで試験的なもので、このまま実利用はできませんのでご了承ください。 ## できたもの 車のバンパーに距離センサーを付けて、壁に向かってバックしました。 1mくらい近くなって音が断続的になりはじめ、30cmに近づいて鳴り続けます。 @[youtube](https://www.youtube.com/watch?v=KNbNNMqwmbg) ## 準備するもの | 部品名 | 必要量 | |:---:|:---| | 距離センサー HC-SR04 | 1個 | | 低電圧メカニカルブザー 3V | 1個 | | USB TYPE-Cケーブル(obniz電源) | 1本 | | 4芯ケーブル | 4m | ## ハードウェア接続 | 部品 | 接続 | |:---:|:---| | 距離センサー | gnd:0, echo:1, trigger:2, vcc:3 | | 距メカニカルブザー | signal: 10, gnd: 11 | ![obnizに距離センサーとブザーを取り付ける](https://camo.elchika.com/784142405831b7e54ffc1f1334d2e214d9a50c78/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f35653731393939342d336364662d343835312d396332312d3438646532663065363966632f39646463616235662d636633652d346238622d616666632d633837343466366634666530/) ## プログラム ```:距離センサー&接近アラームプログラム <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" /> <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script> <script src="https://unpkg.com/obniz@3.x/obniz.js" crossorigin="anonymous" ></script> </head> <body> <div id="obniz-debug"></div> <script> var obniz = new Obniz("OBNIZ_ID_HERE"); // called on online obniz.onconnect = async function() { const hcsr04 = obniz.wired("HC-SR04", { gnd: 0, echo: 1, trigger: 2, vcc: 3 }); const speaker = obniz.wired("Speaker", { signal: 10, gnd: 11 }); hcsr04.unit("mm"); var distance = 0; // called while online. obniz.onloop = async function() { distance = await hcsr04.measureWait(); if ( isNaN(distance) == false ) { // 測定が正しい場合(数値かどうかを判断) if (distance <= 300) { // 30cm以下になった場合 speaker.play(5); console.log("Very close to within " + distance + " mm") await obniz.wait(1000); // 長めの音 speaker.stop();

-

} else if(distance <= 1000){ // 20cmを超え1m以下になった場合

+

} else if(distance <= 1000){ // 30cm1m以下になった場合

speaker.play(20); console.log("Close to within " + distance + " mm") await obniz.wait(500); // 短めの音 speaker.stop(); } } else { // 測定が正しくない場合(数値ではない) console.log("Reset sensor!") hcsr04.reset_alltime = true; // HC-SR04をリセットする。 } }; }; // called on offline obniz.onclose = async function() { }; </script> </body> </html> ```