M5Stackを学ぶ その3-1(温湿度センサー)
はじめに
おはようございます。今年は遅めの梅雨のようで、暑いし湿度が高くて体調が安定しなくて大変です。皆さんも熱中症などには気を付けてくださいね。
さて、今回作成するのは温湿度センサーです。タイムリーに必要な情報なのでサクサク作っていきましょう!
1,ライブラリのインストール
今回使用するセンサはDHT11温湿度センサーです。
こんなやつですね。Arduinoなどのパーツセット買うと大体似たようなのが入っているかと思います。このセンサをM5Stackに接続して温度と湿度を計測していこうと思います。
今回DHT11を使用した温湿度センサーを作成するにあたって、追加で必要なライブラリが二つあります。
それが「Adafruit Unified Sensor」と「DHT Sensor Library」です。プロジェクトを新規で作成して「M5Stack by M5Stack」と合わせて3つ入っていれば動くと思います。
この2つですね。「DHT」と検索すれば出てくると思います。クリックしてプロジェクトにAddします。できましたら次は配線です!
2,配線
DHT11を繋げるときは以下のような配線になります。
今回pinは21番の場所を使います。M5Stackと繋げたものがこちら
表
裏
配線を間違えてしまうとパーツが壊れてしまう可能性があるので確認しながら行いましょう。ちなみに私は過去にDHT11を間違えて配線して1個壊しています。プラスマイナスを間違えて壊してた気がします。
3,コーディング
若干コードが長いですが、データを受け取って表示するだけなのでフローチャート等は省略させていただきます。
以下が今回のコードになります。
#include <M5Stack.h>
#include <Adafruit_Sensor.h>
#include <DHT.h>
#include <DHT_U.h>
#define DHTPIN 21 // DHT11のデータピンに接続するM5Stackのピン
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE);
void setup() {
M5.begin();
dht.begin();
// 画面の初期設定
M5.Lcd.clear();
M5.Lcd.setTextSize(2);
M5.Lcd.setCursor(0, 20);
M5.Lcd.print("Temperature and Humidity");
}
void loop() {
// 温度と湿度の測定
float h = dht.readHumidity();
float t = dht.readTemperature();
// 測定結果を画面に表示
M5.Lcd.clearDisplay();
M5.Lcd.setCursor(0, 60);
M5.Lcd.setTextSize(3);
M5.Lcd.printf("Temp: %.1f C", t);
M5.Lcd.setCursor(0, 100);
M5.Lcd.setTextSize(3);
M5.Lcd.printf("Hum : %.1f %%", h);
// 1分(60000ミリ秒)待機
delay(60000);
}
1分毎に温度と湿度のデータを取得し、M5Stackのディスプレイに表示するというコードになります。
4,テスト
プログラムを書き込んで動かしてみましょう。
目視確認ですが、問題なく動いていますね。
5,おわりに
今回はDHT11を使用して温湿度を計測してみました。
次回なのですが、今度はこの取得データを使用してM5StackをWi-Fi接続で、スプレッドシートか何かに記録できるようにしてみたいと思います。
では、今回も読んでいただきありがとうございました。お疲れさまでした。
Discussion