ラズパイ4でリレースイッチを使ってみた

 水遣り自動化を進めていたところ、作物がアブラ虫にヤラれてほぼ全滅。。
 ただ、今回は、コロナ禍最中に自宅で出来る事として、ビオトープを構築しメダカを飼いつつ水遣りを自動化するという、水遣り制御自体は元々ビオトープの子タスクでした。下記がiPadで描いた当初のラフデザインです。

 親タスクであるビオトープ構築に向け、プラ船、棚、ポリタンクを用意、プラ船にドリルで穴を開け、棚板にも穴を開けてポンプでポリタンクとプラ船を循環、ポンプの電源用にとソーラーパネルまで導入してしまいました。

 ソーラーパネルには、コントローラーが付属しており、バッテリーに充電しつつ、直流電源が使えるようになっています。バッテリーは車用でヘタって交換したブツが余っていたので、それをソーラーコントローラーに配線し、直流電源からポンプを稼働させます。

 ただ、このソーラーパネルはポンプを24時間付けっぱなしにしているとバッテリー充電量が足りず(コントローラーの消費電力も侮れない)、いつの間にかポンプが止まっているようなケースがありました。しかも、ポンプからの逆流対策をしていなかったので、プラ船からポリタンクへ逆流して水が無くなり、あわや、メダカ全滅!という危機に。
 これはいかんという事で、ポンプのホースに逆流弁を付け、暫くコントローラーに表示されるバッテリー残量(いまいち信用できないが)を見ながら動かしたり止めたりしてましたが、これこそ自動化すべき案件ですね。リレースイッチでポンプを定期的に動作させる事にしました。
 
 今後の水遣りも電磁弁を使用する予定なので、余裕を持って4チャンネルのコチラを購入。ラズパイのGPIOピンに接続するのは基盤に書かれているので簡単です。リレー自体に極性は無いようなので、動作させるポンプとコントローラーの直流電源に繋ぐ途中にリレーをかます形になります。リレーには接続口が3つありますが、基盤上で繋がっているように書かれた左側と中央を接続すると常時ONでスイッチするとOFF、右側と中央を接続すると常時OFFでスイッチするとONになるようです。

 

 単純にリレースイッチをON・OFFするPythonコードは下記のような感じです。

 せっかくなんで、既に記録をするようになっている照度センサーの値でスイッチを制御するようにしました。

 

 ホテイアオイが凄い勢いで水面を覆っていきますが、メダカも、コケ対策で導入したミナミヌマエビも子供が生まれていい感じになってきました。子供たちの何匹かはポリタンクに落ちてしまったので、頃合いを見て救出予定。

 でも、照度次第で動かすだけなら、ポンプとソーラーパネル直接繋げるでもよくない?

Windows環境からLinux環境にしたらJavaプロセスが動かない

 Windows上で動作させていた既存システムの開発環境を、今回Dockerで動かす形に変えていました。
既存システムの構成上、javaプロセスを2つ立ち上げる必要があり、これまでwindows上でバッチファイルで実行していたのを適当にシェルに置き換えて実行してみましたが、下記のようなメッセージが出てプロセスが動作しません。


See http://www.oracle.com/technetwork/java/javase/documentation/index.html for more details.
/var/lib/apl/tools/lib/app-XXX-server.jar: line 1: $'PK¥003¥004': command not found
/var/lib/apl/tools/lib/app-XXX-server.jar: line 2: $'¥373^¥226P': command not found
/var/lib/apl/tools/lib/app-XXX--server.jar: line 3: ??e?y: command not found
/var/lib/apl/tools/lib/app-XXX--server.jar: line 4: syntax error near unexpected token )'
/var/lib/apl/tools/lib/app-XXX--server.jar: line 4:
?z?z?M)?^)? {,? ?MLy?x?P]?p?PK'

 なんじゃこりゃ?

JAVA実行コマンドとしては、
java -cp resource;lib/* jp.co.esoro.app-XXX.main
のような感じです。

 暫く試行錯誤していましたが、結果的にクラスパスを複数指定するところのセパレータ「;」はWindowsだけで、Linux環境では「:」じゃないとだめというオチでした。。

カテゴリー: Java