Raspberry PiとWebダッシュボードで作る自動植物水やりシステム
土壌水分を監視し、室内植物に自動で水やりを行うセルフウォーターシステムを、Webインターフェースから制御できるように構築します。
概要
このガイドでは、コンポーネント選定から配線、コーディング、Flask Webダッシュボードの起動まで、すべてのステップを解説します。結果として、Raspberry Piで動作する信頼性が高く、メンテナンスフリーな水やりソリューションが完成します。
材料
- Raspberry Pi 3(Pi 2/4も微小なピン変更で動作可能)
- 土壌水分センサー(アナログ出力)
- 5Vリレーモジュール(シングルチャネル)
- 3~6Vミニ潜水ポンプ(≤ 200 mL/min)
- フレキシブル水ホース(1インチ以下)
- Dupontジャンパーワイヤー(多色セット、120本)
- 5V電源(USBケーブル+壁面充電器または5Vアダプター)
- オプション:センサーキャリブレーション用小型ポテンショメータ
電源セットアップ
USBケーブルを5V電源として使用。ケーブルを剥き、赤(+)と黒(−)により太いワイヤーをハンダ付けし、5V壁面充電器に接続。マルチメータで電圧を確認してからPiに接続してください。
GPIO配線(Pi 3)
- 土壌センサー:プラスをピン2(5V)、マイナスをピン6(GND)、信号(黄)をピン8(GPIO 14)
- リレー:INピンをピン7(GPIO 4)、VCCをピン2、GNDをピン5
- ポンプ:ポンプ電源をリレーの常開(NO)接点、グラウンドをコモン(COM)接点に接続。Piがピン1(GPIO 5)をLOWにするとリレーが閉じてポンプが作動
ホースをポンプの出口に取り付け、もう一方を植物の土壌付近に配置。ホースの貯水部に水を満たします。
ハードウェア組み立て
ホースを電気テープでポンプに固定し、漏れを防止。すべての接続を絶縁し、Piの電源をポンプ電源から分離して電気ノイズを回避。
ソフトウェア概要
プロジェクトは4つのPythonスクリプトとFlask Webインターフェースで構成:
- water.py – センサー読み取りとポンプ制御のGPIO抽象化
- auto_water.py – 定時水やりロジック
- web_plants.py – センサー状態と手動操作を公開するFlaskアプリ
- main.html – シンプルなダッシュボードテンプレート
依存関係のインストール
Pi上で以下を実行:
$ python3 -m pip install RPi.GPIO flask psutil
GPIO制御スクリプト(water.py)
このスクリプトは2つの主要関数を公開: get_status() は湿り/乾き文字列を返し、 pump_on() はポンプを1秒間作動。インタラクティブにテスト:
$ python3
>>> import water
>>> water.get_status()
'Dry'
>>> water.pump_on()
Pump activated for 1 s.
センサーが正しく報告しない場合、モジュール上の小型ポテンショメータを調整し、土壌が湿っているときに2つ目のLEDが点灯するようにします。
Flaskダッシュボードの実行
web_plants.py を water.py と同じフォルダに配置し、templates というサブディレクトリを作成して main.html を格納。その後サーバーを起動:
$ sudo python3 web_plants.py
ブラウザでPiのIPアドレスにアクセス。リアルタイム水分状態と手動「今すぐ水やり」ボタンを備えたダッシュボードが表示されます。このページはFlaskで動作し、ヘルパースクリプト経由でGPIOレイヤーと通信します。
Cronで起動を自動化
再起動後にWebサーバーが自動起動するよう、rootのcrontabを編集:
$ sudo crontab -e
以下の行を追加( /home/pi/project を実際のパスに置換):
@reboot cd /home/pi/project && sudo python3 web_plants.py
Piを再起動し、ダッシュボードが自動的に読み込まれることを確認。
次のステップ
システムが稼働したら、以下の機能拡張が可能:
- 複数の植物モジュールと単一ダッシュボード
- 水分レベルのCSVまたはデータベースへのログ記録
- 水やり実行時のメールまたはプッシュ通知
より深い学習のために、Raspberry Pi GPIOチュートリアルとFlask-GPIO統合ガイドを参照してください。
製造プロセス
- Raspberry Pi 2でDS18B20温度センサー読み取りガイド
- Raspberry Pi制御アクアポニックスシステム:構築ガイド & コード
- Raspberry PiでMaxim 1-WireセンサーとDS2482 I2Cブリッジを用いた温度測定
- ホームエナジーセンター:Raspberry PiとMoteinoで太陽光発電、ソーラー熱、室温を監視
- Raspberry Piでサーバークローゼットの温度を正確に監視
- DS1820ワンワイヤー温度センサーをGPIOでRaspberry Piに接続する方法
- HC-SR04超音波距離センサーをRaspberry Pi 3に接続 – 完全ガイド
- Raspberry Piでライントラッキングセンサー – シンプルなKY-033ドア/ライン検出器
- Raspberry PiとAS3935で落雷検知: 実践ガイド
- ネイティブADCなしでRaspberry Pi上のアナログセンサーを測定
- Adafruit T-Cobbler PlusでヘッドレスRaspberry Pi 2水漏れアラームを構築