Skip to content

kimata/rasp-water

Repository files navigation

rasp-water

Raspberry Pi を使って自動的に水やりをするシステムです.

機能

  • スマホやパソコンから蛇口の開閉が行えます.
  • 水流量がリアルタイムに確認できます.
  • スケジュール機能を使って自動水やりが行えます.
  • 水やりの記録が確認できます.

構成

Angular で作られた UI と,Flask で作られたアプリケーションサーバで構成 されます.raspi-gpio を使って GPIO を制御し,その先につながった電磁弁 で蛇口の開閉を行います.

ハード関係はブログで紹介しています.

デモ

下記で,擬似的に水やりを行えます.

https://rasp-water-demo.kubernetes.green-rabbit.net/rasp-water/

スクリーンショット

準備

ADS1015 のドライバの有効化

/boot/config.txt に次の行を追加.

dtoverlay=ads1015,cha_gain=0

設定

src/config.example.ymlsrc/config.yml に名前変更します. 環境に合わせて適宜書き換えてください.

Slack を使っていない場合は,Slack の設定をコメントアウトしてください.

実行

docker build でイメージを構築し,flask/app/app.py を動かします.

Kubernetes 用の設定ファイルが kubernetes/outdoor_unit_cooler.yml に入っていますので, これを参考にしていただくと良いと思います.

カスタマイズが必要になりそうなのは下記の項目になります.

namespace
`hems` というネームスペースを作っていますので,環境に合わせて変更します.
PersistentVolume
スケジュールデータを格納する場所を確保します.
external-dns.alpha.kubernetes.io/hostname
ExternalDNS で設定するホスト名を指定します.環境に合わせて変更いただくか,不要であれば削除します.
image
ビルドしたイメージを登録してあるコンテナリポジトリに書き換えます.
nodeSelector
Pod を配置したいノード名に変更します.

カスタマイズ

電磁弁の制御は rasp_water.py の {set,get}_valve_state で行っていますの で,ここを書き換えることで制御方法を変えることができます.

テスト結果