ESP8266とBlynkによる自動灌水システム

Other

概要

ESP8266-Blynk-Irrigation-systemは、ESP8266(NodeMCU 等)を中心に据えた小型IoT灌水システムのサンプルプロジェクトです。土壌水分センサーの読み取りをBlynkへ送信し、Blynk側から手動(V1)/自動(V2)で制御可能。自動モードでは設定閾値(V3)に基づいてポンプを駆動し、誤動作を抑えるために+3%のヒステリシスを導入します。LCD(I2C 0x27/16x2)でリアルタイムの水分表示が可能で、万が一の連続稼働を防ぐ10分の安全オフタイマーを実装。コード数は少ないながら、実践的な制御ロジックとBlynk連携の基本が学べる構成です。(約300字)

GitHub

リポジトリの統計情報

  • スター数: 3
  • フォーク数: 0
  • ウォッチャー数: 3
  • コミット数: 5
  • ファイル数: 3
  • メインの言語: 未指定

主な特徴

  • Auto / Manual(V2 / V1)モード切替
  • ヒステリシス (+3%) によるポンプチャタリング対策
  • 10分の安全タイマーで連続稼働を防止
  • I2C接続のLCD 16x2(アドレス0x27)で水分%を表示、Blynk仮想ピン(V0,V1,V2,V3)を使用

技術的なポイント

本プロジェクトの技術的な要点は、ESP8266のアナログ入力とBlynkクラウドを組み合わせた遠隔監視・制御の簡潔な実装にあります。土壌水分センサーはアナログ出力を用い、ESP8266上でADC読み取り値を水分パーセンテージにマッピングしてV0へ送信。Blynkの仮想ピンV3で閾値を設定し、V2の自動モードが有効なときのみその閾値と現在値を比較してポンプをON/OFFします。閾値には+3%のヒステリシスが組み込まれており、センサーの揺らぎや周辺ノイズによる短時間のON/OFF(チャタリング)を抑制します。さらに安全対策として、ポンプが稼働してから10分を越えると自動的に停止するタイマーを導入。LCDはI2C(0x27)で接続され、リアルタイムの水分表示と状態フィードバックを現地で提供します。ハード面ではポンプ駆動にリレーやトランジスタ回路が必要で、ESP8266のADCは0–1Vレンジなど制約があるため分圧回路やセンサーの出力範囲調整が前提になります。コード構成はシンプルで学習用途やプロトタイプに適しており、BlynkトークンやWi‑Fi情報を設定すれば稼働可能です。(約700字)

拡張・運用上の注意(追加情報)

  • センサーキャリブレーション:土壌の種類で読み値が変わるため、乾燥時/飽和時の基準値をとってマッピングすることを推奨。
  • 電源と駆動回路:ポンプはモータ負荷になるため、リレーまたはMOSFET+フライバックダイオード等で安全に駆動。ESPのGNDと電源GNDは共通化する必要あり。
  • ESP8266のADC制限:多くのESP8266開発ボードはADC入力が0–1Vに限定。センサーの出力が範囲外なら分圧や専用ADCの使用を検討。
  • 追加機能案:データロギング(Blynkや外部サービスへ送る)、スケジュール給水、MQTT連携、OTA更新、停電後のリカバリ処理など。

プロジェクトの構成

主要なファイルとディレクトリ:

  • LICENSE: file
  • README.md: file
  • hardware.png: file

README抜粋から分かる設定とピン配置:

  • Blynk仮想ピン:V0(水分%表示)、V1(Manual)、V2(Auto)、V3(閾値)
  • LCD:I2Cアドレス0x27、16x2表示
  • 安全タイマー:10分で強制停止
  • ヒステリシス:+3%

まとめ

シンプルで学習に適したESP8266×Blynkの灌水プロジェクト。拡張や改良がしやすい設計です。(約50字)

リポジトリ情報: