Raspberry Pi を使って自動的に水やりをするシステムです.
- スマホやパソコンから蛇口の開閉が行えます.
- 水流量がリアルタイムに確認できます.
- スケジュール機能を使って自動水やりが行えます.
- 水やりの記録が確認できます.
Angular で作られた UI と,Flask で作られたアプリケーションサーバで構成 されます.raspi-gpio を使って GPIO を制御し,その先につながった電磁弁 で蛇口の開閉を行います.
ハード関係はブログで紹介しています.
下記で,擬似的に水やりを行えます.
https://rasp-water-demo.kubernetes.green-rabbit.net/rasp-water/
/boot/config.txt に次の行を追加.
dtoverlay=ads1015,cha_gain=0
src/config.example.yml
を src/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 で行っていますの で,ここを書き換えることで制御方法を変えることができます.