obniz Board 1Yで自動水やりの屋外対応版を工作してみた


昨年から夏は庭で野菜をプランターで栽培してるので家を空けたときにも心配要らないように、obniz Board 1Yを使って自動水やり装置を作ってみました。

作ってみたものはこんな感じです。

やっていることは定期的にバケツの水をポンプで汲み上げるだけです。

基本的なところはobniz公式ブログの記事「obniz Board 1Yのスリープ機能を使った省電力な水やりデバイス」をベースにし、屋外に設置可能なようにobniz Boardと電池をケースに収めて風雨対策をしています。
また、使用した給水ポンプはobnizのブログで紹介されているものとは別のもので、obniz内臓のモータードライバでは動きませんでした。そこで電池から直に電源を供給するようにMOSFETをobnizで制御して給水ポンプをOn/Offしています。

以下、この記事では、ケースの外に設置する給水ポンプに給電するケーブルをケーブルグラントでケースに固定する工作あたりを中心に、MOSFETの使い方についても簡単に解説しています。

使用するパーツ

使用するパーツは以下のになります。
今回使用する給水ポンプには、観賞魚用ポンプのビニールパイプは径が合いません。そこで、指定の幅の太めのものを用意する必要があります。

使用する工具

使用する工具は以下の通りです。
今回の工作では、はんだ付けは無いのですが、コネクタを圧着したり、ケースに穴を空けたりする道具が必要になります。

  • ワイヤーストリッパー AWG 22に対応したもの
  • 精密圧着ペンチ
  • ヒートガン (または、ライター)
  • ドリル 直径 3mm 以上の刃
  • リーマー
  • ハサミ

工作

給水ポンプとビニルキャブタイヤコードのケーブルを加工し、ケースにケーブルグランドで取り付けた後、obnizと電池ボックスを配線していきます。

ビニルキャブタイヤコードの加工

ケーブル両端の外被膜 (シースというらしい) を剥がして中の2つのケーブルを取り出します。 カッターに切り込みを入れて引っ張れば簡単に外被膜を外せます。
給水ポンプ側は5cmほど、obnizにつなげる方は7cmほど剥がします。

被膜の剥がし方については以下の動画を参考にしました。

多芯ケーブル加工.ハンダ接続と圧着端子付け

次に内側のワイヤーの被膜を 7mm ほどはがします。

0.3 sqはAWG 22です。ワイヤーストリッパーを使用する際にはAWG 22の溝を使います。

AWG SQ 換算対応表 – 電線ケーブル技術資料 – 電線ケーブル販売センター

給水ポンプ側にQIコネクタ メス、obniz側にQIコネクタ オスを圧着します。
圧着は精密圧着ペンチを使います。

圧着は、ラジオペンチでもできなくはないですが、外れやすいのであまりおすすめできません。精密圧着ペンチはそれほど高価ではないので用意しておくと工作の幅が広がるのでぜひ揃えたい工具の1つです。

QIコネクタの圧着箇所を熱収縮チューブで保護します。
熱収縮チューブを 2cm くらい切って、QI コネクタに被せ、ライターであぶって収縮させます。
(本来はヒートガンという工具を使うのが正しいようですが、ライターで特に困りません)
火は直接あてなくても収縮します。熱し過ぎに注意してください。

給水ポンプのケーブル加工とビニールパイプの取り付け

ビニールキャピタイヤコードの両端と同様に加工していきます。

QIコネクタのオスを取り付けます。ケーブルの被膜が厚いので多少取り付けが難しいです。

収縮チューブでQIコネクタの圧着箇所を保護します。

ビニールキャピタイヤコードを繋ぎます。
給水ポンプの赤いコードをビニールキャピタイヤコードの白に繋ぎ、黒いコードどおしを繋ぎます。

更に5mm径の収縮チューブで覆います。

ポンプ側は隙間ができてしまう場合は、ビニールテープを巻いて塞いでおきます。

ビニールパイプを取り付けます。長さは設置場所に応じて適当な長さにカットしてください。

ケースの加工

ケースにケーブルグランドを取り付ける穴を空けます。

穴の位置はケースの大きさに余裕があるので適当で大丈夫です。写真ではだいたい左から2cm辺りに空けています。
ドリルで適当に穴を空けてから、リーマーという道具で穴を広げていきます。
穴の大きさは12mmですが、実際にケーブルグランドを差し込んで大きさを確かめながら広げればOKです。

ケーブルグランドを取り付けます。

ケーブルグランドにケーブルを通しておきます。この時点ではまだケーブルを固定しません。obniz Boardにつなげたあとに最後に締めて固定します。

obniz Boardとパーツの配線

配線は以下のように接続します。

MOSFETのゲート抵抗は適当に100Ωを入れています。

ゲート抵抗については、以下の東芝のFAQのページにリンクが張ってあるPDF「MOSFET ゲート駆動回路」に詳しく解説されています。参考まで

参考: MOSFETのロジックレベルゲート駆動とはなんですか? | 東芝デバイス&ストレージ株式会社

また、io0はOn/Offどちらかで開放されていることはないという認識なので、ソース-ゲート間の抵抗は入れていません。

参考: MOSFETにゲートソース間抵抗が接続されている理由 – Electrical Information

実際に配線したところ

配線できたらケースに収めて、ケーブルグランドを締めてビニールキャピタイヤコードを固定し、ケースの蓋を締めます。

obnizプログラム

obnizのプログラムは以下、公式ブログのコードをベースに以下の変更を加えています。

  1. 実行間隔を6時間ごと
  2. io0でMOSFETのゲートへの出力を制御

あとは、obnizのIDとアクセストークンは使用するデバイスのものに置き換えてください。

<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"
    />
    <link rel="stylesheet" href="/css/starter-sample.css" />
    <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
    <script
      src="https://unpkg.com/obniz@3.16.0/obniz.js"
      crossorigin="anonymous"
    ></script>
  </head>
  <body>
    <div id="obniz-debug"></div>

    <script>
      var obniz = new Obniz("1234-5678", { access_token: "xxxxxxxxxxxxxxxxxx" });
      let tid = setTimeout(() => {
        obniz.sleepMinute(360);
        if (typeof done === "function") {
          done();
        }
      }, 25000);

      obniz.onconnect = async function() {
        obniz.display.clear();
        obniz.display.print("Watering");

        obniz.io0.output(true);
        await obniz.wait(20000);
        obniz.io0.output(false);

        // 6時間(360分)ごとに起動するように
        obniz.sleepMinute(360);
        await obniz.wait(1000);
        clearTimeout(tid);
        if (typeof done === "function") {
          done();
        }
      };
    </script>
  </body>
</html>

このプログラムを、obnizコンソールのリポジトリに保存してください。

「WateringPer6Hours」という名前で保存しました。

サーバーレスイベントの設定

リポジトリに保存したプログラムは、obnizがスリープから復帰してオンラインになったら起動するように設定します。

デバイスの設置

以上で準備完了したので、目的のプランターに設置します。

実際に動いているところは記事冒頭の動画を参照ください。

ちなみに、対象の野菜はこちらオクラです。とても元気に育ちました。

, ,