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

2017年9月16日Nefry BT, センサー, 電子工作

NefryBTとYL-69

こんにちは、ゆきです!

別の記事でRaspberry Piを使って、土壌湿度センサーYL-69を使って土の中のセンサーデータを取得する仕組みを紹介しました。

Raspberry Piで土壌湿度センサー(YL-69)からA/Dコンバータ(MCP3002)を使ってデータを取ろう

Raspberry Piはデジタルデータのみの扱いになるため、A/Dコンバータを使ってデータを取得する必要があります。この場合勉強することも多く、簡単に、とはいかないのですが、Nefry BTの場合アナログデータを取り扱えることもあり、簡単に実装することが出来ます。

そこで今回はNefry BTで土壌湿度センサーYL-69からデータを取得してみます。

Nefry BTとYL-69を接続しよう

Nefry BTとYL-69の接続ですが、YL-69の各ピンを以下の図のように接続しましょう。

Nefry-BTと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を使ってプログラムを書き込もう」を参照してください。

早速水につけて動作確認…。

Nefry BTでの動作確認

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ネットワーク経由で送信する仕組みの構築を目指したいと思っています。

以上!