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

minotchi が 2021年05月12日22時52分09秒 に編集

初版

タイトルの変更

+

ガスコンロ制御(吹きこぼれ防止)

タグの変更

+

SG90

+

SG90-HV

+

obniz_board_1Y

+

SHT31

メイン画像の変更

メイン画像が設定されました

本文の変更

+

# 今回やること ガスコンロにかけている鍋の吹きこぼれを防止するため、 『obniz Board 1Y』を使用してガスレンジを制御してみた。 鍋は吹かない様にずっと見ていると他の事が出来ず、かといって いざ吹きこぼれた時に走って止めに行くと転倒等危ない時が あるため、一定の温度になると弱火にし、さらに時間が経つと 鍋の火を消すように制御する # デモ動画 すべてを表示すると時間が長くなってしまうため、10秒程度の動画に まとめてみました。温度は通常85℃以上で反応するソースコードとなっていますが、 動画では20℃以上で反応するよう、ソースコードを書き換えています。 また、時間もすぐに変わるよう5秒以内に変更してます。 @[youtube](https://youtu.be/A5VkQGPHOp8) # 設置時の写真 ■鍋に温度センサー(SHT31)を設置 ![キャプションを入力できます](https://camo.elchika.com/b67c79f5e264ead3ebd25978adab0db2a48cc7f2/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f35666136303532612d393462302d343763612d613264372d3134663631303037306333642f63393665623637642d663032642d343632362d393230312d633133653166623336613435/) ■obnizを含めた設置状態-その1 ![キャプションを入力できます](https://camo.elchika.com/1d8b93354de2db18f5fec400cd636bcbe568b467/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f35666136303532612d393462302d343763612d613264372d3134663631303037306333642f32373963366163662d653933382d346535352d616433612d633064373162353962393966/) ■obnizを含めた設置状態-その2 ![キャプションを入力できます](https://camo.elchika.com/7372192b2268a904d0fdc8c0eb4690bbc2fb6ac4/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f35666136303532612d393462302d343763612d613264372d3134663631303037306333642f33313734333036382d646631342d346533652d613764632d663930643938633937373866/) # 使用部品 - obniz Board 1Y - AE-SHT31(高精度温湿度センサモジュールキット) - SG90(サーボ) - SG90-HV(360°連続回転サーボ) - ユニバーサルアームセット(TAMIYA) - ファンシー支柱 FS-30W(HILOGIK) ←フレーム強化用 # 設計図 pin番号はobniz Board 1Yの端子 | 温度センサ(SHT31) | 部品接続先 | |:---:|:---| | 0pin | vcc | | 1pin | sda | | 2pin | scl | | 3pin | gnd | | 4pin | adr | | サーボ1(SG90) | 部品接続先 | |:---:|:---| | 6pin | signal | | 8pin | gnd | | 3.3 | vcc | | サーボ2(SG90-HV) | 部品接続先 | |:---:|:---| | 9pin | signal | | 10pin | vcc | | 11pin | gnd | # ソースコード ```arduino:ガスレンジ制御 <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"); var obniz, byou; // called on online obniz.onconnect = async function() { var servo = obniz.wired("ServoMotor", {gnd:8, vcc:7, signal:6}); //vccは3.3vに接続する(データシートより) servo.angle(0.0);//初期値入力 await obniz.wait(2000); //2秒待つ servo.off(); var sensor = obniz.wired("SHT31", {vcc:0, sda:1, scl:2, adr:4, gnd:3, addressmode:5}); setInterval (async function() { var temp = await sensor.getTempWait(); console.log('temperature:' + temp); //温度を表示する if (temp > 85) { await obniz.wait(60000); //鍋が吹くまでの時間を入力する //ガスコンロの火を弱火にする var servo = obniz.wired("ServoMotor", {gnd:8, vcc:7, signal:6}); //vccは3.3vに接続する(データシートより) byou = 600 servo.angle(50.0); await obniz.wait(byou*1000); servo.off(); //ガスコンロのスイッチをoffにする var servo = obniz.wired("ServoMotor", {gnd:11, vcc:10, signal:9}); servo.angle(160.0); // start await obniz.wait(614); servo.angle(92.0); // stop servo.off(); byou = 600 await obniz.wait(byou*1000); console.log('終了しました'); //完了通知 } else{ await obniz.wait(1000); }; },1000); }; </script> </body> </html> ```