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ネットワーク経由で送信する仕組みの構築を目指したいと思っています。
以上!
ディスカッション
コメント一覧
まだ、コメントがありません