M5StickCとENV Hatで湿度と温度を取得して表示する

前々からほしかったM5StickCとENV Hatが手に入ったので、さっそく湿度と温度を取得して表示してみることにしました!

前提条件

今回のプログラムを作るにあたって、以下の前提条件があります。

  • Arduino IDEのインストールが済んでいる
  • USBドライバのインストールが済んでいる
  • Arduino IDEにM5Stickのライブラリのインストールが済んでいる

今回用意したもの

M5StickC

小型のM5Stackです。

小さいながらもディスプレイがついているので、センサーの値を表示して確認することができます。

M5Stackよりも安くて小型なので今回はこちらを使うことにしました。

ENV Hat

Hatシリーズという簡単にM5StickCに接続できるセンサー類がたくさんあります。

今回は温度湿度を測るので、温度湿度を取得できるEnv Hatを使います。

Env Hatは温度湿度のほかに、気圧や磁界を取得することができます。

Env Hatが手に入らない場合は、M5STACK-ENV-UNIT(環境センサユニット)があるので、そちらを入手するのもアリです。

M5Stack Mini ENV Unit with DHT12 BMP280 Digital DHT-12 Temperature Humidity Aire Pressure Sensor I2C Grove Connector
M5Stack

M5StickCとENV Hatで湿度と温度を取得して表示する

Arduino IDEでスケッチを作成

Arduino IDEを開きます。

[ファイル] > [スケッチ例] > [M5StickC] > [Basic] > [HelloWorld] を選択するとスケッチが作成されます。

今回は「MyEnv」と名前を付けて保存しました。

GitHubから温度湿度を取得するのに必要なファイルをDLする

GitHubにEnv Hatを使うのに必要なライブラリがあるので、ダウンロードしましょう。(ダウンロードはこちら

必要なファイルは「DHT12.cpp」「DHT12.h」の2つです。

ダウンロードしたファイルを、保存したスケッチMyEnv.inoと同じディレクトリに保存します。

MyEnv.inoを編集

今回は1秒ごとにセンサーから温度と湿度を取得して表示します。

loop()の中で1秒間処理を待機させる必要があるので、待機させる関数delay()を利用します。
delay(ミリ秒)で処理を待機させることができます。
1秒は1000ミリ秒なので delay(1000)で1秒待機します。

#include <M5StickC.h>
//I2Cを使うためのライブラリインクルード
#include <Wire.h>
//ENV Hatの温度湿度を使うためのライブラリ
#include "DHT12.h"
//ENV Hatの温度湿度を使うためのライブラリを変数化
DHT12 dht12;

// the setup routine runs once when M5StickC starts up
void setup(){
  // Initialize the M5StickC object
  M5.begin();

  //ディスプレイ設定
  M5.Lcd.setRotation(3);//横向きにする
  M5.Lcd.fillScreen(BLACK);//背景色黒くする
  // I2C初期化
  Wire.begin(0, 26);  
}

// the loop routine runs over and over again forever
void loop() {

  // 気温
  float tmp = dht12.readTemperature();
  M5.Lcd.setCursor(0, 20);
  M5.Lcd.printf("Temp: %2.1f C", tmp);
 
  // 湿度
  float hum = dht12.readHumidity();
  M5.Lcd.setCursor(0, 40);
  M5.Lcd.printf("Humi: %2.0f %%", hum);

  // 1秒待機
  delay(1000);
}

M5StickCに書き出して動作確認!

Arduino IDEの「マイコンボードに書き込む」ボタンをクリックして、M5StickCにコンパイルしましょう。

問題なければ、M5StickCの画面に温度と湿度が表示されます。

最後に

実はスケッチ例でコーディングなしでENV Hatを利用できます(笑)

今回わざわざコーディングしましたが、スケッチ例でENV Hatを利用することができるサンプルコードがあります。

サンプルコードを使えば簡単に温度や湿度や気圧を取得して表示することができます(笑)

[ファイル] > [スケッチ例] > [M5StickC] > [Hat] > [ENV]で簡単にENV Hatを利用できます。

ただ、メチャクチャコードが書かれているので、わかりやすくするために今回はHelloWorldを編集してENV Hatを利用するようにしました。

created by Rinker
シーアンドアール研究所
¥3,432 (2024/04/27 07:32:41時点 Amazon調べ-詳細)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください