1. ackcell

    Posted

    ackcell
Changes in title
+Raspberry pi+slee-Pi2 Plus+リレー付き電源=UPS
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,101 @@
+# 概略
+
+## 目的
+
+[こちらのブログ] (https://qiita.com/MechaTracks/items/b715f4712611e64df78e)でRaspberry piの簡易型UPSの記事がありますが、リレー付き電源を付加してより本格的なUPS化を目指す。
+
+## 仕組み
+
+2系統あるslee-Pi2の電源入力の電圧差を利用して電源断を検出し、shutdownする。
+slee-Pi2に外部入力コネクタに電源と連動したリレーから入力し、電源復帰とともにRaspberry piの再起動を実現する。
+
+## 必要なもの
+
+- Raspberry pi 4 model B w/ Rasbian buster lite 2019-09-26
+- slee-Pi2 Plus
+- ACアダプタ2つ(Hi, Lo)
+
+- 電源と連動するリレー
+
+- スイッチ付きテーブル・タップ
+
+
+![all 2020-02-06 16.45.28.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/580616/b5f77280-a692-8b8d-dff5-655538a6886c.jpeg)
+左から Raspberry pi 4 model B, slee-Pi2 Plus, リレー
+
+### slee-Pi2 Plus
+
+既存の標準モデルslee-Pi2に外部入力コネクタが増設されたモデル。
+
+![slee-Pi2 and slee-Pi2 Plus 2020-02-06 20.44.44.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/580616/61d693fe-b70b-5e73-ec59-60ab46f95233.jpeg)
+上:slee-Pi2標準モデル,下:slee-Pi2 Plus(右上に2つコネクタが増設されている)。いずれもRaspberry piに装着済み
+
+
+
+### リレー
+
+電源入でスイッチが入るリレーで、slee-Pi2 Plusの外部入力コネクタに接続する。
+
+![Relay 2020-02-06 16.45.43.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/580616/1d02975b-c516-8865-3115-00efab6cb5ca.jpeg)
+また、電源はslee-Pi2 Plusの電源コネクタに接続する。
+これで、リレーに接続したACアダプタに電源が入ると、slee-Pi2 Plusに電源が入り、外部入力のスイッチがonになる。これをトリガーとして、Raspberry piの起動が始まる。
+
+![slee-Pi2 Plus 2020-02-06 16.45.38.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/580616/128835b0-9569-b34e-ae06-550abe73d6c7.jpeg)
+リレースイッチをslee-Pi2 Plusの外部入力コネクタ、電源ラインを電源コネクタに接続
+
+### ACアダプタ(hi,Lo)
+
+2系統の電源の電圧差を検出し、シャットダウンするので、電圧が異なるACアダプタを用意します。
+![power 2020-02-09 09.57.16.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/580616/15de353f-8443-bb8c-3d5a-5c1c16efe625.jpeg)
+
+左:15V、右:12V(slee-Pi2標準モデル同梱)
+
+# セットアップ
+
+Raspberry pi、slee-Pi2 Plus、電源、リレー付き電源を接続し、Rasbianの設定を[前回ブログ](https://qiita.com/ackcell/items/ea71147b8603627ec5bf)で言及した[ansible playbook](https://github.com/ackcell/mechatrax-slee-Pi2-Mackerel)でセットアップします。
+
+## 電圧確認
+2系統ある電源の電圧を調べます。直接sleepi2ctl -g voltageを使ってもいいですが、せっかくなのでMackerelのログを見てみます。
+![Screenshot_2020-02-09 RPi4B · Mechatrax-software(1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/580616/aad50580-7887-cc5b-86d4-4304a2e4743c.png)
+
+テーブルタップのスイッチをカチカチとやって、期待通りの電圧がでているか確認します。
+15vと12vでThresholdをその間に設定すればいけそうです。リレーに連動する電源(ACアダプタ)が高い方(15v)であることを確認し、sleepi2-monitor.confでvoltageのthresholdを13vに設定します。
+
+```/etc/sleepi2-monitor.conf
+[voltage]
+command = "shutdown -h now"
+oneshot = true
+threshold = 13000
+```
+thresholdに13000mvを設定して、sleepi2monを再起動するか、Raspberry piを再起動すると、13vが閾値になります。
+
+```
+systemctl restart sleepi2-monitor.service
+```
+
+```
+shutdown -h now
+```
+
+# 実働テスト
+
+これで高い電圧(15v)のACアダプタの電源を切ると、電圧の低い電源(12v)で稼働し続けますが、sleepi2monによるthreshold監視により"shutdown -h now"が実行されます。
+Raspberry piが動作を停止し、再び高い電圧のACアダプタの電源を入れると、連動したリレーがslee-pi2 Plusの外部入力にトリガを与え、Raspberry piが再起動します。
+
+起動・停止時にslackに投稿するメッセージが以下のようになります。
+![Screenshot_2020-02-09 Slack mackerel-io mechatrax-software.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/580616/43893b75-35b7-7281-112d-79386bbda850.png)
+
+起動時のwakeup-flagが"extin"になっており、外部入力をトリガ担っているのが分かります。
+
+# まとめ
+
+この方式により、[以前のブログ](https://qiita.com/MechaTracks/items/b715f4712611e64df78e)にあった課題
+
+・電源復旧までの稼動維持は求めない(電源断⇒シャットダウン出来ればOK)
+・電源断の頻度が少ない(1次電池を使用するため、高頻度だと電池交換も高頻度になりツライ)
+・対象となる台数が少ない(電源復帰時に自動起動ができないので)
+
+の内、最後は解消できます。残りはどのような電源が準備できるかに依存します。また、2系統の電圧の差がある電源を準備しなければなりません。
+
+電源断時に、alertを上げるトリガ(mailやslackなど)とshutdown処理を行うトリガの2つのthresholdで検出できれば、便利かもと思いました。
+