土壌センシングから始める 猫でもわかる農業DX入門　第2回

## 初めに
　本記事は⼟壌センシングから始める 猫でもわかる農業DX⼊⾨という連続記事の２回⽬です。この連続記事は、スマート農業、電⼦⼯作、IoT、DXに関⼼がある⽅を対象としています。特にM5stackやESP32等のマイコンボードをターゲットにして説明していきますが、この記事の内容をmicroPythonに移植することにより、UIFlowやmicrobit等の教育⽤のプラットフォームで使⽤することも可能になります。
 この連続記事は、
１回⽬ ⼟壌⽔分測定の原理
２回⽬ ハードウェアについて
３回⽬ ソフトウェアについて
４回⽬ 動作検証
という順番で進めていきます。
第⼀回⽬の記事は[こちら](https://qiita.com/shinfrom/items/7381f9c4773926a66487)です。
今回は第⼆回⽬の記事となっており、ハードウェアの設計を⾏います。
 ## 前回の復習
　⼟壌の⽔分の指標としてpFというものがあります。pFを測定するためにpF計というものがあります。pF計とは、素焼きのカップとパイプを接着して、中を⽔で満たして密閉したものです。素焼きカップには⽔は通すが空気を通さないという性質があるため、容器内の圧⼒（負圧）を圧⼒センサーで測定して換算することでpFを測定することが出来ます。
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244155/005e9088-0ce0-c78c-bee5-2f2b27c46c5e.png)
## pF計とIoTの親和性について考える
　この負圧を測定するために今までは、ブルドン管圧力計と呼ばれる機械式の圧力計を使用していました。[参考サイト](http://www.daiichikeiki.co.jp/pressure/pressure_p03.html)　
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244155/69ec6815-f95a-0fbc-16e9-ae87da4c017a.png)
　機械式の圧力計をIoT化したいと考えたときに、カメラを使用してアナログメータの値を読み取るという方法が考えられます。しかし、この方法ではシステムが大がかりで高価になりやすいというデメリットがあります。さらに、読み取ったデータから意味を見出す際、保存を行う際には別途システムが必要になるなどの問題もあります。
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244155/1f91a04a-3270-8ddb-643c-f29e05a59f48.png)

その他の方法として、アナログ出力付きのデジタルセンサーも市販されていますが、高価になっています。

