ぼくのデジタルライフ

ダラダラ書いてる備忘録的な何か

M5AtomとENV HATで気温と湿度を測定してみる

※本ページには、プロモーション(広告)が含まれています。

f:id:computer-life:20210303225033j:plain

久しぶりの投稿です。

1年近く放置してましたが、またちょくちょく更新していけたらいいなと思います。

今回は、ATOM LiteとATOM Mate、ENV HATをつかって気温と湿度を測定していきます。

用意したもの

f:id:computer-life:20210303225110j:plain

ATOM Lite

ESP32を積んだマイコンWi-Fiが使えるし、USBで書き込みできるし、筐体に入ってるしでお気に入り。

ENV HAT

温度、湿度、気圧、磁界といろいろ測れるセンサー類が一つにまとまったHAT。

それぞれのセンサーの役割はこんな感じ。今回は、DHT12を使います。

  • DHT12(気温、湿度)
  • BMP280(気圧)
  • BMM150(磁気)

新バージョンの「ENV II Hat」が出てるみたいですが、持っていないので今回は旧バージョンの「ENV HAT」を使いました。新バージョンでは、温度・湿度センサーが「DHT12」から「SHT30」に変更されているようです。

ATOM Mate

M5StickCで使えるHATをM5Atomでも使えるようにするアダプタ。

HATをつかえるようにピンの配置を変換しているだけなので、なくてもいいけど、M5Atom底面のピンから線を取り回したりしなくて済むのでおすすめ。

ちなみに、ATOM MateとM5StickCとでは、HATピンに割り当てられているGPIOの番号が違うのでM5StickCのプログラムを流用してHATを使うときは注意が必要です。

f:id:computer-life:20210303225134j:plain

つかったライブラリ

M5AtomとDHT12のライブラリがないときは、インストールしておきましょう。

今回は、下記のものを使っています。

※DHT12の方のURLはArduinoIDEのライブラリマネージャで「DHT12」と検索した時に出てくる「DHT12 sensor library」と同一のものです。どちらからインストールしても構いません。

プログラム

プログラムはこんな感じ。センサーの値は、シリアルモニタ*1で確認できます。

#include <M5Atom.h>
#include "DHT12.h"
#include <Wire.h>

DHT12 dht12;

void setup() {
  M5.begin();
  Wire.begin(19, 22);
}

void loop() {
  //温度
  Serial.print("Temp: ");
  Serial.println(dht12.readTemperature());

  //湿度
  Serial.print("Humi: ");
  Serial.println(dht12.readHumidity());

  //1秒待つ
  delay(1000);
}
  • 電源投入後2秒間はnonが返ってきてセンサーの値が取得できません。これは、ライブラリの仕様に依るものです。void setup内にdelay(2000)あたりを書き加えて少し待たせてもいいかもしれません。

  • ENV HATのDHT12とはGPIOの19番と22番でI2C通信しています。M5StickCにENV HATをつないでこのプログラムを動かすときはWire.begin(19, 22)Wire.begin(0, 26)に変更してください。

*1:ArduinoIDEでは画面右上にある虫眼鏡のアイコンのやつです。