🌡️

M5Stackを学ぶ その3-1(温湿度センサー)

2024/07/06に公開

はじめに

おはようございます。今年は遅めの梅雨のようで、暑いし湿度が高くて体調が安定しなくて大変です。皆さんも熱中症などには気を付けてくださいね。

さて、今回作成するのは温湿度センサーです。タイムリーに必要な情報なのでサクサク作っていきましょう!

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