Nefry BTで土壌湿度センサー(YL-69)を使ってデータを取ろう

こんにちは、ゆきです!
別の記事でRaspberry Piを使って、土壌湿度センサーYL-69を使って土の中のセンサーデータを取得する仕組みを紹介しました。
Raspberry Piはデジタルデータのみの扱いになるため、A/Dコンバータを使ってデータを取得する必要があります。
この場合勉強することも多く、簡単に、とはいかないのですが、Nefry BTの場合アナログデータを取り扱えることもあり、簡単に実装することが出来ます。
そこで今回はNefry BTで土壌湿度センサーYL-69からデータを取得してみます。
Nefry BTとYL-69を接続しよう
Nefry BTとYL-69の接続ですが、YL-69の各ピンを以下の図のように接続しましょう。

Nefryに使用されているチップのESP-WROOM-32の仕様で、Analog値の読み込みにはA0,A1ピンは使えないとの事。YL-69のAOにはA2~A7のピンを使いましょう。
開発者のわみさん、ありがとうございます!
Arduino IDEでプログラムを組もう
プログラムは以下です。A/Dコンバータを使用しない分Raspberry Piよりもシンプル。
#include <Nefry.h>
#define VOLTAGE_OUTPUT A0
#define ANALOG_INPUT A7
#define DELAY_TIME 100
long sensorData;
void setup() {
// put your setup code here, to run once:
pinMode(VOLTAGE_OUTPUT, OUTPUT);
sensorData = 0;
}
void loop() {
// put your main code here, to run repeatedly:
if((Nefry.readSW())){
// センサーへの印加電圧をオン
digitalWrite(VOLTAGE_OUTPUT, HIGH);
// 立ち上がり待ち。こんなに長い時間いらないけど念のため
delay(DELAY_TIME);
//センサーデータ読み取り
sensorData = analogRead(ANALOG_INPUT);
Nefry.println("Get sensor data:");
Nefry.println(sensorData);
}else{
//電圧をオフに
digitalWrite(VOLTAGE_OUTPUT, LOW);
//センサーデータ初期化
sensorData = 0;
}
delay(DELAY_TIME);
}
動作確認してみよう
早速プログラムをArduino IDEを使って書き込みます。
プログラムの書き込み方はIoT初心者にオススメ!センサーとすぐ繋げるNefry BTを使ってみた(LED点灯・Lチカ編)の「Arduino IDEを使ってプログラムを書き込もう」を参照してください。
早速水につけて動作確認…。

Raspberry Piの記事で使用したA/Dコンバータ(MCP3002)では10ビットデータだったため、0~1023の範囲でしたが、こちらは12ビットのため0~4095の範囲で値が表示されます。
乾いた時が4095、水に浸した時が1600~1900という範囲になっており、Raspberry Piでの表示460の約4倍とほぼ同じような値をとっています。
おわりに
Analog値を直接読み込めるということで、Nefry BTはRaspberry Piに比べて簡単にセンサーデータ取り込みの仕組みを作ることが出来ました。
次はNefry BTで取り込んだデータを蓄えるorネットワーク経由で送信する仕組みの構築を目指したいと思っています。
以上!



ディスカッション
コメント一覧
まだ、コメントがありません