M5StickCと温度・湿度センサ

M5StickC が手に入ったので、温度・湿度センサをつけてみました。DHT11 が安かったので、それをつなげます。

f:id:higenonagaineko:20190729121937j:plain

3V3, G26, GND に接続

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」をインストールします。

f:id:higenonagaineko:20190729123018j:plain

Adafruit United Sensor

次に「dht」と入力します。「DHT sensor library by Adafruit」をインストールします。

f:id:higenonagaineko:20190729122934j:plain

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) + " % ");
}

 

元のサンプルはこちらです。

github.com

 

すぐに電池がなくなるので、暗くしました。
  M5.Axp.ScreenBreath(10);
この数値(7~15)で明るさが変えられます。15 だと明るくてすぐに電池がなくなります。

f:id:higenonagaineko:20190729123643j:plain

温度・湿度センサ

M5StickC おもしろいです。