今回やること
ガスコンロにかけている鍋の吹きこぼれを防止するため、
『obniz Board 1Y』を使用してガスレンジを制御してみた。
鍋は吹かない様にずっと見ていると他の事が出来ず、かといって
いざ吹きこぼれた時に走って止めに行くと転倒等危ない時が
あるため、一定の温度になると弱火にし、さらに時間が経つと
鍋の火を消すように制御する
デモ動画
すべてを表示すると時間が長くなってしまうため、10秒程度の動画に
まとめてみました。温度は通常85℃以上で反応するソースコードとなっていますが、
動画では20℃以上で反応するよう、ソースコードを書き換えています。
また、時間もすぐに変わるよう5秒以内に変更してます。
設置時の写真
使用部品
- 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 |
ソースコード
ガスレンジ制御
<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>
1
-
minotchi
さんが
2021/05/12
に
編集
をしました。
(メッセージ: 初版)
-
minotchi
さんが
2021/05/13
に
編集
をしました。
ログインしてコメントを投稿する