在宅介護にも使える! / M5Stackで温湿度計を作る5つの手順

最終更新日

この記事についてM5Stackで温度計湿度計を作る手順をmemo
工夫次第で様々な用途で使うことができますね。

簡易紹介:こうたろう

1986年生まれ
音大卒業後日本、スウェーデン、ドイツにて音楽活動
その後金田式DC録音のスタジオに弟子入り
プログラミング(C)を株式会社ジオセンスのCEO小林一英氏よりを学ぶ
現在はヒーリングサウンド専門のピアニスト、またスタジオでは音響エンジニア、フォトグラファーなどマルチメディアクリエーターとして活動中
当記事ではプログラマー、音響エンジニアとして知識とスキルをシェアしていきます

M5Stackとセンサーを購入

M5Stackは、いろんなモデルがあるかと思いますが、まずはいろいろ遊んでみる人や、筆者のように、水耕栽培のプログラムを書きたい!という人にはこのモデルでOKだと思います。

M5Stack Grayといって、加速度、ジャイロ、磁気を計測可能な9軸センサ、MPU9250を搭載したモデルもあります。

このあたりは開発したい目的に合わせて選んで行けばいいと思います。

筆者の購入したベーシックモデルはこんな感じです。

USBケーブルと、ジャンパワイヤのオスメスがセットになっています。

センサーを購入する

このセンサーの購入が大変でした。

在庫切れが続き、なかなか手に入らず、スイッチサイエンスさんにて、在庫通知の登録をして、待つことニか月、やっと在庫通知がきて購入することができました。

筆者が購入したセンサーは【Si7021搭載 温湿度センサモジュール】というもの。

→スイッチサイエンスさんのページ

2020年2月14日現在、また在庫なしになっていました。

人気だからなのか、どこかのスクールか、業者がまとめ買いしているのか・・・

とにかく在庫通知を登録して待つしかないようです。

センサーと本体を接続する

はんだづけをしなくていいというのもM5Stack最大の魅力の一つです。

このセンサーもM5Stackに付属でついてくる、オスメスのジャンパワイヤだけで接続できます。

M5Stack側にはオスのジャンパワイヤを差し込みます。

ちょっと画像が荒いですが

  • 3V3
  • G
  • 21
  • 22

に差し込みます。

センサー側にはメスのジャンパワイヤを。

  • VIN
  • GND
  • SDA
  • SCL

それぞれ対になっているので、色でしっかり分けて間違えないようにしましょう。

  • 3V3→VIN
  • G→GND
  • 21→SDA
  • 22→SCL

アルディーノをインストール

M5Stackはアルディーノを使うと便利です。

アルディーノをはこちらから無料ダウンロードできます。

→アルディーノをダウンロード

ダウンロードが完了したら、ライブラリーを読み込みましょう。

Arduino IDEの「ツール」→「ライブラリを管理」をクリックして、ライブラリマネージャーを立ち上げます。

ライブラリマネージャーの検索欄に「adafruit si7021」と入力。

「Adafruit Si7021 Library by Adafruit」をインストールしてください。

これで、Si7021のセンサーライブラリの読み込みが完了します。

プログラムを書く

参考コード

#include <M5Stack.h>
#include "Adafruit_Si7021.h"

Adafruit_Si7021 sensor = Adafruit_Si7021();

void setup(){
    M5.begin();

    if(!sensor.begin()){
       Serial.println("Did not find Si7021 sensor!");
       while (true);{
           delay(0);
       }
    }
    
    M5.Lcd.setTextSize(3);
}   
 
void loop(){
  float temp = sensor.readTemperature();
  float humid = sensor.readHumidity();

  M5.Lcd.setCursor(40,80);
  M5.Lcd.print("Kotaro: ");
  M5.Lcd.print(temp, 1);
  M5.Lcd.print("'C");
  M5.Lcd.setCursor(40, 140);
  M5.Lcd.print("Humid: ");
  M5.Lcd.print(humid, 1);
  M5.Lcd.print("%");
  delay(1000);
}  
  

↑↑↑みんなのM5Stack入門(P110)引用

書けたら、Arduino IDEの「スケッチ」→「マイコンボードに書き込む」でM5Stackに書き込んでくれます。

この時に、もしエラーがあれば、書き込む前にArduino IDEが知らせてくれます。

無事に、温度と湿度を計測できたでしょうか?

このコードだと、このような画面になると思います。