M5StickCと温度・湿度センサ
M5StickC が手に入ったので、温度・湿度センサをつけてみました。DHT11 が安かったので、それをつなげます。
DHT11 センサの電源(左から1番ピン)を M5StickC の 3V3、信号(2番ピン)を G26、GND(4番ピン)を GND につなげます。1番ピンと2番ピンの間には 10kΩ の抵抗を入れます。
M5StickC を PC つなぐための USB driver 、プログラムを作成するための Arduino IDE と M5StickC のライブラリ追加は済んでいるものとします。
DHT11 ライブラリ
DHT11 を使うためのライブラリを追加します。
ツールのライブラリを管理で「unified sensor」と入力して下の方へスクロールします。「Adafruit Unified Sensor」をインストールします。
次に「dht」と入力します。「DHT sensor library by Adafruit」をインストールします。
プログラム
プログラムは「DHT sensor library」のサンプルを変更しました。
#include <M5StickC.h>
#include "DHT.h"
#define DHTPIN 26
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE);
void setup() {
M5.begin();
dht.begin();
M5.Axp.ScreenBreath(10); // 明るさ変更
M5.Lcd.setRotation(3);
M5.Lcd.fillScreen(BLACK);
M5.Lcd.setTextSize(1);
M5.Lcd.setCursor(40, 0, 2);
M5.Lcd.println("DTH11 Test!");
}
void loop() {
// Wait a few seconds between measurements.
delay(2000);
// Reading temperature or humidity takes about 250 milliseconds!
// Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
float h = dht.readHumidity();
// Read temperature as Celsius (the default)
float t = dht.readTemperature();
// Check if any reads failed and exit early (to try again).
if (isnan(h) || isnan(t)) {
M5.Lcd.setTextSize(1);
M5.Lcd.setCursor(0, 17);
M5.Lcd.println("Failed to read from DHT sensor!");
return;
}
M5.Lcd.setTextSize(2);
M5.Lcd.setCursor(0, 17);
M5.Lcd.print("T: " + String(t) + " `C ");
M5.Lcd.setCursor(0, 45);
M5.Lcd.print("H: " + String(h) + " % ");
}
元のサンプルはこちらです。
すぐに電池がなくなるので、暗くしました。
M5.Axp.ScreenBreath(10);
この数値(7~15)で明るさが変えられます。15 だと明るくてすぐに電池がなくなります。
M5StickC おもしろいです。