ラズパイで水槽の液肥 PH測定 Homelab PHを使う

水耕栽培でPHを定期的に測るのにPHを測定するデジタルPH経を買って使っていましたが、やはり自動的に測って勝手にグラフや数値を表示してくれたほうが楽!

Arduino UNOやESP32でもできそうだったので試しましたがうまくいかず、ということでPHセンサーを買ってラズパイに接続してPHを測定することにしました。

ESP32でできないか?とかラズパイで試したりしましたが、ちょっと正確な値が取得できなさそうだったのでebayで売っているHomelab PHというラズパイやArduinoに接続してPHを計測できるハットを買ってみました。

Homelab PHを買ってみる

Homelab PHのサイト・ebayの販売ページ

こちらがサイト

ebayで販売されています。

こちらを買ってみました。アイソレーターがあるので正確かな?

PHのプローブは別途購入する必要がありました。

プローブはアマゾンでもこういうのがたくさん売っていますので、とりあえずこういうのを使っています。ただ1個目は4ヶ月程度で使えなくなりまして現在2個目のPHプローブ。

水にずっと浸けて置くのは良くないとのことで、自分はずっと液肥に入れっぱなしなのですぐに使えなくなるのかもしれません。

5千円くらいのちゃんとしたやつだと液肥につけっぱなしでも、もっと持つのかもしれません。

Homelab PHをラズパイで使う設定作業

それではラズパイでPHを計測する準備をしていきましょう。

水温計用に1-wireを有効にしてconfig.txtを編集

raspi-configで1-wireを有効にする

以下のような画面になる。

水耕栽培 水温 ラズパイ 設定

5 Interfacing Options

水耕栽培 水温 ラズパイ 設定

P7 1-Wire

水耕栽培 水温 ラズパイ 設定

「はい」を選ぶ

config.txtを編集

黄色のケーブルをGPIO4にしました。

動くかどうかテストしてみる

設定完了したのでテストします。以下、デバイスが無い場合。

たくさんのセンサーが認識されているのは以下のページで作業したds18b20センサーの水温計が6個ほど表示されています。残る1個がHomelab PHの水温計。

水耕栽培なので夏になると栽培容器の水温が心配、水温が上昇して30度を超えてしまうと、野菜が枯れてしまいそうなので各栽培容器の水温を測るこ...

必要なツールをインストール

Apache2

Web表示するのにApache2が必要になるのでインストールします。

Homelab

Homelabのサイトからラズパイ用のソースを取ってきてインストールします。

これでインストールは完了。

Homelab PHのページにアクセスしてみる

とりあえずhttp://192.168.31.53:7223(ラズパイからアクセスの場合はhttp://localhost:7223)にアクセスしてみると、以下のように表示されました。

水温計が7個もあるので、Homelab PH用の水温計を見つけて選択するのに手間取った。

homelab_install.sh

たさ、まだ温度しか表示ません。

温度

しばらくするとPHも表示sれましたが、エラー表示がでます。

どうやらキャリブレーションしないといけないようです。

校正が必要

キャリブレーションしないと正確なPHが出ないのでやってみます。

Homelab PH キャリブレーション

 キャリブレーションにはPHの値になっている校正液が必要です。

PH校正液を用意する

他のPHセンサーに点いていたPH4.0とPH7.0の校正液を持っていたのでこれでキャリブレーションします。

PH 校正液

一般的で激安な校正液は粉末タイプで↓このように3個セットのものがアマゾンでも販売されています。

キャリブレーション画面へ

キャリブレーションをやってみましょう。開始するには左上にあるレーダーのようなアイコンをクリックします。

PH 校正液

Homelab PH本体のボタンを2秒長押し

以下のようにキャリブレーションを開始するには本体のボタンを2秒長押ししてください。と書いてあるので、押してみます。

To enter the calibration mode press and hold for 2 seconds the button on the board. The board light should be off when button is released.

通訳するとこのようになりました。→『校正モードに入るには、ボード上のボタンを2秒間押し続けます。 ボタンを離すと、ボードのライトが消えます。』

PH 校正液

本体の側面↓ボタンがあるのでこちらを2秒長押しします。

PH キャリブレーション

キャリブレーション開始

以下の画面になります。キャリブレーションは3通りの方法があるようです。

今回はスタンダードなPH7とPH4を使った2点でキャリブレーションします。

PH キャリブレーション

きれいな水を用意してPHプローブを洗浄しておきましょう。

PH7.0校正液

まずはPH7にPHプローブを浸けてPH7.0になるまで待ちます。

PH キャリブレーション

PH7.0になったら「GO TO STEP 2」ボタンを押します。

PH4.0校正液

続いてPH4.0の校正液にPHプローブを浸けてPH4.0になるまでしばらく待ちます。

PH キャリブレーション

PH4.3~PH4へと少しずつ下がってくるので、ちょうどPH4になったところで「CALIBRATE」ボタンを押しました。

すると以下のように『Calibration completed』の表示が出る。成功のようです。

PH キャリブレーション

これでキャリブレーション完了したので、液肥にPHプローブを入れておけば常時PH値を計測してくれます。

他のラズパイでキャリブレーションも可能

