自由研究

M5StickC PlusとSwitchBot温湿度計で家中の温度と湿度を管理するぞ

投稿日:

はじまり

結構長いあいだ在宅勤務を続けていると、自宅の情報をデータ化したくなるものです。
特に仕事スペースの快適さというのは気になるもので、以前から温湿度の表示がついた置き時計を置いてたんですが、以下のような課題がありました。

  • 部屋を締め切ってエアコン付けていると、いつの間にか屋外のほうが快適になっている
  • 冬場、脱衣所が寒すぎる
  • どうも脱衣所がカビやすい

これらの課題に対処するため、とりあえずデータを取ってみようということで、室内・屋外・脱衣所の三ヶ所に温湿度計を置くことにしました。

完成品の紹介


このようになりました。
上から順に、室内・室外・脱衣所の温度と湿度が表示されます。
背景にうっすら色がついていて、不快指数を基準に、暑いほど赤く、寒いほど青く表示されます。
この画像だと、パッと見で「外のほうが暑いんだな」というのが分かるうえ、詳しく確認すると屋外よりも脱衣所のほうが湿度が上がっている事がわかります。

機材の紹介

特に案件じゃないのでアレですが、公式サイトにリンク張っておきます。

選定理由ですが、M5StickC Plusはとにかく必要十分な機能があったことが一番です。そこそこ安くて、ディスプレイが付いていて、本体に温湿度計が付けられること。
センサユニットはM5Stickの場合、Grove端子で外付けする”UNIT”タイプと本体に直接ドッキングする”HAT”タイプ(参考リンク)の2つが選べたんですが、購入時にHATに気づかなかったのでUNITになりました。結果的にはどっちでも良かったです。
SwitchBotは純粋に、屋外は屋外用、室内は室内用で買いました。

構築の手順

  1. SwitchBotの温湿度計を単体でセットアップします。スマホにアプリを入れてペアリングすれば良いです。
  2. M5StickC PlusとセンサユニットをGrove端子で繋ぎます。コネクタはセンサユニットに同梱されていて、つながるところにつなぐだけで良いです。
  3. センサのサンプルプログラムを走らせて動作確認します。M5Stackシリーズの各本体ごと・HAT/UNITで全部サンプル用意されているので、該当するものを選びます。
  4. M5StackからSwitchBotの温湿度計のデータを取る先人のプログラムを走らせて動作確認します。M5StackかM5StickC Plusかで少し手直しが要りますが、まぁまぁ動きます。
  5. 上記サンプルを元に、がんばってコーディングします。
  6. 完成です。

苦労ポイント

技術的なノウハウがあるものは個別記事にします。

その他で苦労した点としては、M5Stack用の温湿度センサー(SHT30)と、SwitchBotの温湿度計の表示にかなり差があったことですかね。
湿度の方はほぼ同じ値を示してたんですが、温度がどうしてもズレる。3つの温湿度計を同じ場所に置いてるのに全然値が違う。それも、SwitchBotの温度がかなり緩やかにしか変化しない。
で、どうもSwitchBotの温湿度計はセンサーの生データを出しているのではなく、直近30分ぐらいのデータを使って補正した値を出しているっぽい、というのが分かりました。
SwitchBotのアプリでも「初回起動時や手動校正するときは30分以上放置してね」とあり、同じ場所に長時間置かれることを前提とした表示のようです。
ということで、1時間ぐらい放置すると値が揃ってきて、それでもSHT30だけ数値がズレていたので、SHT30側がおかしいんだろうということで、M5Stick内でプログラム的に補正することにしました。

あとはまぁ、省電力のためにCPUの周波数を落とそうとしたら80MHz以下では起動すらしなかったり、Bluetoothから拾うデータが結構な頻度で欠損するので欠損が分かるようにしてみたりと、そんなところですね。

おわりに

今回初めてIoTデバイス作成にチャレンジしてみましたが、自分で作ったものが物体として生まれるとうれしいですね。
また、PCやスマホのアプリと違い、専用デバイスで常時表示されていると、ふと気になったときに気軽に確認できるし、すぐ目に入るので良いです。
結構実用的なものが作れたので満足しました。

-自由研究

執筆者:

関連記事

ツイートを狙ってバズらせるテクニック

みなさんTwitterやってますか? 自分のツイートがバズったことありますか? 私はある。 ドヤ。 ドヤはともかくとして、人にはバズらないといけない時があって、そういうときのためのテクニックを紹介しま …

no image

暦の面倒臭さと和暦の元号カレンダーを作った話

もくじ1 前書き2 そもそも暦とは3 暦をどう捉えるのか3.1 1000年前の今日はいつ?4 対応カレンダーの必要性4.1 聖徳太子が生まれたのは何日前?5 対応カレンダーの作り方6 おわりに 前書き …

no image

不定期連載「認証と周辺技術」その1「認証と識別」

たまには技術っぽい記事もないとな、と思ったので、最近ちょっと気になっている「認証」について、調べながらまとめます。 さらっと書ける範囲でこまめに書きたいです。 もくじ1 はじめに2 「認証」とは3 「 …

no image

あみだくじはどれぐらいランダムか

あみだくじ。 紙とペンがあればすぐに作ることができるお手軽な抽選方法として知られています。 なにか物事を決めたいとき、あみだくじを使うという人も多いのではないでしょうか。 ふと思ったんですが、あみだく …

no image

FIDOについてなるべく平易にまとめてみる

この記事は情報系の学生ぐらいの知識を想定しています。なるべく平易に書きますが、わからないことがあったら自分で調べながら読んでください。 もくじ1 話の枕2 強固な認証の必要性3 3つのFIDO4 FI …