Raspberry Piで自動水やり機をつくる 〜VPN構築編〜

close up of strawberries in container


背景

  • 我が家の庭では、プランターでトマトやきゅうりなどの野菜を育てています。
  • しかし、夏場に2〜3日家を空けると、給水不足で植物が枯れてしまうという問題が・・・。
    • 対策として、観葉植物はできるだけ屋内へ避難させています
    • とはいえ、すべてを移動するのは現実的ではなく、特に野菜やハーブ類は外に置かざるを得ません。
  • そこで、いなきたものづくりラボで紹介されている自動水やり機の仕組みを参考に、自作IoT化を検討しました。

昨年の取り組み(おさらい)

  • ラズパイ本体やポンプ、ホースなどのハードを準備し、回路の組み立てや防水ケースの設置も行いました。
  • cronを使った定期動作の設定までは完了したものの、真夏に突入したタイミングで気力が尽き、運用までは至りませんでした。

課題として残った点

  • cronによる定期実行では、雨天時などに無駄な給水が発生してしまうため、任意タイミングでの遠隔操作が必要。
  • 外出中の操作を前提とするなら、VPNなどを使った自宅ネットワークへのアクセス手段の整備が必要。
  • しかし我が家のdslite環境では、適切なVPN構築手段の選定に悩んでいました。

ハードウェア構成(再掲)

回路構成については、いなきたものづくりラボの通りに作成すればOKです。


今回やったこと

ssh接続環境の構築

VPN構築(Tailscaleを使用)

  • Tailscaleを使えば、非常に簡単にVPNが構築できます。
  • 採用理由:
    • デバイス認証:Tailscaleに登録されたデバイス以外はアクセス不可。
    • 強固なユーザー認証:Apple/Google/Microsoftなど、信頼性の高い外部認証に対応。
      • ※単一障害点のリスクもあるため、利用は各自の判断で。
    • シンプルな構成:DDNS不要で完結するため、初期構築のハードルが低い。

デモ動画

  • これは自宅敷地内ですが、当然外部からでも動作させることができます。

今後やりたいこと

  • Web GUI経由での給水操作
    • 子どもでも操作できるよう、直感的な画面を用意したい。
    • VS Codeのポートフォワーディングなどを使えば、ローカル開発でも動かしやすいはず。
    • Flaskで簡易なフロントだけVibe codingで実装してやればいいと思っている。

参考リンク


, , ,