■ 静電容量式 土壌水分センサー SKU: SEN0193 のテスト ■

 我が家の家庭菜園では、多忙になるとついつい水やりを忘れてしまい、植物がしおれてしまうことがまれにあります。
 水やりのタイミングを知らせるための土壌水分の検出方法も、これまで色々と調べてきましたが、安価に自作する良い手立てがなかなか見つかりませんでした。
 特に、2本の電極を土壌に挿して電極間の直流抵抗値を測る方法は、土壌の性質や肥料などの成分により抵抗値が大きく変わるので、頻繁に土壌に合わせた校正(キャリブレーション)が必要になり面倒です。
 また、プリント基板を電極にした安価な抵抗値センサーは、電極の腐食が激しく使い物にならないと思います。

 今回見つけた「静電容量式 土壌水分センサー SEN0193」は、高価な土壌水分計にも使われることのあるパルス電圧を使用して、水分による電極間の静電容量の変化を簡易的に測定するものです。
 もちろん、電気抵抗ではなく静電容量ですから、電極を土壌に露出させることなく防水の状態で使用できます。
 「SEN0193」も、プリント基板に電極パターンが作られていますが、銅箔がレジスト(保護膜)で覆われているので、レジストが剥がれない限り電極が腐食する心配もありません。

 簡易的なセンサーですから、正確な水分量を測ることはできないと思いますが、水やりのタイミングを知る手立てにはなると思いますのでテストをしてみました。


秋月電子のモジュール (DFRobot社) [SEN0193]

・動作電圧 : 3.3〜5.5 V DC
・出力電圧 : 0〜3.0 V DC
・動作電流 : 5 mA
・接続接点 : PH2.0-3P
・寸   法 : L 98mm × W 23mm 
         L 3.86インチ × W 0.905インチ
  AliExpressAmazonのモジュール [v1.2]

・動作電圧 : 3.3〜5.5 V DC
・出力電圧 : 0〜3.3 V DC
・動作電流 : 5.5 mA
・接続接点 : PH2.0-3P
・寸   法 : L 98mm × W 23mm 
         L 3.86インチ × W 0.905インチ


SEN0193の日本語データ・シートが見つからないので、私的に翻訳してあります。
SEN0193 日本語データ・シート 原本 SEN0193
 
個人で使用するために翻訳した物を掲載しておりますので、翻訳間違いや誤字による、
いかなる損害にも責任を負いません。



SEN0193 テスト・プログラム
 
回 路
 
 ・モジュールの回路構成は、データシートに掲載の通りとてもシンプルです。
 ・CMOSタイマーIC「TLC555」により、約520KHzの方形波信号(パルス)を発生させます。
 ・その方形波信号が、10KΩの抵抗器とセンサーのプリント基板パターンによるコンデンサー成分
  とで構成される積分回路を通ると、形波の角が丸くなった積分波形になります。
 ・水分によりセンサーの静電容量が変化するとRC積分回路の時定数も変わるため、
  方形波の波高値が変化します。
 ・水分量が多くなりコンデンサー成分が増えると、積分波形の波高値も下がります。
 ・その後、ダイオードで逆流を防ぎ、1μFのコンデンサーで積分波形を平滑して直流電圧にします。
 ・これにより、水分量が少なく積分波形の波高値が高いと出力の直流電圧が高くなり、
  水分量が多くなると波高値が下がって出力電圧も下がります。
 ・この出力電圧をマイコンのA/D変換器で測定して水分量を検知します。

 ・DFRobot社とAliExpressまたはAmazonのモジュールは、回路構成は同じですがCMOSタイマーIC
  「TLC555」の抵抗値が違うので、方形波の発振周波数が少し違います。
    DFRobot社 : 520KHz  AliExpressまたはAmazon : 400KHz  (実測値)
 ・また、モジュール基板上に搭載されているレギュレーターの電圧も違うので、出力電圧も少し
  違いがあります。
    DFRobot社 : 3.0V  AliExpressまたはAmazon : 3.3V
 ・水分に対する出力電圧の特性は、ほぼ同じです。

 ・センサーを、Arduino UNO (ATmega328P)と「LCD Keypad Shield」、または当ページに掲載の
  AVR & BASCOM-AVR トレーニング・ボードに接続してテストします。
 ・もちろん、各種のAVRやポートを選択することもできます。
 ・[+]と[−]を3.3V〜5V電源に接続。 [A]をマイコンのA/D(アナログ入力)ポートに接続。

回 路 図  PDF版  ArduinoLcdKS_SEN0193_Cir.pdf
 
   注意! この図面を使用した、いかなる損害にも責任を負いません。

 
SEN0193の出力電圧と、A/D変換値から水分量への換算式
 
 ・モジュールからの出力電圧は、乾燥時(センサーを空気中に保持)で約2.5V、
  水中時(センサーを水に差し込む)で約1.3V(実測値)です。

 ・水分量の測定の前に、乾燥時と水中時のしきい値を測定して記憶します。
  (下記の操作方法を参照)

 ・テスト プログラムでは、下記の測定処理を行います。
  (1) モジュールからの出力電圧をA/D変換し、その値をLCDに表示します。
      [AD:XXXX]  (AVRのA/Dは10bitなので変換値は0〜1023)
  (2) A/D変換値を電圧値に換算します。
    5.00V(基準電圧)÷1024階調×10000000(有効5桁*小数点以下2桁)×[A/D値]÷100000(有効5桁の相殺)
    上記の式を簡略化して、5.00V(基準電圧)×100倍(小数点以下2桁)×[A/D値]÷1024階調
    これにより、センサーの出力電圧は小数点以下2桁を100倍した0〜500(x0.01)となります。
    算出された電圧値をBASIC言語の「Format」命令でLCDに小数点表示します。
      [OV:X.XXv]
  (3) 水分量の計算を行います。
    A/D値から水中時のオフセット(しきい値)を差し引きます。(水中時を0とする)
    乾燥時と水中時のしきい値の差分を求め、水分量の百分率を求めます。
    このセンサーは、乾燥時と水中時の比率が逆になるので、水分量を逆比例に変換します。
    求められた水分量(目安の値)をLCDに%表示します。
      [Moisture:XXX%]
  (4) 水分量の百分率値から、LCDにカップの絵図で水分量を表示します。


Arduino + LCD Keypad Shield 版
プログラム   テキスト形式 ソースファイル  ArdLcdKy_SEN0193_A001.TXT
 BASCOM-AVR用 ソースファイル  ArdLcdKy_SEN0193_A001.bas
 書込器用 HEXファイル   ArdLcdKy_SEN0193_A001.hex


AVR & BASCOM-AVR トレーニング・ボード 版
プログラム   テキスト形式 ソースファイル  SEN0193_Test_001.TXT
 BASCOM-AVR用 ソースファイル  SEN0193_Test_001.bas
 書込器用 HEXファイル   SEN0193_Test_001.hex
  
注意! 著作権は放棄しておりませんので、販売や配布目的での使用は絶対にしないで下さい。
       (記事の無断転載を除き、個人での使用は可能です。 改変、自作品の掲載、リンクもご自由に。)




操作方法
 
1.乾燥時と水中時のしきい値を設定する。
 
  ・「Arduino」では[SELECT]スイッチ、「トレーニング・ボード」では[SW1][SW2]を同時に押して
   しきい値の設定モードに入ります。

  ・センサーを空気中に保持した状態で、「Arduino」では[UP]スイッチ、「トレーニング・ボード」
   では[SW1]を押して、乾燥時のしきい値を設定します。
 
  ・カップに水を6cmほど汲み、センサーを水中に入れた状態で、「Arduino」では[DOWN]スイッチ、
   「トレーニング・ボード」では[SW2]を押して、水中時のしきい値を設定します。
 
  ・しきい値の設定が完了した後、「Arduino」では[SELECT]スイッチ、「トレーニング・ボード」
   では[SW3]を押してしきい値を記憶し、設定モードを終了します。
 
  ・しきい値はAVRのEEPROMに記憶しますので、一度設定を行えば電源を切っても設定値を
   記憶しています。

 
2.水分量の測定
 

  ・測定は500mS毎に行われ、表示も同じ間隔で更新されます。
 
  ・しきい値の設定に異常がある場合は、[Moisture:Error!] と表示されますので、
   しきい値の設定をやり直してください。
  ・A/D変換の誤差やノイズによりA/D変換値がしきい値を超えた場合は、それぞれ
   [DryOvr]と[WetOvr] の表示になります。 (土壌の測定時には影響ありません)
 
  ・LCDの右下に表示される水分量の絵図は、下記の値で変化します。
 水分量 (%)  LCDの絵図
 90〜100%  [W]の文字 
 80〜89%  カップに縦8ドットの横線 
 70〜79%  カップに縦7ドットの横線
 60〜69%  カップに縦6ドットの横線
 50〜59%  カップに縦5ドットの横線
 40〜49%  カップに縦4ドットの横線
 30〜39%  カップに縦3ドットの横線
 20〜29%  カップに縦2ドットの横線 
 10〜19%  カップに縦1ドットの横線
  0 〜 9%  [D]の文字 

 
3.測定の実例 (水分量は参考値です)
 
  ・土壌の硬さや土とセンサーの密着度、並びに土壌全体とセンサー間の水分の行き渡り具合で
   かなり数値が変わりますから、水分量のパーセンテージは目安です。
  ・センサーは土壌に固定して、植物の具合を見て水分量の数値を記録し、散水のタイミングを
   見つけるといいでしょう。
 
  ・以下は、しきい値を設定した乾燥状態と水中状態、および「種まき培養土」に水分を加えた
   場合の測定結果です。 

 
乾燥状態  水分量:0%

 
水中状態  水分量:100%

 
土:40g 水:0ml  水分量:3%

 
土:40g
 水:20ml  水分量:25%

 
土:40g
 水:40ml  水分量:47%

 
土:40g
 水:60ml  水分量:72%

 
土:40g
 水:80ml  水分量:91%

 
土:40g
 水:100ml  水分量:98%


  ・Arduino + LCD Keypad Shield 版では、シリアル・ターミナルに測定結果を出力できます。
  ・「Tera Term」等のターミナルソフトで受信します。
  ・ボーレート = 9600 , Parity = None , Stopbits = 1 , Databits = 8 (プログラム内で変更可能)
 
   
 テスト動画






   電子工作の部屋 Top へ 前のページへ戻る