(2021-03-28 初稿 - )
土壌水分センサーのYL-69を入手したので、Arduino Unoで計測のテストを実施。
ちなみに、YL-69 は WINGONEER製でAmazonで購入した。
本当は、M5Stackで利用することを想定していたが、情報が少なくうまく使えなかった。
どなたか、情報を持っている方は、教えてください。
さて、Arduinoで計測するので、使い方は以下を想定している。
ちなみに、YL-69のデータはアナログ値なので、Raspberry PiとはA/Dコンバータがないと直接は接続できない。
Raspberry Pi ⇔ Arduino Uno ⇔ YL-69
【参考サイト】
Arduino Uno
Arduino nano
Arduino と YL-69 の接続
センサーと中間ボートとの接続は、どちらでも可。
中間ボードとArduino Unoとの接続は、以下のとおり。
AO ⇔ A0
VCC ⇔ 5V
GND ⇔ GND
まずは、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
値が返ってくれば成功