Makato-kanのアイコン画像
Makato-kan 2026年10月02日作成
製作品 製作品 閲覧数 24
Makato-kan 2026年10月02日作成 製作品 製作品 閲覧数 24

M5StickCと温湿度センサーで飽差表示する(M5Unified.h対応)

はじめに

過去に作成したプログラムを久しぶりに使おうとしたところ、コンパイルエラーになってしまいました。
そこで、備忘録を兼ねてM5Unified.h(M5Unifiedライブラリ)に対応した修正版プログラムを作成しました。

本記事は、過去の記事「M5StickCと温湿度センサーで飽差表示する」のプログラムをベースに、M5Unified仕様へ移植したものです。
※ハードウェアの接続方法や詳細な仕様については、上記のリファレンス記事をご参照ください。

主な変更箇所

  • M5.begin() の初期化処理を M5Unified 推奨の書き方に変更
  • 画面描画クラスを M5.Lcd から M5.Display へ変更
  • 画面の向き(Rotation)を指定する数値を M5Unified の仕様に統合

プログラム

#include <M5Unified.h> #include "DHT.h" #define DHTPIN 26 #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); void setup() { // M5Unifiedの推奨初期化手順 auto cfg = M5.config(); M5.begin(cfg); // 省エネ設定(40MHzに下げるとセンサー値が取得できなくなるため50MHzに設定) setCpuFrequencyMhz(50); esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_PERIPH, ESP_PD_OPTION_ON); dht.begin(); M5.Display.setRotation(0); M5.Display.fillScreen(BLACK); M5.Display.setTextColor(WHITE); M5.Display.setTextSize(3); pinMode(DHTPIN, INPUT_PULLUP); Serial.begin(9600); } void loop() { delay(2000); float h = dht.readHumidity(); float t = dht.readTemperature(); // ※センサー未接続時のエラー処理(nan表示や異常値の対策)は省略しています float saturationPressure = saturationVaporPressure(t); float currentVaporPressure = vaporPressure(saturationPressure, t); float hd = vaporPresureDeficit(currentVaporPressure, h); M5.update(); M5.Display.fillScreen(BLACK); M5.Display.setCursor(10, 15); M5.Display.printf("%.2f", t); M5.Display.setCursor(10, 45); M5.Display.printf("%.0f", h); M5.Display.setCursor(80, 45); M5.Display.printf("%.1f", hd); delay(5000); } // 飽和水蒸気圧[hPa]の計算 (Tetensの近似式を使用) float saturationVaporPressure(float t) { return 6.1078 * (10 * (7.5 * t) / (t + 273.2)); } // 飽和水蒸気量[g/㎥]の計算 (理想気体の状態方程式による) float vaporPressure(float saturationPressure, float t) { return 217 * saturationPressure / (t + 273.2); } // 飽差[g/㎥]の計算 (飽和水蒸気量と相対湿度より計算) float vaporPresureDeficit(float currentVaporPressure, float h) { return currentVaporPressure * ((100 - h) / 100); }
Makato-kanのアイコン画像
屋外で温度湿度を測定し記録するので、壊れやすいと思い大量にDHT11とESP-WROOM-02を購入したのですが思いのほか壊れなかったので、何にでもDHT11をくっつけています。
  • Makato-kan さんが 前の金曜日の15:35 に 編集 をしました。 (メッセージ: 初版)
ログインしてコメントを投稿する