はじめに
水分計測センサーは、 Grove-Moisture Sensor を使います。
出力は、アナログ出力となります。このセンサーの主な仕様はこのようになっています。
動作電圧 | 3.3~5.0[V} |
動作電流 | 35[mA] |
乾燥状態のセンサー出力値 | 0~300 |
湿った状態のセンサー出力値 | 300~700 |
水中のセンサー出力値 | 700~950 |
センサーをつなぐ
早速、水分計測センサーとESP-WROOM32を接続してみます。
センサーからは4線出ていますが、白色線は、未使用です。
黄色線 | アナログ出力(SIG) |
白色線 | 未使用 |
赤色線 | 入力電圧(VCC) |
黒色線 | グランド(GND) |
ここでは、黄色線のアナログ出力をESP-WROOM32のSVP( ADC1_CH0 )、赤色線を3.3V、黒色線をGNDに接続します。
プログラムを書き込む
ボード設定がESP32になっているかを確認します。設定が違っていたらESP32 Dev Moduleを選択します。
プログラムは、スケッチ例にある「AnalogReadSerial」を使います。
このサンプルプログラムもADCのA0を使用しているので、プログラムは特に変更なしです。
このプログラムを書き込みます。
書き込み方法は、こちらの記事に書いたのでここでは省略します。
Arduino IDEの基本操作
Arduino IDEの設定からスケッチの作成方法、コンパイル、実行の手順を見ていきます。
動作を確認する
書き込みが完了したら、シリアルモニタでデータを確認してみます。
センサー部に水に湿らせたティッシュペーパーを巻き付けて計測したものです。
数値としては、530前後といったところで、湿った状態を確認できました。
ティッシュペーパーをとると、出力値はゼロになります。
ESP-WROOM32のADCは、誤差が大きく補正が必要なようです。
スイッチサイエンス社のTIPSのAD変換に記載があります。
esp32_tips – スイッチサイエンス
ここでは、乾いている、湿っている、がわかるレベルということで、出力値をそのまま表示しています。
まとめ
ESP-WROOM32のADCで水分量センサーの計測データを取得してみました。
ESP-WROOM32のアナログ返還は、補正が必要なようですが、土壌の水分量を計測して、乾いていたら給水するような自動給水システムのようなものに応用できそうです。
コメント