Raspberry Pi による CO2 添加制御

アクアリウム
スポンサーリンク

水槽で水草を綺麗に育てるため,Raspberry Pi で CO2 添付を制御してみました.

スポンサーリンク

はじめに

5年くらい前までは,水槽へのCO2添付を安定して行おうとすると,下記の2択くらいしかなく,ハードルが高いものでした.

  • 業務用炭酸ガスボンベ(ミドボン) → 大掛かり
  • 水草育成用CO2ボンベ → ランニングコストが高い

ところが,何年か前から,クエン酸と重曹を使うタイプの下記のようなCO2ジェネレーターが出回るようになり,導入のハードルが随分低くなりました.

ただ,実際に導入する場合,下記の仕組みが欲しくなってきます.

  • 光を当てている昼間のみCO2添付したい
  • CO2添付している間は,CO2が抜けてしまうのを抑制するため,エアレーションを止めたい

そこで,Raspberry Pi を使ってこの制御を自動化する仕組みを作ってみました.

ハード

Raspberry Pi の GPIO を使って 100V 電源を制御するためのボックスを制作します.

100V 周りは,下記を考慮し,信頼性が高い部品で構成することにしました.

  • 誤動作してエアレーションが誤って停止すると,熱帯魚に深刻なダメージが発生する
  • 水槽という水回りで使用する

必要な部品

TWN型難燃性 W125×D175×65mm オフホワイト

ボックスのケースです.コンセント2系統を制御する場合,このサイズがちょうど良いと思います.


ミニパワーリレー MY2Z

12V の H/L で 100V 電源を ON/OFF できるリレーです.今回の心臓部となりますので,オムロン性の信頼性が高いものを選択します.


共用ソケット 角形ソケット PYF

リレーとコンセントを接続するためのソケットです.信頼性の観点で,100V 系統は基板への半田付けは使わず,圧着端子とネジ締めで構成するために使用します.


MOS FETリレー DIP4ピン

リレーを駆動するための FET です.ここはもうちょっと安い部品でも良かったかも.


抜止形機器用アウトレット 白

コンセントを接続するためのコネクタです.ちょっとサイズが大きいのが気になりましたが,樹脂ケースへの穴あけが円形で良いので加工性がよく,抜け防止機能があるのが決め手でした.


RS Pro IECプラグ オス スナップイン

今回作成するリレーボックスに電源を供給するためのコネクタです.ヒューズを内蔵しているのが決め手でした.LED内蔵のスイッチがついていてコンセントを差したままでON/OFFできて電源状態が確認できるので地味に便利です.


モールドフレームタイプLED表示灯 AC100~200V

リレーで制御した100Vコンセントの状態を確認するためのLEDです.100Vラインに直接接続できるのでお手軽です.


取付DCジャック 2.1mm MJ-14

CO2ジェネレーターの電磁弁の電源を接続するために使用するコネクタです.


3極小形単頭ジャック Φ3.5

Raspberry Pi と接続するためのジャックです.今回は2系統を制御するため GPIO 2本と GND を接続する必要があるので,3極タイプを選択しました.


フォーンプラグ (オス) 3.5mm

先ほどのジャックと接続するためのプラグです.


ロッカスイッチLタイプ JWシリーズ

今回作成するものはRaspberry Piで自動制御するためのボックスですが,手動でも制御できると便利と思いスイッチもつけています.


組み立て

電圧に応じて分けて回路を構成します.具体的には 100V 系統は,半田付けが避けられないIECプラグ以外は圧着端子とネジしめで接続し,3.3V および 12V を扱う系統のみ基板上で基板上で配線します.

こんな感じ.

100V のコネクタ関係がケースの内側に結構めり込むので,意外とスペースがないので,レイアウトは真面目に検討するのがおすすめです.

完成形

全て組み上げるとこんな感じ.

ラベリングには,マットな透明ラベルのテプラを使がおすすめです.

ソフト

時刻に応じて GPIO を自動制御するプログラムを仕立てます.

コンテナ上で動くようにして Kubernetes でデプロイすると長期的な管理が簡単になるので,cron とかに頼るのではなく Python の schedule ライブラリを使うのがおすすめです.

コードはこんな感じ.

GitHub - kimata/rasp-aqua
Contribute to kimata/rasp-aqua development by creating an account on GitHub.

現時点で,半年程度運用していますが,安定して動作してくれています.

コメント