sakashiのアイコン画像
sakashi 2021年05月09日作成 (2021年05月09日更新)
セットアップや使用方法 セットアップや使用方法 閲覧数 611
sakashi 2021年05月09日作成 (2021年05月09日更新) セットアップや使用方法 セットアップや使用方法 閲覧数 611

「OK Google 電気をつけて」ObnizeSwitchで部屋の電気を簡単IoT化

まえおき

「寝る直前にベッドから部屋の電気を消したい」
という思いから、Googleアシスタントに「OK Google 電気をつけて(消して)」と命令すると部屋の電気を点灯&消灯できる装置を作りました。
キャプションを入力できます

用意するもの

準備

※スイッチオフ用とスイッチオン用の2セット作成する必要があります。

  • SwitchOff:{gnd:0, vcc:1, signal:2}
  • SwitchOn:{gnd:3, vcc:4, signal:5}
    でobnizに接続し、コードも対応させます。

↓以下はスイッチオフ用の説明です。↓

■obniz
下記コードをobnizコンソールのリポジトリに作成する。
(角度は適宜調整してください)

▼SwitchOff.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("27352929");
  
      obniz.onconnect = function () 
      {
        const servoMotor = obniz.wired("ServoMotor", {gnd:0, vcc:1, signal:2});
        servoMotor.range = {min: 0.6,max: 2.3}
        var off_angle = 20; // 電気を消す角度
        var default_angle = 90;  // 元の角度

        // 電気を消す
        obniz.display.clear();
        obniz.display.print("OFF");
        servoMotor.angle(off_angle);
        
        // 角度を元に戻す
        obniz.wait(1000);
        obniz.display.clear();
        obniz.display.print("END");
        servoMotor.angle(default_angle);
      }
  </script>
  </body>
</html>

サーバレスイベントを設定する

  • トリガー:webhook(URLを控えておく)
  • リポジトリ内のHTML:「SwitchOff.html」を選択

■IFTTT
IFTTTで下記のように設定する。

  • If::Google Assistant > Say a Simple phrase("OK, Google!"で命令したいアカウントに連携)
  • Then:Make a web request(控えておいたURLを貼付ける)

IFTTT設定(メイン)

IFTTT設定(Google Assistant)

IFTTT設定(Make a web request)

以上で設定完了!

補足

  • 最初は下画像のようにモーター1つにしていたが、このスイッチの構造上深く押し込む必要があるらしく、成功率が100%ではなかったため、両側2つ設置する方法に落ち着いた。
    補足
ログインしてコメントを投稿する