[竹村電機製作所　デジタルpF計 参考価格　42,000円](https://www.demetra.co.jp/product/soil-moisture/dm-8hg-100/)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244155/e1c4bcbf-798e-3045-031f-b752f86c4465.png)
以上のことから考えると、従来の方法ではpFの測定とIoTは親和性は高くありません。
## pF計のデジタル化
　pF計とIoTの親和性を高めるために、弊社ではMEMSの気圧センサとADコンバータを組み合わせてpF計用の圧力センサの開発を行いました。使用しやすいように水道管のエンドキャップに入れることが出来るほど小型で、安価な圧力センサになっています。
 ### MEMSのセンサーについて
 　近年ではゲーム機やスマホの普及でMEMSセンサや電子部品が爆発的に普及して安価に入手することが可能になっています。使い方についてはネットに情報がありますが、使いこなすことは容易だとは言い難い状況です。今回の記事では、どのような思想でセンサの選択を行い実装したかを説明します。
  ## pF計のデジタル化のために使用する部品
  ### 圧力センサー
　計測器メーカーの株式会社クローネのwebページある圧力計で測定できる[「絶対圧」「ゲージ圧」「差圧」の違いと用途](https://www.krone.co.jp/column/2021/11/29/absolute-gauge-differential-pressure/)という説明によると、圧力センサは、絶対圧、差圧、ゲージ圧の3つ種類に大別されます。以下の表で種類による特徴について説明します。
  |種類|特徴|
  |---|---|
  |ゲージ圧|大気圧を基準として測定する圧力のことです。大気圧より高い圧力をゲージ圧（制圧）、大気圧より低い圧力をゲージ圧（負圧）といいます。両方測定できるものを連成圧といいます。|
  |絶対圧|完全な真空中を基準にして表示するセンサのこと。完全真空時の圧力をゼロとすることから「絶対」と名付けられています。絶対圧は世界中のどこで測定されたかに関係なく、同じ圧力となり、常にゼロ以上を示します。絶対圧の代表的なものは大気圧です。絶対圧を測定できるセンサの代表的なものはBME280があります。|
  |差圧|差圧センサは、システム内の2点間の圧力変化を測定するセンサです。これは、放出弁や流量などシステムが正しく機能しているか等確認するようなシステムに用いられます。|
### 今回使用するセンサーの特徴
　pF管の中が大気圧よりも低くなるため、ゲージ圧（負圧）を測定できる圧力センサを使用します。Metrodyen Microsystem Corp.社のMIS-2503-015Gを選択しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244155/31f38131-97cf-b712-cc8c-cdf2096a403f.png)

　このセンサはピエゾ式となっています。ピエゾとは圧電素子のことで、圧電素子は力を力を加えることで電圧を発生（圧電効果）したり、逆に電圧を加えることで変形（逆圧電効果）したりするデバイスのことです。このセンサは工場で校正され温度補償されているので、使用する際にセンサの校正について考慮する必要がありません。
圧力センサの[データシート](https://akizukidenshi.com/download/ds/metrodyne/MIS2500series.pdf)を見ると、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244155/8876134e-89c6-9d92-f40a-008aab10ee54.png)
    オフセットが0.15VでFull scale spanが2.7Vあるので、出力値が0.15V～2.7Vの間で測定することが出来ます。
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244155/56a7f799-3099-a284-0c3d-8f53f78b5d4f.png)
    この範囲をセンサの特性のグラフで確認してみると直線性が良く、センサのスペック通りの測定ができます。なお、圧力の算出方法についても指示があります。
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244155/0355aabd-c06b-3a70-f42a-d1a2dba17408.png)
 今回は使用するADCの制約（後述します）より、出力は2.048Vまでしか測定することが出来ません。この値をデータシートで提供されている計算式に従って計算してみます。計算してみると-702mbarとなり、これはpF 2.85を意味しています。

 この値を作物の灌水時期の目安と比較してみます。[（竹村電機製作所のパンフレットより引用）](https://takii-material.com/wp-content/uploads/2021/05/DM8%E3%83%91%E3%83%B3%E3%83%95%E5%8F%96%E8%AA%AC.pdf)
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244155/0f060fae-1947-2a07-d6e1-0eb5b2d6f73e.png)
 潅水の目安としてはpF2.7付近までわかればよく、pF2.85というのはその条件を満たしています。以上のことより、今回使用する圧力センサは農業用のpF測定に使用するのに妥当だと言えます。

　このセンサはアナログ出力となっていますので、マイコンに取り込む際にはADコンバータでデジタル値に変換しておく必要があります。
  
### ADコンバータについて
　圧力センサから出力されたアナログ電圧をマイコンで使用できるようにするためにADコンバータ（以下ADC）を使用して、デジタル値に変換する必要があります。今回ターゲットとしているM5stack（ESP32）にもADCが載っていますが、性能が良くないという情報があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244155/7dfa2340-cd32-0e2e-936a-a5f923f01902.png)
参照グラフから読み取れるように、非線形型の誤差が出ています。このような誤差は再現性が低く個体差も出るために校正が大変になります。

上記の理由から、単体のADCを使用することを検討します。
求められる条件として、
- 1chの変換ができること
- M5stackへ接続することを前提としてI2Cで通信できること
- 必要な範囲の値を変換できること

があります。

条件にあうMCP3425というADCを秋月電子通商で見つけました。
このADCは
- 差動入力である
- 16bitの分解能である
- 内部基準電圧を使用することで参照電圧が不要になる
- I2C通信でマイコンと通信することが出来る
- PGAがついており、8倍まで増幅して読むことが出来る

という特徴があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244155/1389567a-abe6-a53f-834a-72b6f323b34b.png)

### ADCの誤差について
　ADCの誤差を考慮するうえではDNL、INLという誤差を考慮する必要があります。この誤差は変換の処理後に補正することが出来ず、最後まで残ってしまうのでADCの性能を決める極めて重要な特性となります。
　信号欠損を無くし、直線性を保つためにはDNS、INL共に1LSB以下の製品を選択する必要があります。ESP32ではこの条件を満たしていません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244155/dff67b39-5988-5158-ecf7-37228cba6d05.png)
MCP3425ではINRが10 ppm of FSRとなっています。これを計算すると0.65LSBとなっており、性能の指標である1LSB以下となっており、性能としては十分であると考えられます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244155/7a6ddddf-5340-f914-cca4-2d895d0122e2.png)
### 5.5Vを3.3Vにするために
　pFセンサーとM5stackを簡単に接続することが出来たほうが便利だと考え、groveコネクタで接続するような仕様にしました。圧力計は3.3Vで使用する仕様になっていますが、groveコネクタから出力されている電圧は5Vです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244155/e3e2f4b7-4931-95c3-4878-b0d1de6002f4.png)
そのまま圧力計に接続してしまうと、正常に使用することが出来ないので、降圧させる必要があります。

