ひゃまだのblog

ひゃまだ(id:hymd3a)の趣味のブログ

Arduinoで土壌水分を測る(シールド YL-69)

(2021-03-28 初稿 - 2021-05-17 転記・修正)

 

はじめに

土壌水分センサーのYL-69を入手したので、Arduino Unoで計測のテストを実施した。

ちなみに、YL-69 は以下のとおり WINGONEER製でAmazonで購入した。

当初、M5Stackで利用することを想定していたが、情報が少なくうまく使えなかった。

どなたか、情報を持っている方は、教えてください。

接続方法

計測は、YL-69とArduinoを接続し、ArduinoRaspberry Pi または PC等を接続して計測することを想定している。これは、YL-69のデータがアナログ値で、Raspberry Pi等とはA/Dコンバータ(今回は、Arduinoがコンバータ)がないと直接は接続できない。

Raspberry Pi (or PC)  ⇔ Ardiuno Uno  ⇔ YL-69

ちなみに、接続や測定方法については、以下のサイトを参考にさせていただいた。多謝【Arduino Uno】  

Arduino nano】

YL-69と中間ボードの接続

YL-69と中間ボードの接続は、どちらでも可。

中間ボードとArduinoの接続

中間ボードとArduinoの接続は、以下のとおり。

AO    ⇔ A0

VCC  ⇔ 5V

GND  ⇔ GND

 

f:id:hymd3a:20210517083236j:plain

Arduino、中間ボード、YL-69の接続

f:id:hymd3a:20210517083403j:plain

中間ボード側の接続

f:id:hymd3a:20210517083451j:plain

Arduino側の接続

接続テスト

Arduino IDEを設定したPCまたはRaspberry Piで接続テストする。

まずは、Arduino IDEで以下のスクリプトを入力。

int val;

void setup(){
  Serial.begin(9600);
}

void loop(){
  val = analogRead(0);
  Serial.println(val);
  delay(1000);
}

次に、USB ケーブルでセンサーを付けたArduinoを接続して、IDEコンパイルしたスケッチをArduinoに送る

IDEのシリアルモニタで、数値を確認。

水分がない場合は、最大値の1023を示す。

水を入れたコップ等に浸し、値が小さくなることを確認する。

Pythonでデータを取得

取得データの加工等、今後の利便性を考えPythonでデータを取得する。

なお、シリアル通信を利用するので、インストールしていない場合は、以下のとおりserialパッケージをインストールする。

sudo apt install python3-serial

作成した簡単なコード

#!/usr/bin/env python3
#coding: UTF-8

# [2021-03-28] ver0.01 started by H. Yamada 

import serial

data = ''
ser = serial.Serial('/dev/ttyACM0', 9600)
data = ser.readline() 
ser.close()

result = data.decode()
print(result)

作成したコードの実行

./yl-69-serial.py 
1023

値が返ってくれば成功。

 

ひゃまだのblogインデックス - ひゃまだのblog