サーバレスでつくる簡単に定期的に水やりを行うプログラム

今回やること

obniz Boardとサーバレスを使うことで簡単に定期的に水やりを行うプログラムを作成していきます。

用意するもの

  • obniz Board
  • 電源 (モバイルバッテリー等)
  • ポンプ (この記事の使用ポンプ: Amazonリンク)
  • ホース
  • 植物

組み立て方

次の表のようにobnizとポンプを接続します。

obniz ポンプ
0
1

プログラム

obniz Boardを登録しよう

obnizの開発者コンソールに移動し、「デバイス」 → 「デバイスを追加」をクリックします。 ダイアログが開いたら、「obniz公式デバイスを使う」をクリックします。 あとは画面の指示にしたがって登録してください。

 

プログラムを書こう

サーバーレスイベントで使うため、プログラムをリポジトリに保存します。 obnizの開発者コンソールに移動し、「リポジトリ」 → 「新規作成」を行います。 ダイアログが表示されるので、次のように設定します。

  • タイプ : WebApp
  • アクセスレベル : 非公開
  • ファイル名 : お好みで(今回はrepeat_water)

設定できたら、「作成」をクリックします。 そうすると、プログラムの入力画面がでるので、次のプログラムに置き換えます。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>定期的な水やりデバイス</title>
    <script src="https://unpkg.com/[email protected]/obniz.js" crossorigin="anonymous"></script>
  </head>
  <body> 
    <script>
      //-----------------------------
      // obniz setting
      //-----------------------------      
      let obniz = new Obniz("OBNIZ_ID_HERE");
      obniz.onconnect = async () => {
        var motor = obniz.wired("DCMotor", {forward:0, back:1});

        motor.forward();
        //10秒モータを動かす
        await obniz.wait(10000);
        motor.stop();
        if(typeof done === "function"){
          done();
        }
      }
    </script>
  </body>
</html>

プログラムができたら左上のファイル名にマウスを合わせると「保存」がでてくるので「保存」をクリックします。

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

サーバーレスイベントとは、本当はそれぞれが必要になるサーバーを用意しなくても簡単にobnizを使える機能です。 obnizのコンソールから「サーバーレスイベント」 → 「新規作成」をクリックします。 設定項目が複数出てきますが、順に設定していきましょう。

  • 名前 : お好みで(今回はRepeat_water_Event)
  • 実行するWebApp : 先ほど保存したプログラム名
  • きっかけ : 繰り返し
  • Event : 6 hour

設定できたら、「作成」をクリックしましょう! これで準備は完了です。

動かす

6時間に1回水やりを行うようになりました。いとも簡単に水をやるデバイスをサーバレスをつかって作ることができました。

このようにサーバレスで水やりデバイスを簡単に作れます。デバイスが遠隔地にあってもコンソールから実行タイミングを簡単に変更できたり、別の種類のセンサーに交換してもプログラムを更新するだけで動かせたりします。