　そのためにNJM12888F33というレギュレータを使用しました。電圧レギュレータには、入力電圧や出力電流、負荷抵抗に応じて出力電圧を一定にするという役割があります。

　このレギュレータは、過電流保護回路が内蔵されており、外付けダイオードを削減することができ、周辺部分のコストダウン、小型化に寄与します。動作電圧範囲が2.3Vから6.5Vで出力電圧が3.3Vであることから、条件は満たしています。

想定通りの動作をしているか確認して、使用しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244155/b6b62ea0-1216-7f33-6bfb-33a4ac5cf2d6.png)
## 今回のまとめとこれからの予定
　この連続記事の土壌水分測定パートについては４回で完結する予定にしいます。今回はハードウェアについて説明しました、次回はソフトウェアの説明を行います。
　土壌水分測定についての連続記事が終わった後には、UECSという農業用の通信プロトコルを使用した農業用の自立制御システムをM5stackで使用する方法について説明していく予定にしています。
　また以前に[連続記事](https://qiita.com/shinfrom/items/715c2255b173bd2dabdc)で紹介した[さくらのモノプラットフォーム](https://iot.sakura.ad.jp/platform/?gad_source=1&gclid=CjwKCAiA98WrBhAYEiwA2WvhOjAMNHnN2v62sRBn3JvBWcqNG51vpdC3KOTX9TkgiiIaFjnTY4xtFhoCZ5cQAvD_BwE)を利用した通信を組み合わせることで遠隔モニタリングについても考えていきます。
 ## 弊社の取り組みと今後の展開
 弊社の取り組みの一環として今回は農林水産省主催のアグリビジネスフェア、メーカーフェア深圳、メーカ―フェア台北に共同出展してきました。
　今回開発している土壌水分センサーについては現場の要望から開発をスタートしており、農研機構のキーパーソン、大学の研究機関とも意見交換をしながら開発を進めています。また今後の大規模展開を目指して、M5stackで製品化できないか検討を進めています。
## 内容について
　極力正しい情報を紹介するよう努めていますが、古い情報や、私の知識不足や勘違いによって誤った情報が記載されているかもしれません。間違った情報や記述間違い等見つけられた際にはコメントいただけますと幸いです。
 ## 関連記事
 [土壌センシングから始める 猫でもわかる農業DX入門　第１回](https://qiita.com/shinfrom/items/7381f9c4773926a66487)
 ## 参考情報
 [「絶対圧」「ゲージ圧」「差圧」の違いと用途](https://www.krone.co.jp/column/2021/11/29/absolute-gauge-differential-pressure/)
[MIS-2503-015Gデータシート](https://akizukidenshi.com/download/ds/metrodyne/MIS2500series.pdf)
[mcp3425データシート](https://ww1.microchip.com/downloads/en/DeviceDoc/22072b.pdf)
[**NJM12888F33データシート**](https://akizukidenshi.com/download/ds/njr/NJM12888_J.pdf)
[圧力測定の基礎知識　ブルドン管圧力計](http://www.daiichikeiki.co.jp/pressure/pressure_p03.html)
[ブルドン圧力計リプまとめ](https://kunohe.tech/serise/machine-introduction/586/)
[日立システムズ　業界向けIoTソリューション](https://www.hitachi-systems.com/sp/iot/solution/meterread/)
[株式会社竹村電機製作所　デジタルpFメータ](https://www.demetra.co.jp/product/soil-moisture/dm-8hg-100/)
[ESP32のADC精度について](https://rabbit-note.com/2018/01/22/esp32-adc-accuracy/)
[ESP32のADCでキャリブレーションされた精度の良い電圧値を取得する方法](https://kohacraft.com/archives/202202091047.html)
[ESP32Series Datasheet](https://www.espressif.com/sites/default/files/documentation/esp32_datasheet_en.pdf)
[DNLとINL](https://edn.itmedia.co.jp/edn/articles/1309/09/news009.html)
[高速ADCのINL及びDNLの測定](https://pdfserv.maximintegrated.com/jp/an/AN283J.pdf)
[Converting PPM (Parts Per Million) to Number of Bits (LSBs) for INL Specifications](https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z000000P7qFSAS)
[ロームウェブサイト　ピエゾ（圧電素子）とは](https://www.rohm.co.jp/electronics-basics/piezo/what1)