Arduino入門
Paper SHT30 温湿度センサーに関連するAPIとサンプルプログラム。
#include <M5Unified.h>
#include <M5GFX.h>
#include <M5UnitENV.h>
// #include <M5UnitUnifiedENV.h>
float temp, humi;
SHT3X sht3x;
void setup() {
M5.begin();
M5.Display.setRotation(0);
M5.Display.setFont(&fonts::FreeMonoBold24pt7b);
M5.Display.setEpdMode(epd_fast); // epd_quality, epd_text, epd_fast, epd_fastest
Serial.begin(115200);
Serial.println("SHT30 Sensor");
M5.Display.clear();
M5.Display.setCursor(80, 100);
M5.Display.print("SHT30 Sensor");
if (!sht3x.begin(&Wire, SHT3X_I2C_ADDR, 21, 22, 400000U)) {
Serial.println("SHT30 not found");
M5.Display.setCursor(60, 300);
M5.Display.print("SHT30 not found");
while (1) delay(1);
}
}
void loop() {
M5.update();
sht3x.update();
temp = sht3x.cTemp;
humi = sht3x.humidity;
Serial.printf("Temp:%6.2f C", temp);
Serial.println();
Serial.printf("Humi:%6.2f %%", humi);
Serial.println("\n");
M5.Display.setCursor(60, 300);
M5.Display.printf("Temp:%6.2f C", temp);
M5.Display.setCursor(60, 360);
M5.Display.printf("Humi:%6.2f %%", humi);
delay(800);
// refresh the whole display every 60 seconds
int refreshTimer = millis() % 60000;
if (refreshTimer >= 58200 && refreshTimer < 60000) {
M5.Display.clear();
M5.Display.setCursor(80, 100);
M5.Display.print("SHT30 Sensor");
Serial.println("\nscreen refreshed\n");
}
}
このプログラムは、センサーがリアルタイムで検出した温度(摂氏 ℃)と相対湿度(%)を画面に表示します。
Paper SHT30 温湿度センサー部分では、M5Unit-ENV
ライブラリの SHT3X
クラスが使用されています。関連するAPIの詳細は、GitHub 上のライブラリファイルをご参照ください: