安価な静電容量式の土壌水分センサーの校正

# 記事の概要
数百円の安価な土壌水分センサーは温度や土壌のEC濃度の影響で測定値が大きくばらつきます。
そのため、使用したい土壌に合わせて校正することが推奨されます。

本記事では以下の資料を参照して校正を行いました。

[土壌水分センサーの簡単校正法](http://soillab.ag.saga-u.ac.jp/com/calib1.pdf)

# 土壌水分センサーの種類
土壌水分センサーには、様々な種類があります。

土壌から水を吸い出すのに必要な圧力を計測するマトリックポテンシャルセンサー（MPセンサー）や土壌と水分の静電容量の相関性から、土壌に含まれる水の割合を測定する測定静電容量式（誘電率）水分計（TDR）等々があります

各センサの原理については以下の資料が詳しいです。

[土壌センサーを用いたフィールドモニタリングの基礎と応用](http://www.iai.ga.a.u-tokyo.ac.jp/mizo/seminar/140807/140807soilsensor.pdf)

研究室やプロの農家が使う土壌水分センサーは2万円以上のものが多く、趣味の園芸で使用するのには敷居が高いです。
また、広範囲に複数のセンサーを配置したい場合にはコストがかかり過ぎます。

# 安価な土壌水分センサー
<img width="50%" alt="土壌水分センサー.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150620/f0c7a859-f073-5be0-dfce-464d181ef3f3.jpeg">

今回使用する土壌水分センサはAMAZONなどの通販サイトにおいて5個1セット1000円前後で売られている静電容量式土壌水分センサーです。
似たようなセンサが異なるメーカーから出ています。

[AMAZONで販売されている静電容量式土壌水分センサーの例1](https://www.amazon.co.jp/HiLetgo-5%E5%80%8B%E3%82%BB%E3%83%83%E3%83%88-%E9%9D%99%E9%9B%BB%E5%AE%B9%E9%87%8F%E5%BC%8F%E5%9C%9F%E5%A3%8C%E6%B0%B4%E5%88%86%E3%82%BB%E3%83%B3%E3%82%B5%E3%83%BC%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%ABArduino%E3%81%AE%E3%82%B1%E3%83%BC%E3%83%96%E3%83%AB%E3%83%AF%E3%82%A4%E3%83%A4%E3%81%A8%E5%BA%83%E3%81%84%E9%9B%BB%E5%9C%A73-3%E3%80%9C5-5-v/dp/B083FSJ1BY/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&dchild=1&keywords=HiLetgo+5%E5%80%8B%E3%82%BB%E3%83%83%E3%83%88+%E9%9D%99%E9%9B%BB%E5%AE%B9%E9%87%8F%E5%BC%8F%E5%9C%9F%E5%A3%8C%E6%B0%B4%E5%88%86%E3%82%BB%E3%83%B3%E3%82%B5%E3%83%BC%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB&qid=1607480301&s=industrial&sr=1-1)
[AMAZONで販売されている静電容量式土壌水分センサーの例2](https://www.amazon.co.jp/DiyStudio-%E5%9C%9F%E5%A3%8C%E6%B0%B4%E5%88%86%E3%82%BB%E3%83%B3%E3%82%B5%E3%83%BC-Arduino-Raspberry-%E3%82%A2%E3%83%8A%E3%83%AD%E3%82%B0%E5%AE%B9%E9%87%8F%E6%80%A7%E5%9C%9F%E5%A3%8C%E6%B0%B4%E5%88%86%E3%82%BB%E3%83%B3%E3%82%B5%E3%83%BCV1-2%E8%80%90%E9%A3%9F%E6%80%A7/dp/B07MC9ZGXL/ref=pd_sbs_328_1/355-5385602-1972666?_encoding=UTF8&pd_rd_i=B07MC9ZGXL&pd_rd_r=985c5de3-4161-4e42-b5f2-721ddd54f4db&pd_rd_w=Ozoi4&pd_rd_wg=wqSrK&pf_rd_p=c295905f-82f9-4d73-8142-c393a4211258&pf_rd_r=3WSWHH4ZXSZE389STZWJ&psc=1&refRID=3WSWHH4ZXSZE389STZWJ)

以下のサイトではとても低い評価になっています。

[土壌観測応援コミュニティ：総合評価](http://soillab.ag.saga-u.ac.jp/com/evaluation.html)
[土壌観測応援コミュニティ：レビュー](http://soillab.ag.saga-u.ac.jp/com/review.html)
> 非常に限られた条件においてのみ，水分量を評価できる可能性がわずかに(?)あるものです。

> 正しく水分量を評価したい人には，いくら安くても決してすすめられないセンサーです。

そのため、私はこの土壌水分センサーを用いて正確な水分量を測定しようとは思っていません。

この土壌水分センサーの用途として想定しているのは、土が乾いているかいないかをざっくり判定することです。

後日に紹介する自動給水装置では、土が乾燥気味になった時に自動で水やりを行います。土壌水分センサーは、その乾燥を判定するのに使えれば十分です。

# 何を測定するか？

土壌の体積含水率を測定します。
体積含水率は土の中に含まれる水の割合です。

体積含水率 $\theta$ = 水の体積 $[\mathrm{m}^3]$ / 土の体積 $[\mathrm{m}^3]$

測定方法は単純です。

1. 乾燥した一定の体積の土を用意する
2. 水を入れる
3. 土壌水分センサーで測定する

入れる水の量を変更することで測定値がどのように変化するかを計測します。
それにより体積含水率と誘電率の近似式が求まります。

# 測定準備

## 土壌
土壌にはココナッツピートを使用します。ヤシガラを砕いたもので、普通は土に混ぜて使用しますが、今回はこれだけを使います。
これを採用した理由は、常に同じ条件の土壌を用意する為です。

普通の園芸用の土は、同じメーカーで購入しても成分が一定ではなく、更には使用される場所の温度や湿度の影響を強く受けます。
庭や畑の自然の土を使用すれば、更に複雑になります。

それに比べて、ココナッツピートは、単なる乾燥したおが屑みたいなものですから、成分のバラつきが少なく、外部環境の影響を受けにくいです。

欠点は土壌の栄養分がまったくないことで、常に肥料を混ぜた水を与えないといけません。
後日に紹介する自動給水装置では、あらかじめ水の中に液体肥料を混ぜておきます。

ちなみに200リットルを購入したら、25㎏もあり、こんなでかいのが届いてしまいました。
家の置き場所に余裕のない人は、購入サイズを間違えないようにお気をつけください。
<img width="30%" alt="ココナッツピート.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150620/ae3adbf0-803c-cb8e-94ee-32f4e954b1a3.jpeg">

中身はこんなさらさらしたヤシガラが詰まっています。
<img width="30%" alt="ココナッツピート2.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150620/1d460461-9dce-4a0c-9e3e-a48f4d498aef.jpeg">

## 計量用具
測定方法は単純ですが、一般家庭には意外と正確な計量をする道具がありません。

今回はプラスチックケースと料理用の計量カップを使用しました。
正確性には欠けますが、ざっくりした判定ができればいいので、これで十分です。

プラスチックケースは百均ショップで200円で購入したもので、赤い線を引いて、その高さまで土を敷き詰めます。
計測したところ、体積は1,100$\mathrm{cm}^3$になります。

<img width="30%" alt="測定用ケース.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150620/388bfe37-291d-c58f-d387-c0cc55d446cb.jpeg">

<img width="30%" alt="測定用ケース2.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150620/9d9e6383-089a-03a5-6fb7-42b2e9f9a057.jpeg">

計測するごとに土をバケツに戻して、水を100ccずつ投入します。
水を投入した際は、よくかき混ぜてから、またプラスチックケースに戻します。

<img width="30%" alt="水投入.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150620/13701b94-9dae-c7e4-abbb-7b42afec6b50.jpeg">

計700ccになるまで水を投入した頃には、水を吸い取り切れなくなり、ビチョビチョになりました。

<img width="30%" alt="700cc.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150620/05e4b923-5575-3947-1d1c-00b62b7dd00b.jpeg">

余裕があれば、土壌のEC濃度を変えて、同様の測定を繰り返します。

## 防水加工

土壌水分センサーは基板がむき出しです。
これでは野外では使えないので防水加工します。この加工により、鳥や小動物、虫などによる破損も防ぐこともできます。

ホットボンドで部品を覆います。測定はこの状態の土壌水分センサーを用いて行います。
<img width="30%" alt="基板保護1.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150620/52591771-e6e6-b2e1-8f9e-aaa64e299c35.jpeg">

<img width="30%" alt="基板保護2.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150620/107b0662-0d6e-20d4-2ea2-1dc7830bc39e.jpeg">




## マイコンとの接続
昨今はRaspberry piやmbed、Arudinoなどを使う場合が多いですが、今回はマイコンを使います。

また、BLE通信でデータ取得を行いたいので、NordicのnRF52832を使用します。

nRF52832の評価ボードを購入し、ピンヘッダ用接続ケーブルで3.3V、GND、そしてアナログ入力端子のP0.02を土壌水分センサーと接続します。

<img width="50%" alt="土壌水分センサー配線.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150620/f729bf09-6d3f-3ebd-2fef-01dc00a7c943.jpeg">

測定は以下のように土壌水分センサーを突き刺しながら行います。

<img width="50%" alt="測定風景.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150620/7625a59c-85fb-1b37-bcf6-01e131b2db58.jpeg">


## ファームウェアの書き込み
マイコンを動かすプログラムのことをファームウェアと呼びます。

AD変換で土壌水分センサーの計測を行い、BLE通信でその計測値をアプリに送信します。
ファームウェアは以下で公開しています。

https://github.com/matsuikosuke/matsuikosuke-ble_peripheral_soil_moisture

AD変換は内部電圧0.6Vを4分圧した2.4Vを上限にして12ビットの分解能で測定しています。
土壌水分センサーは最大3V出力なのですが、2.4V以上は全て0xFFFの出力になってしまいます。

普通は抵抗を使って分圧し、最大出力3Vを2.4Vに降圧するのですが、今回は乾燥した初期の電圧が2.4V以下だったので、そのまま使用しています。

AD変換は4chを使用しています。
今回の計測では、土壌水分センサー1chしか使っていないので、残りの3つのAD変換は不定値が取得されています。
10回の測定の平均値を出力しているので、センサー計測開始してからしばらくは以前の測定結果も含めた平均値が出力されているのでご注意ください。

AD変換については以下の記事をご参照ください。

[BLEモジュールnRF52のPPIによるAD変換](https://qiita.com/Kosuke_Matsui/items/403b9fae1dc2658154f0)

AD変換のデータはcentralからのreadでの読み込み、もしくはperipheralから周期的に送信されるindicationで取得できます。

## アプリ
アプリはNordicが無料で配布しているnRF Connectを使用します。

- [nRF Connect for Mobile(Android App)](https://play.google.com/store/apps/details?id=no.nordicsemi.android.mcp&hl=ja&gl=US)
- [nRF Connect: Bluetooth App(iOS App)](https://apps.apple.com/jp/app/nrf-connect/id1054362403)
- [nRF Connect for Desktop](https://www.nordicsemi.com/Software-and-tools/Development-Tools/nRF-Connect-for-desktop/Download)

nRF Connectを起動させるとSCANにより土壌水分センサーのDevice Name「SOIL-1234」を検知します。

<img width="30%" alt="アプリ1.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150620/2164923a-c41b-095a-916f-c155bbf8af6b.jpeg">

サービス一覧の中からReadもしくはIndicateを選択するとAD変換値を取得できます。
赤で囲った部分がAD 0chの測定値です。

<img width="30%" alt="アプリ2.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150620/353a7301-41a7-df07-5d16-86f86a2e880f.jpeg">


## 使用器具一覧

- 土壌水分センサー
    - [AMAZONで販売1](https://www.amazon.co.jp/HiLetgo-5%E5%80%8B%E3%82%BB%E3%83%83%E3%83%88-%E9%9D%99%E9%9B%BB%E5%AE%B9%E9%87%8F%E5%BC%8F%E5%9C%9F%E5%A3%8C%E6%B0%B4%E5%88%86%E3%82%BB%E3%83%B3%E3%82%B5%E3%83%BC%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%ABArduino%E3%81%AE%E3%82%B1%E3%83%BC%E3%83%96%E3%83%AB%E3%83%AF%E3%82%A4%E3%83%A4%E3%81%A8%E5%BA%83%E3%81%84%E9%9B%BB%E5%9C%A73-3%E3%80%9C5-5-v/dp/B083FSJ1BY/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&dchild=1&keywords=HiLetgo+5%E5%80%8B%E3%82%BB%E3%83%83%E3%83%88+%E9%9D%99%E9%9B%BB%E5%AE%B9%E9%87%8F%E5%BC%8F%E5%9C%9F%E5%A3%8C%E6%B0%B4%E5%88%86%E3%82%BB%E3%83%B3%E3%82%B5%E3%83%BC%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB&qid=1607480301&s=industrial&sr=1-1)
    - [AMAZONで販売2](https://www.amazon.co.jp/DiyStudio-%E5%9C%9F%E5%A3%8C%E6%B0%B4%E5%88%86%E3%82%BB%E3%83%B3%E3%82%B5%E3%83%BC-Arduino-Raspberry-%E3%82%A2%E3%83%8A%E3%83%AD%E3%82%B0%E5%AE%B9%E9%87%8F%E6%80%A7%E5%9C%9F%E5%A3%8C%E6%B0%B4%E5%88%86%E3%82%BB%E3%83%B3%E3%82%B5%E3%83%BCV1-2%E8%80%90%E9%A3%9F%E6%80%A7/dp/B07MC9ZGXL/ref=pd_sbs_328_1/355-5385602-1972666?_encoding=UTF8&pd_rd_i=B07MC9ZGXL&pd_rd_r=985c5de3-4161-4e42-b5f2-721ddd54f4db&pd_rd_w=Ozoi4&pd_rd_wg=wqSrK&pf_rd_p=c295905f-82f9-4d73-8142-c393a4211258&pf_rd_r=3WSWHH4ZXSZE389STZWJ&psc=1&refRID=3WSWHH4ZXSZE389STZWJ)
- バケツ
    - 百均ショップで購入
- プラスチックケース
    - 百均ショップで購入
- スコップ
    - 百均ショップで購入
- 計量カップ
    - 家にあったものを使用
- ココナッツピート
    - [ココナッツピート (容量200L)](https://www.amazon.co.jp/%E3%82%B3%E3%82%B3%E3%83%8A%E3%83%83%E3%83%84%E3%83%94%E3%83%BC%E3%83%88-%E5%AE%B9%E9%87%8F200L/dp/B01B5UVL56/ref=sr_1_4?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&dchild=1&keywords=%E3%82%B3%E3%82%B3%E3%83%8A%E3%83%83%E3%83%84%E3%83%94%E3%83%BC%E3%83%88&qid=1607770332&sr=8-4)
        - デカすぎるので注意されたし
- 液体肥料
    - [ハイポニカ](https://www.amazon.co.jp/%E3%83%8F%E3%82%A4%E3%83%9D%E3%83%8B%E3%82%AB-%E6%B0%B4%E8%80%95%E6%A0%BD%E5%9F%B9-%E6%B6%B2%E4%BD%93-%E8%82%A5%E6%96%99-500mL/dp/B00KNSECQC/ref=sr_1_6?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&dchild=1&keywords=%E6%B6%B2%E4%BD%93%E8%82%A5%E6%96%99&qid=1607770400&sr=8-6)
- nRF52832
    - [nRF52832 MDBT42Q 評価ボード](https://www.switch-science.com/catalog/5526/)
- ケーブル
    - [ピンヘッダ用接続ケーブル（20P/L200）](https://www.aitendo.com/product/15275)
        - PS：プラグ〜ソケットを使用
- ホットボンド
    - [goot(グット) ホットボンド トリガー付き Φ11㎜ホットスティック用](https://www.amazon.co.jp/gp/product/B001D7DPFG/ref=ppx_yo_dt_b_d_asin_title_o00?ie=UTF8&psc=1&fpw=alm)
- ホットボンド用スティック
    - [goot(グット) ホットスティック 乳白色](https://www.amazon.co.jp/goot-%E3%82%B0%E3%83%83%E3%83%88-%E3%83%9B%E3%83%83%E3%83%88%E3%82%B9%E3%83%86%E3%82%A3%E3%83%83%E3%82%AF-%E9%9B%BB%E5%AD%90%E9%83%A8%E5%93%81%E3%81%AE%E5%9B%BA%E5%AE%9A%E3%81%AB-HB-150S-RS/dp/B084GCMXZ3/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&dchild=1&keywords=%E3%83%9B%E3%83%83%E3%83%88%E3%82%B9%E3%83%86%E3%82%A3%E3%83%83%E3%82%AFHB150SRS&qid=1607770894&sr=8-1)

# 測定結果
AD変換値は10回測定した平均値を取得しています。
更に複数の個所に刺して測定した平均を取っています。
水を入れても土壌に吸収されるので、土の総体積は同じとみなしています。

土壌水分センサーは警告線ギリギリまで差し込みました。

土壌が乾燥している時は、空気に触れることで測定値が大きくバラつきました。


![グラフ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150620/6c9a88d2-c1ea-945b-001e-0570f86e4921.png)

| 電圧[V] | 体積含水率 θ | 
|------------:|:------------:|
| 1.837| 0.091| 
| 1.504| 0.182| 
| 1.355| 0.273| 
| 1.284| 0.364| 
| 1.238| 0.455| 
| 1.175| 0.545| 
| 1.136| 0.636| 

# 考察
計測の正確性には期待できませんが、土壌が濡れている時とそうでない時では出力電圧に明らかな差が見られました。
AD変換で計測した電圧が1.4Vを超えたあたりで土壌が乾燥していると判定できそうです。

水に肥料を入れ、EC濃度が変わると出力電圧にも影響が出るかもしれません。

また、同一の環境を再現しやすいという理由だけで、ココナッツピートに土を混ぜずに使用してしまいましたが、これで無事に植物が育つかは分かりません。
生育に問題があれば、土を混ぜた上で再測定したいと思います。

# 関連記事
（随時追加）