【ESP8266 NodeMCU】電子工作で植物の自動水やり機を作ってみた

こんにちは!エンジニアの岩間です。

今回のブログは、夏といえば自由研究だ!ということで初の電子工作についてです。
植物の手入れが楽になる自動水やり機を自作してみたので、その制作過程と実際の使い方をご紹介していきます。

 

きっかけ

数年前、ふるさと納税で盆栽をゲットして以来、家で大事に育てています。

しかし旅行等で家を空けることが続くと、盆栽に水やりができず枯れかかってしまうという事案が発生。

そこで、自動水やり機をネットで探していたところ、AmazonでWayinTop社製の水やり電子工作キットを発見します。

これに自動通知のプログラムを組み込めば土壌の状態や水やりタイミングを自分のスマホに通知できたりもして面白そう!と思い購入しました。

 

キット付属物

注文後数日で水やりキットが届きました。水やりキットの内容物は以下です。

  • センサー
    土壌の水分を測定できる湿度センサー

 

  • ホース
  • ポンプ×2

 

  • リレー(1チャンネル)
    外部からの電気信号を受けて内部にある開閉素子(接点など)を動作させ、電気回路をオン/オフしたり切り替えたりする部品です。

 

その他購入品

上記のキットだけでは自動水やり機は作れないため、別で以下を揃えました。

  • マイコンボードAmazonリンク
    NodeMCU V3を購入しました。Espressif Systems社製のESP8266を基盤にした開発ボードで、USB接続を介してArduino IDEでプログラムの書き込みが行えます。
    今回の開発ではLINEのAPIを叩きたかったためWi-Fi接続機能を持ち低コストであるマイコン、ESP8266を選びました。(マイコンボード3点セットを購入していますが必要なのは1つのみです。)
    Arduino UNOでも動作しますが、Wi-Fiを繋ぎたい場合別売りの無線モジュールを購入する必要があります。

 

  • ジャンパーワイヤーAmazonリンク
    回路を組むのに使います。

 

  • ブレッドボードAmazonリンク
    ハンダ付け不要で回路を組むことができる便利ツールです。

 

  • バッテリーAmazonリンク
    IoT対応のモバイルバッテリーです。

 

  • 絶縁被覆付圧着スリーブAmazonリンク
    キット付属のポンプの導線が短いため、ジャンパワイヤーの被膜を剥き、圧着スリーブでポンプの導線と接続することで長さ出ししています。(下の画像の黄色枠部分)

 

  • ニッパー
    ジャンパーワイヤーの被膜を剥く際に使用します。

 

  • ドライバー
    リレーモジュールと導線を接続する際に使用します。

(+αで実運用を考慮すると、電子機器を収納するための屋外用の防水箱もあると良いと思います。)

手順書

水やりキットに手順書は付属してませんが、wayintop社のGitHubに手順書が公開されています(Arduino UNO R3用とESP8266用)。

この手順を参考に進めていきます。

 

手順

事前準備

事前にLINE通知で使用するAPIトークンの取得と、ArduinoのIDE(開発環境)をpcにインストールします。

LINE APIトークン取得

LINE通知で必要となるAPIトークンを事前に取得しておきます。

  1. LINEアプリの友だち検索にて「@linenotify」と入力し検索します。
  2. LINE Notifyのアカウントが表示されるので、「追加」をタップします。
  3. LINE Notify マイページにログインします。
  4. アクセストークンの発行(開発者向け)からアクセストークンを発行し、アクセストークンをコピーしておきます。

 

ArduinoのIDEインストール

ArduinoのIDE(開発環境)をpcにインストールしておきます。

インストール手順はこちら

インストール後の各種設定はwayintop社のGitHubの手順書を参考に行いましょう。

 

回路を作る

手順書を参考に回路を組み立てていきます。

完成した回路は下の画像の通りです。

 

プログラムの配置

PCとマイコンボードを接続し、ArduinoIDEを開きプログラムをマイコンにアップロードします。

以下はライン通知機能を組み込んだ参考プログラムです。

※ArduinoIDEのシリアルモニタを使うとデバッグが行えます。MOISTURE LEVELがシリアルモニタに表示されていれば正常動作しています。

 

④動作確認

最後に以下のセッティングを行い、動作確認をしていきます。

  • マイコンボードとモバイルバッテリーを接続
  • バケツに水をため、ポンプを水中に入れる
  • 土壌センサーを植物の土に差し込む

 

動作確認中の動画は以下です。

(センサーを土から一時的に抜くことで乾燥状態を実験的に作っています)

 

水やりのタイミングでLINE Notifyに通知がきます。

 

苦労点

  • 部品を揃えること
    • 水やりキット以外にも必要な部品があるので、家に部品が0の状態からスタートした私は必要な道具を調べる&揃えることに一番時間を要しました。
  •  スマホ用モバイルバッテリーと相性が良くなかったこと
    • コンビニ等で売っているスマホ用のモバイルバッテリーを接続してみたところ正常に動作しませんでした。
      原因を調べてみると、多くのモバイルバッテリーには、一定の消費電力以下の機器に対して自動的に電源供給を停止する機能が搭載されており、モバイルバッテリーは主にスマートフォンやタブレットなど、比較的高い消費電力を持つデバイスに最適化されているそうです。
      マイコンのような低電力デバイスに対しては、「アイドル状態」や「電力供給中断」と誤認識し、バッテリーを保護するために電源供給を停止することがあるということで、低電流状態でも電力共有が停止しないIoT用のモバイルバッテリーを購入することで解決できました。
  • ブレッドボードの存在
    • 回路を組む際、導線を分岐接続するためにハンダ付けしないといけないのかな、、中学の技術の授業以来やっていないしちゃんとできるかな、、と不安に思っていたそんな時、ブレッドボードの存在を知り不安が解消されました。
    • ブレッドボードは、プラスチック製の板に、配線のための金属製の接点が組み込まれており、導線を差し込むだけで電気的に接続できちゃう便利ツールです。これを使えば、ハンダ付けをせずに回路を組むことができ、部品の追加や変更も非常に簡単に行えます。
      ブレッドボードを使うことで回路の設計や試作がスムーズに行えました。

 

初の電子工作をしてみての感想

初めての電子工作ということで完成するかドキドキでしたが、回路の設計や実装について学びつつ楽しみながら完成させることができ非常に良い経験となりました。
日常生活の中で生まれた「こんなもの欲しいけどない」というアイデアを形にできて面白かったです。

また、電源はソーラーパネルや乾電池駆動など、さまざまな電源オプションを試してみるのも面白そうだと思いました。
さらに、AWSのIoT Coreと連携してセンサーデータを管理したり、拡張性を持たせることで、より多機能なシステムにするのも良いと思いました。

皆さんもぜひ、電子工作に挑戦してみてください!

ここまでお読みいただきありがとうございました。

この記事が気に入ったら
いいね ! しよう

Twitter で

【採用情報】一緒に働く仲間を募集しています

採用情報
ページトップへ