Raspberry Pi Zero WでLED照明や水中ポンプの管理

オフィシャルサイト

無線LANでネットワークに繋がりつつ、水耕栽培用のLED照明の管理、水中ポンプの管理、エアポンプの管理、濃度測定や水量警告とかを行いたいので、安くて低性能のRaspberry Pi Zero Wで自作することにする。

目次

運用形態

最終的にこんな感じで運用したい。
そこで順を追ってRasberry Piを含め立ち上げていく。

Raspberry Pi Zero WをHeadlessセットアップ

ここらへんを参照。

  1. Raspberry Pi Imagerを使ってRaspberry Pi OS LiteをSDカードへインストール
  2. SDカードを指し直してマウントし直す。bootというドライブが見えるようになる。
  3. トップディレクトリにwpa_supplicant.confとsshを作成する。
    1. wpa_supplicant.conf WIFIの接続先情報
      ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
      update_config=1
      country=JP
      network={
        ssid="<Name of your WiFi>"
        psk="<Password for your WiFi>"
      }
    2. ssh sshサーバーの有効化
      ファイルさえあればいいので空でok。
      このファイルはセキュリティ都合で起動ごとに削除されるので都度作成すること。
  4. SDカードをRaspberry Pi Zero Wにさして起動。
    初回起動時はパーティショニング等が行われて起動に時間がかかるので注意。
    緑のアクセスランプが落ち着いてくるのを目安に。
  5. SSHで接続。IP直でもいいし、Win10ならrapberrypi.localという名前でもいいらしい。
    ユーザー名は「pi」、初期パスワードは「raspberry」
  6. 「sudo raspi-config」で初期設定を行う。
  7. 「sudo apt update && sudo apt upgrade」でOSを最新へ。

Raspberry Pi Zero WのHW環境を確認

pinoutコマンド

WiringPiのインストール

今の所、ハードウェアPWMを使うにせよ基本は単純な電源のON/OFF管理くらいしかする予定がないのでcrom & gpioコマンドで簡単に済ませたい。

ので、まずは git をインストールする。

sudo apt install git

次にWiringPiをインストールする。
(昔はgitがいるっぽかったけど、今はもういらなかったのでgitインストールしなくてもいい)

sudo apt install wiringpi

より詳細なピン状態の確認

gpio readallコマンドで現在のピン設定や各種マッピングがわかる。

SSR運用のためのGPIO操作

揚水ポンプを24hずっと回してるのも電気代の無駄な上に静かじゃないので、日中に数回だけ水を補充できるようにしたい。
酸素ポンプはもしかしたら24hずっとonのほうがいいのかもしれないが、それは実際に栽培してみて様子を見ることにする。

ので、これは単にgpio on/offだけでSSRをon/offすれば実現できる。
GPIO 12/13/18/19はPWM出力に使えるらしいのでそれ以外の適当なポートを2つということでGPIO4/24を使う。単にGNDが隣りにあるから結線が楽そうってだけ。

gpio -g mode 4 out
gpio -g mode 24 out

highにする方法

gpio -g write 4 1

lowにする方法

gpio -g write 4 0

LED運用のためのGPIO操作

LEDも赤と青を12hごとに交互に点灯したいし、植物に必要なエネルギー量だけを付与させたい。たぶん電気代にも効く。あとLEDの発熱が減るから変に排熱を考えなくても済むかもしれない。ってことでPWM制御でLEDをドライブする。

まずはモードを設定

gpio -g mode 12 pwm
gpio -g mode 13 pwm
gpio -g mode 18 pwm
gpio -g mode 19 pwm

文部科学省の実験レポによると2.5kHz Duty33%でLEDを光らせておけば植物的には十分らしい。(残りの66%で光合成回路で炭素やら酸素を生成)

Rasberry PiのPWM用の源振は19.2MHzらしいので

gpio pwm-ms
gpio pwmc 192
gpio pwmr 40

とすると2.5kHzになる。pwm-msはMark:Spaceモードといい、普通のPWMモード。一方、balancedモードもあるが今回は必要ない。
これらの設定はgpio modeを行うとリセットされてしまうので最後に行うこと。

Duty比33%でon(40/3=14)

gpio -g pwm 12 14

offにする

gpio -g pwm 12 0

なお、12&18、13&19は連動して動くので注意すること。
今回は12&18で赤LED、13&19で青LEDのon/offを制御することにする。

シェアする