UNOやESP32でもできそうだったので試しましたがうまくいかず、ということでPHセンサーを買ってラズパイに接続してPHを測定することにしました。PHというラズパイやArduinoに接続してPHを計測できるハットを買ってみました。PHのサイト・ebayの販売ページこちらがサイトHomeLab-pHhomelab.linkebayで販売されています。ESP8266ebay.comこちらを買ってみました。アイソレーターがあるので正確かな?PHのプローブは別途購入する必要がありました。プローブはアマゾンでもこういうのがたくさん売っていますので、とりあえずこういうのを使っています。1個目は4ヶ月程度で使えなくなりまして現在2個目のPHプローブ。水にずっと浸けて置くのは良くないとのことで、自分はずっと液肥に入れっぱなしなのですぐに使えなくなるのかもしれません。オリジナル日本語説明書つき5千円くらいのちゃんとしたやつだと液肥につけっぱなしでも、もっと持つのかもしれません。PHをラズパイで使う設定作業それではラズパイでPHを計測する準備をしていきましょう。raspi-config以下のような画面になる。黄色のケーブルをGPIO4にしました。reboot動くかどうかテストしてみる設定完了したのでテストします。以下、デバイスが無い場合。../../../devices/w1_bus_master1たくさんのセンサーが認識されているのは以下のページで作業したds18b20センサーの水温計が6個ほど表示されています。16:09必要なツールをインストールApache2Web表示するのにApache2が必要になるのでインストールします。apache2HomelabHomelabのサイトからラズパイ用のソースを取ってきてインストールします。homelab_install.shこれでインストールは完了。PHのページにアクセスしてみるとりあえずhttp://192.168.31.53:7223(ラズパイからアクセスの場合はhttp://localhost:7223)にアクセスしてみると、以下のように表示されました。PH用の水温計を見つけて選択するのに手間取った。するとPHも表示sれましたが、エラー表示がでます。キャリブレーションしないといけないようです。キャリブレーションしないと正確なPHが出ないのでやってみます。キャリブレーションキャリブレーションにはPHの値になっている校正液が必要です。PH校正液を用意する他のPHセンサーに点いていたPH4.0とPH7.0の校正液を持っていたのでこれでキャリブレーションします。一般的で激安な校正液は粉末タイプで↓このように3個セットのものがアマゾンでも販売されています。PHテスター校正点キャリブレーション画面へキャリブレーションをやってみましょう。開始するには左上にあるレーダーのようなアイコンをクリックします。PH本体のボタンを2秒長押し以下のようにキャリブレーションを開始するには本体のボタンを2秒長押ししてください。書いてあるので、押してみます。released.通訳するとこのようになりました。→『校正モードに入るには、ボード上のボタンを2秒間押し続けます。ボタンを離すと、ボードのライトが消えます。本体の側面↓ボタンがあるのでこちらを2秒長押しします。以下の画面になります。キャリブレーションは3通りの方法があるようです。今回はスタンダードなPH7とPH4を使った2点でキャリブレーションします。きれいな水を用意してPHプローブを洗浄しておきましょう。PH7.0校正液まずはPH7にPHプローブを浸けてPH7.0になるまで待ちます。2」ボタンを押します。続いてPH4.0の校正液にPHプローブを浸けてPH4.0になるまでしばらく待ちます。PH4.3~PH4へと少しずつ下がってくるので、ちょうどPH4になったところで「CALIBRATE」ボタンを押しました。completed』の表示が出る。これでキャリブレーション完了したので、液肥にPHプローブを入れておけば常時PH値を計測してくれます。他のラズパイでキャリブレーションも可能うまくキャリブレーション出来ない場合は他のラズパイでやって、ファイルをコピーする方法もある。他のラズパイで同じようにApache2やHomelabのソースをインストールしてキャリブレーションすると以下のディレクトリにキャリブレーションデータが保存されているのでこれをメインのラズパイにコピーする。/var/www/homelab/cgi-bin/datat_sensor_id:28-01143fab4caaなどのセンサー固有のIDが書かれているccalib_data:キャリブレーションしたデータ。calib_user_id:1557816527.787554842などのID。ccalib_data・calib_user_idの2つのファイルをDLしたあと/home/piにアップロードする。/var/www/homelab/cgi-bin/data/このように所定の場所にパーミッションやオーナーを変更してファイルを移動したらキャリブレーション警告が出なくなりました。最終的にInfluxDBに計測したPHのデータを保存して、Grafanaでグラフ表示させたいので、ph.shファイルを作ってCronで定期的に実行させていきます。PHにあるスクリプトget_pH.shを少し改造してInfluxDBに上げるスクリプトを作っていきます。/home/pi/script/ph.shph.shwriteOutput関数の中のcurlの部分を追加したのみです。fi;;esac}通常は、シェル画面にPH値や温度を表示するだけですが、そのデータをInfluxDBに投げるようにcurlで命令しただけになります。ph=$pH,phtemp=$t,phvol=$v"これを以下のようにApacheのcgi-binの中で実行できるようにシンボリックリンクで置きました。以下のようにrootユーザーになってCronを編集モードでph.shを定期的に実行するように追加します。/var/www/homelab/cgi-bin/ph.sh保存したデータをGrafanaで表示データベースのInfluxDBに保存したPHデータをGrafanaで表示させてみました。以下のように毎日結構な数値が移り変わります。急激にPHが下がったのは水槽を洗って新しい液肥を入れたとき。だいたいPH7前後になっています。7.5以上になったときは、液肥を追加するかPHを下げる液体を入れてました。水耕栽培PHダウン剤をたまに入れてます。全体のGrafana環境グラフはこんな感じ↓TDS・ECセンサーはまだ常用していません。PHを設定してPHデータをInfluxDBに飛ばして保存、Grafanaでグラフ表示できるようになりました。以下失敗メモになります。役に立たない情報が多いので読み飛ばしてください。上側のネジを反時計回りにめいいっぱい回した。最初は4.7Vくらいでめいいっぱいで2.629Vくらいまでしか調整できなかった。");Serial.println(phValue);delay(20);}こういう?数値が出る。-74.52ArduinoのやつなのでESP32ではうまくいかない?みたい。pHValue);}3V(2.5Vまで下がらなかった)でPH7に合わせて水・石鹸水をやってもこのような表示。Nano互換機買った。ビルドオプションが変更されました。全体をリビルドしています。最大32256バイトのフラッシュメモリのうち、スケッチが2858バイト(8%)を使っています。最大2048バイトのRAMのうち、グローバル変数が192バイト(9%)を使っていて、ローカル変数で1856バイト使うことができます。マイコンボードに書き込もうとしましたが、エラーが発生しました。このページを参考にしてください。詳しい情報が表示されます。Uno"ビルドオプションが変更されました。全体をリビルドしています。最大32256バイトのフラッシュメモリのうち、スケッチが2858バイト(8%)を使っています。最大2048バイトのRAMのうち、グローバル変数が192バイト(9%)を使っていて、ローカル変数で1856バイト使うことができます。resp=0x52マイコンボードに書き込もうとしましたが、エラーが発生しました。このページを参考にしてください。http://www.arduino.cc/en/Guide/Troubleshooting#upload「ファイル」メニューの「環境設定」から「より詳細な情報を表示する:コンパイル」を有効にするとより詳しい情報が表示されます。このようなエラーが出る。1.0.5-r2のZipをダウンロードして解凍してからEXEを起動して接続してみた。買ったけどPH測定できず失敗600円くらいでヤフオクでMicroUSBのが売ってたので買った。キャリブレーション左の左側を反時計回りにして2.5Vにする。2.56Vが一番下みたい。fromwww.botshop.co.za2つあったので両方共やってみたが、一つは2.64Vまでしか下がらなかった。くま出没注意ある目的でpHメーターをarduinoで作りたいと思った。pH=-2.37どっちにしろ売ってるやつのほうが良いみたい。エラーになるのでプローブが良くないかもしれない。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。コメントデータの処理方法の詳細はこちらをご覧ください。