うまくキャリブレーション出来ない場合は他のラズパイでやって、ファイルをコピーする方法もある。他のラズパイで同じようにApache2やHomelabのソースをインストールしてキャリブレーションすると以下のディレクトリにキャリブレーションデータが保存されているのでこれをメインのラズパイにコピーする。

/var/www/homelab/cgi-bin/data

  • t_sensor_id:28-01143fab4caaなどのセンサー固有のIDが書かれている
  • ccalib_data:キャリブレーションしたデータ。これをコピーする。
  • calib_user_id:1557816527.787554842などのID。これもコピーする。

ccalib_data・calib_user_idの2つのファイルをDLしたあと/home/piにアップロードする。

このように所定の場所にパーミッションやオーナーを変更してファイルを移動したらキャリブレーション警告が出なくなりました。

shファイルを作ってInfluxDBにインサート・Grafana表示

最終的にInfluxDBに計測したPHのデータを保存して、Grafanaでグラフ表示させたいので、ph.shファイルを作ってCronで定期的に実行させていきます。

get_pH.shを改造してInfluxDBにインサート

すでにHomelab PHにあるスクリプトget_pH.shを少し改造してInfluxDBに上げるスクリプトを作っていきます。

まずはph.shにコピー

ph.sh

writeOutput関数の中のcurlの部分を追加したのみです。

通常は、シェル画面にPH値や温度を表示するだけですが、そのデータをInfluxDBに投げるようにcurlで命令しただけになります。

これを以下のようにApacheのcgi-binの中で実行できるようにシンボリックリンクで置きました。

Cronで3分おきに実行

以下のようにrootユーザーになってCronを編集モードでph.shを定期的に実行するように追加します。

保存したデータをGrafanaで表示

データベースのInfluxDBに保存したPHデータをGrafanaで表示させてみました。

以下のように毎日結構な数値が移り変わります。急激にPHが下がったのは水槽を洗って新しい液肥を入れたとき。だいたいPH7前後になっています。7.5以上になったときは、液肥を追加するかPHを下げる液体を入れてました。

Homelab PH

水耕栽培PHダウン剤をたまに入れてます。


 

全体のGrafana環境グラフはこんな感じ↓TDS・ECセンサーはまだ常用していません。プローブつけっぱなしは良くないと書いてあったので・・・日に1回プローブを液肥につけて計測するのを忘れたり面倒だったりするんですよねぇ、

Homelab PH

以上で、Homelab PHを設定してPHデータをInfluxDBに飛ばして保存、Grafanaでグラフ表示できるようになりました。

以下失敗メモになります。役に立たない情報が多いので読み飛ばしてください。

PHデータ取得 失敗メモ

ESP32

このページを参考にやってみる

How to use a PH probe and sensor If you worked with PH metering before you will know that PH values range from

6ピン、上から順に

  • TO : 温度出力
  • DO : 3.3V
  • PO – PH analog output ==> Arduino A0
  • Gnd – Gnd for PH probe (can come from Arduino GND pin) ==> Arduino GND
  • Gnd  – Gnd for board (can also come from Arduino GND pin) ==> Arduino GND
  • VCC – 5V DC (can come from Arduino 5V pin) ==> Arduino 5V pin
    POT 1 – Analog reading offset (Nearest to BNC connector)
    POT 2 – PH limit setting

オフセット調整

上側のネジを反時計回りにめいいっぱい回した。最初は4.7Vくらいでめいいっぱいで2.629Vくらいまでしか調整できなかった。

こういう?数値が出る。

ArduinoのやつなのでESP32ではうまくいかない?みたい。

ESP32 こちらも失敗

こちらを参考に、↓

うまくいったと思ったが水や石鹸水に入れても同じ・・・・

3V(2.5Vまで下がらなかった)でPH7に合わせて水・石鹸水をやってもこのような表示。

Arduino Nano互換機 PH測定できず失敗

古いけど・・・Arduino Nano互換機買った。ケーブルが旧タイプのMiniUSB・・・

Arduino IDE 1.8.8で書き込めない・・・

このようなエラーが出る。

別バージョン Arduino IDE 1.0.5-r2

Arduino IDE 1.0.5-r2のZipをダウンロードして解凍してからEXEを起動して接続してみた。

書けたけど、プロープが壊れてる?

Arduino UNO 買ったけどPH測定できず失敗

600円くらいでヤフオクでMicroUSBのが売ってたので買った。

オフセット 調整 2.5Vにする

このスクリプトでやる

左回りにめいいっぱいやっても2.64しかいかなかった;・・・2.5Vにはできない(泣)

PHプローブの接続と校正 キャリブレーション

左の左側を反時計回りにして2.5Vにする。2.56Vが一番下みたい。これ以上いかない。

How to use a PH probe and sensor If you worked with PH metering before you will know that PH values range from

2つあったので両方共やってみたが、一つは2.64Vまでしか下がらなかった。

PH3ファイル

How to use a PH probe and sensor If you worked with PH metering before you will know that PH values range from

以下のようになる・・・

PHファイル

ある目的でpHメーターをarduinoで作りたいと思った。まずは、材料調達。...

あってるかな?

PH2ファイル

このような数値になる・・・

どっちにしろ売ってるやつのほうが良いみたい。

でもエラーになるのでプローブが良くないかもしれない。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする