Raspberry Pi と Kubernetes による自動水やりシステム

スマートホーム
スポンサーリンク

以前作った,自動水やりシステムを更新したので紹介します.

スポンサーリンク

モチベーション

4年ほど前に作ったシステムは,これまで壊れることなく稼働し続けてくれているのですが,以下の課題がありました.

定期的にソフトが再起動
Raspberry Pi Zeroを使っていてRAMが少ないこともあって,数ヶ月に一回くらいの頻度で再起動してしまていた.
ソフトの更新作業が繁雑
ソフトを Raspberry Pi 常に配置していたので,Raspberry Pi にログインしての書き換え作業が必要で,煩雑だった.Angular でUIを作っているので,しばらく放置するとセキュリティ警告が GitHub から通知されるようになるのですが,これに追従することが困難でした.
出先から簡単に使えない
セキュリティのためLANからのみアクセス可能にしていたので,出先からアクセスする場合VPN接続が必要になって,煩雑だった.

これを次のようにして改善します.

  • Raspberry Pi を Raspberry Pi 4B に更新
  • Kubernetes クラスタを前提とした構成にソフトを再構築
  • Google OAuth 2.0 による認証に移行

改善後の動作サンプルは下記からアクセス可能です.(電磁弁の制御や流量計はダミーになっています)

苔 散水システム
ガーデニングへの水やりを自動化できるアプリです.

改善内容

以降で順に説明していきます.

Raspberry Pi 4B

元々は電磁弁を制御するのに必要十分なスペックということでRaspberry Pi Zero W を使っていたのですが,スペック的にギリギリで何をするにも重たく作業性が悪いので思い切って刷新しました.これにより,次の Kubernetes へのノード参加も可能となり,使い勝手が一気に改善しました.

Kubernetes クラスタを前提としたソフト構成

こちらで必要になる要素を下記のエントリーで説明しています.
これらを組み合わせることで,Git にコミットするだけで,自動的にソフトを更新できるので,頻繁に更新される npm モジュールへの追従も楽々行えます.

Raspberry Pi で Kubernetes を使う場合の Tips
Raspberry Pi で Kubernetes を使う場合に知っておくと役立つ情報を紹介したいと思います.
Kubernetes のイメージを GitLab Agent で自動更新する方法
自宅サーバ環境で Kubernetes のイメージを自動更新するCIワークフローを構築する方法を紹介します. やりたいこと git push した際,次の3点を自動で行いたい. テスト コンテナイメージのビルドおよびコンテナレジストリへの登...

Google OAuth 2.0 による認証

こちらは下記で解説してあります.

自宅の Kubernetes 上のサービスに Google OAuth認証をつける方法
自宅の Kubernetes 上で動かしているサービスをインターネットに公開し,そこに Google OAuth 認証を付ける方法を紹介します.

この設定をしてスマホのホーム画面にサイトへのショートカットを置いておけば,いつでもどこからでもワンタッチで画面が開けるようになります.認証に関する管理不要で,Googleの強力な認証サービスが使えるので,安心感が違います.

最初の設定はやや煩雑ですが,一度 Ingress NGINX Controller と oauth2-proxy の設定まで終わらせておけば,認証付きのサイトを簡単に増やせるので,自宅ネットワークで何個かサービ動かしている人はトライする価値があると思います.

ソース

GitHub - kimata/rasp-water: Automatic watering system using the Raspberry Pi
Automatic watering system using the Raspberry Pi. Contribute to kimata/rasp-water development by creating an account on ...

コメント