面倒な水替えを自動化！RaspberryPiで自動水替えシステム作ってみた。WIP

#皆さん！IoTしてますか？

今回は皆思ってる熱帯魚を飼う時にめんどくさい事ナンバーワンの水替えを自動化していきたいと思います！！

いやほんと熱帯魚ちゃんかわいいんだけどやっぱり水替えがめんどくさい....

常々思ってたんですよ。

Amazonとかでスマートアクアリウムとか見ると「お？自動で全部してくれるのか？」とか思うんですけど

ただ水温とかが見れるだけだったりとあんまりスマートじゃないと

ないのかーなーと思っていたら

あれ？作れば良くない？と思いましてこの際作ってみようと思いこのアドベンドカレンダーのネタにしてしまえと

そんなこんなでパーツをぽちぽちとして作ってみたいと思います！！

コントロールはご家庭に転がっているRaspberryPi4でやっていきたいと思います。

##まずはRaspberryPiセットアップから

Node-Redを使うのでアップデートからやっていきたいと思います。

Node-Redほんとに便利ですよねー

GPIOをサクサクっとコントロールするのに便利ですし最初からMQTTのノードも用意されているので
AWS IoTとサクッと繋げられます。

僕のには今古いバージョンが入っていたのでアップデートしていきます。

とりあえずsshで接続して行きます。



```
ssh@192.168.50.211
```

まずアップデート

```
sudo apt update && sudo apt upgrade -y
```

yでどんどん進んでいく


アップデート久しぶりにするとめっちゃ時間かかります（戒め）

更新が終わったら

```
bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
```

でNode-redのアップデート

```
Node-RED v2.x no longer supports Nodejs 10

  You can force an install of node 12, 14 or 16 by using the --node12, --node14 or --node16 parameter.
  However doing so may break some nodes that may need re-installing manually.
  Generally it is recommended to update all nodes to their latest versions before upgrading.

  If you wish to stay on nodejs 10 you can update to the latest Node-RED 1.x version by adding
  --nodered-version="1.3.7" to that install command. If in doubt this is the safer option.
  Please backup your installation and flows before upgrading.

  Exiting now.
  ```
  
  これが表示されたらnodeが古いのでをアップデートする。
  
  https://parashuto.com/rriver/tools/updating-node-js-and-npm
  
  この辺を参考にしてアップデート
  
  アップデートがおわったら再度Node-Redのアップデートを行う。
  
  アップデートが終わったら
  
  

```
node-red-start
```
  
でNode-Redを起動してみましょう。

ブラウザに｛RaspiのIP｝:1880と打てば表示されるはずです。

![スクリーンショット 2021-12-11 21.49.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336684/8faf5220-ed23-c692-6c3d-1c227e3cf940.png)


とりあえずIoTなやつを出来る準備が完了したので回路を組んでいきたいと思います。

##簡易システム図（汚い）

今回は水槽の自動水替えシステムを作ろうと思うのでシステム図を簡単にまとめるとこんな感じです。
iPadで書いた超雑なやつですが自分で頭の中整理するならこれで十分！

![IMG_0030.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336684/a74a4992-a663-6a64-5d69-e706bf029e15.jpeg)

赤い線のとこがRaspberryPiと繋げてコントロールしようと思っているところです。
青いとこがリレースイッチです。

RaspberryPiからだと直接12V5W使う電磁弁の電源は確保できないので
後から電磁弁の電源を別でUSBの5Vから取る回路を追加しました。

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">電磁弁テスト <a href="https://t.co/Z3q2NZ4dYb">pic.twitter.com/Z3q2NZ4dYb</a></p>&mdash; 坂根一馬@回路図自動生成サービス作ってます。 (@earthfreedom) <a href="https://twitter.com/earthfreedom/status/1467024213815230465?ref_src=twsrc%5Etfw">December 4, 2021</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

https://www.amazon.co.jp/gp/product/B07KR33BWG/ref=ppx_yo_dt_b_asin_title_o00_s03?ie=UTF8&psc=1

