マーケライズエンジニアブログ開設を機に、「マーケライズ工作クラブ」を発足させました。活動の趣旨は、「自分の役に立つものを作り、その過程で新しい技術を習得することで、スキルアップしていこう」というものです。新しい技術を習得する際、サンプル的なものを動かしてみることが一般的だと思います。それだとイマイチつまらないですし、表面しか理解することはできません。実用的で本格的なものを作ることで、その技術の深いところまで理解してしまおうという目論見です。入会者募集中。
今回は「スプリンクラー制御システム」です。
目的
自宅の庭に芝生を張っているのですが、夏場の水やりはかなり手間がかかります。芝生にはゆっくり水まきをしなければならない上に面積があるため、散水ホースを使って手動で水やりをしたとしたら、1回あたり2時間くらいかかります。据え置き型の簡易的なスプリンクラーを使ったとしても、芝生部分の土地の形状が細長いため、隅々まで水をまこうとすると8カ所くらい設置ポイントを変えつつ水まきを実施しなければなりません。場所によって回転角度や飛距離を調整しなけらばならず、結構面倒です。水まきの待ち時間を入れると、やはり2時間くらいかかります。スプリンクラーを設置後、十分水がまかれるまでしばらく待つ必要がありますが、別のことをしている間にすっかり忘れてしまい、無駄に水をまいてしまったことは数えきれないくらいあります。そもそも暑いのが嫌いなのでなるべく外に出たくありません。
夏の暑い時期には雨が降らなければ毎日これを実施します。夏の水道代は1ヶ月○万円となります(○には好きな数字を入れてください)。
省力化のため、家の中からポチポチするだけで水まきが行われるシステムを夢見て、スプリンクラー制御システムを作成しています。現在3年計画の2年目で、スプリンクラー未設置の部分がまだありますが、システム的には実用的なものが動いており、昨年から運用中です。
しかし今年の夏はいつもよりも涼しい上に雨の日が多いため、あまりシステムが稼働することがありません…
システム概要
Raspberry Piと電磁リレーボードを組み合わせ、電気的なスイッチのON/OFFをソフトウェアで制御できるようにします。そこに電磁バルブを接続し、電気のON/OFFで水のON/OFFができるようにしてスプリンクラーを制御します。
スプリンクラーは地面に埋め込み式のポップアップスプリンクラーを採用します。普段は地面の下に埋まっていますが、水を出す時のみ地面から顔を出して水をまきます。
せっかくなので、本システムの電源はソーラーパネルから発電した電気をリチウムイオンバッテリーに蓄電して電力を賄う独立電源システムとしました。停電になって電力会社から電力が供給されなくなっても水やりができるので安心です。そうなってくると、太陽光発電の状況もモニタしたくなりますので、発電状況の各種データをデータベースに蓄積し、見やすくグラフ表示するシステムもつけました。
リチウムイオン電池は過放電に弱く、過放電状態で放置すると壊れてしまいます。日照が足りない日が続くと十分電池に蓄電できず、知らず知らずのうちに過放電となってしまいます。その場合、外部から充電してやれば良いのですが、それも面倒です。過放電に気がつかずにしばらく放置して電池をダメにしてしまうのも嫌なので、電気が足りなくなったことをシステム自身で判断し、コンセントからの電気で勝手に充電する機能をつけました。本システムで一番高価な部品はリチウムイオン電池ですので、重要な機能です。
ここまでやるとそれだけではもったいなので、さらにカメラを2台接続して監視カメラ機能もつけました。
欲張りすぎて機能が盛りだくさんになりました。まとめると以下のようになります。
- スプリンクラー制御
- 太陽光発電で蓄電池を充電し電力供給
- 太陽光発電ステータスを蓄積し、グラフ表示
- 日照が足りない場合に自分で判断してACアダプタから補充電
- 監視カメラ2台
必要なスキル
このシステムを作成するにあたって必要なスキルは以下の通りです。赤い項目は、このプロジェクトを通して私自身、初めて習得したスキルとなります。今後の仕事に生かしたいと思います。
- React, TypeScript
- AWS Cognito
- AWS SAM
- ひとつのAWS API GatewayでAPIと静的ファイルホスティングを両方やる
- AWS Step Functions
- AWS Lambda
- オフグリッド太陽光発電システム構築
- Raspberry Piから電磁リレーの制御
- Modbus Protocol over serial (太陽光発電ステータス取得)
- WSGIによるAPI (Raspbery Pi側API)
- 監視カメラ(motionEye)
- 電磁バルブによる水道制御
- 水道管の設置
詳細は…
システム概要だけで決められた文字数が尽きてしまいました。機能が多いシステムですので、詳細についてはテーマを絞ってそれぞれ別記事として作成していく予定です。