背景
エアコンでタイマーをつけて寝ていると、エアコンが切れた後は暑くて大変ですよね。
夜中に起きてドアを開けるのが辛くて「自動化できないかな・・」と昨年から考えていました。
そこで
①もし、リビングの温度(窓を開けているのでほぼ外気温)が一定の温度以下になったら
②エアコンをOFF
③寝室のドアを開けて換気
→朝まで快適に寝れる~
という装置を作成しました。
今回は①③の部分だけ公開します。
自動ドアが動くところ
最近暑くなってきましたね。
— keicafeblack (@keicafeblack) 2019年5月31日
今年もobnizとペットボトルを使用した自動ドアを作りたいと思います。#obniz pic.twitter.com/y6ihQNNee7
使用したもの
電子系
素材系
- 木の板
- 割りばし
- ビニール紐
- 水を入れたペットボトル
自動ドアの作成
木の板に写真のような仕組みを乗せる(固定はタッカー+接着剤)
コーディング
オムロン環境センサ2JCIEからリビングの温度を取得して、27度以下になったらドアを開けます。
(obnizのサーバレスイベントを利用して、1時間に1回下記を実行するようにします)
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="https://obniz.io/js/jquery-3.2.1.min.js"></script>
<script src="https://unpkg.com/obniz@2.0.3/obniz.js" crossorigin="anonymous"></script>
</head>
<body>
<div id="obniz-debug"></div>
<script>
var obniz = new Obniz("OBNIZ_ID_HERE");
obniz.onconnect = async function () {
var omron = obniz.wired('2JCIE');
var servo = obniz.wired("ServoMotor", {gnd:2, vcc:1, signal:0});
var results = await omron.findWait();
if(results){
console.log("find");
await omron.connectWait();
var data = await omron.getLatestData();
console.log(data.temperature);
await omron.disconnectWait();
if(data.temperature <= 27){
console.log("less than 27");
servo.angle(150.0); // half position
await obniz.wait(1000);
servo.angle(30.0); // half position
await obniz.wait(1000);
}else{
console.log("over 27");
}
}else{
console.log("not find");
}
}
</script>
</body>
</html>
今回はじめて2つの機能(bluetooth経由でオムロンセンサから温度を取得+サーボモータを動かす)を同時に使用しました。動いたので載せましたが、間違っていたり、もっと良い書き方があればアドバイスをお願いします。
参考にしたサイト
*obniz公式:パーツライブラリ>2JCIE
*obniz公式:入門レッスン>サーボモータ
*動物を捕まえるための罠のYoutube色々
今後の予定
・エアコンをOFFにできるようにする
・オムロンセンサからは温度以外(湿度、照度、UV Index、気圧、騒音、不快指数、熱中症警戒度)も取れるので、複数の要素で「エアコンを継続?ドアを開ける?」を判断できるようにする(温度が低くても湿気が高い場合は、引き続きエアコンを継続する、など)