電磁弁は12Vで稼働するみたいなので昇圧回路を間に噛ませてUSBの5Vを12Vに変換。

https://www.amazon.co.jp/gp/product/B07R172HYJ/ref=ppx_yo_dt_b_asin_title_o08_s01?ie=UTF8&psc=1

給水ポンプは元々持ってたコンセントから電源取るやつを100Vに対応したリレーに噛ませてコントロールする。

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">リレー見つけた！ <a href="https://t.co/cw6pN8wZnB">pic.twitter.com/cw6pN8wZnB</a></p>&mdash; 坂根一馬@回路図自動生成サービス作ってます。 (@earthfreedom) <a href="https://twitter.com/earthfreedom/status/1468924721282822147?ref_src=twsrc%5Etfw">December 9, 2021</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

上のが家に転がってた。

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">100V電源コントロールOK <a href="https://t.co/ws6AwUt96g">pic.twitter.com/ws6AwUt96g</a></p>&mdash; 坂根一馬@回路図自動生成サービス作ってます。 (@earthfreedom) <a href="https://twitter.com/earthfreedom/status/1469615978992799744?ref_src=twsrc%5Etfw">December 11, 2021</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

これでポンプのコントロールが出来た。

電磁弁に使うリレーは無かったので嘉穂パーツセンターで購入した。
<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">表側<br>ユニバーサル基盤ちょっとデカすぎたかもしらん <a href="https://t.co/09nAaiXzkV">pic.twitter.com/09nAaiXzkV</a></p>&mdash; 坂根一馬@回路図自動生成サービス作ってます。 (@earthfreedom) <a href="https://twitter.com/earthfreedom/status/1469653382952816641?ref_src=twsrc%5Etfw">December 11, 2021</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
基板上に見える青いパーツがそれ。

ほんで一番のキモだった水替えは水が汚れたと判断したら自動でスイッチが入って欲しかったのでphセンサーを使いたかったが海外発送で今日までには届かなかった。
https://atlas-scientific.com/kits/ph-kit/

仕方ないので出来る範囲でRaspberryPiからコントロールできるようにした。

##給水装置

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">給水装置はこんな感じで動く。<br>水槽のフロースイッチで満水を検知するもしくは給水側のフロースイッチで水切れを検知すると給水が止まる。 <a href="https://t.co/DcVnAm6Aoi">pic.twitter.com/DcVnAm6Aoi</a></p>&mdash; 坂根一馬@回路図自動生成サービス作ってます。 (@earthfreedom) <a href="https://twitter.com/earthfreedom/status/1469655947086020610?ref_src=twsrc%5Etfw">December 11, 2021</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

##排水装置はこんな感じ

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">排水は水槽の外部フィルターからの排水を分岐させてその先を電磁弁で開閉をコントロールしてみた。<br>フロートスイッチで満水になると電磁弁を閉じて止まる。 <a href="https://t.co/VlN808KK0l">pic.twitter.com/VlN808KK0l</a></p>&mdash; 坂根一馬@回路図自動生成サービス作ってます。 (@earthfreedom) <a href="https://twitter.com/earthfreedom/status/1469657300088799235?ref_src=twsrc%5Etfw">December 11, 2021</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

##今後
失敗したのが水槽自体への排水を切ってあげないと全然排水できないので電磁弁を一個追加して自動水替えするときの排水時に水槽への排水を切ってあげるのと
そもそもこの電磁弁が流量少ないのでもっと大きい流量に対応した電磁弁を手に入れた方が良いかもしれない。
水槽への排水切り替えよう電磁弁は忘れずに常時開のものを買わないと常に電気流さないと行けなくなるので注意。

##Node-Redのフロー図はこんな感じ
まだ届いてないセンサーも仮配置してます。

![スクリーンショット 2021-12-11 22.28.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336684/253119bc-4c33-57c4-770b-f7865d0627f3.png)


今日できたのはここまでだけどとりあえず給排水の自動化までは出来たので合格だと思いたい。

phセンサー届いたらこのごちゃごちゃした感じを綺麗に収めてがちで使えるものまで持って行く予定。

本日は以上！