IoT 温湿度 モニターを自作して記録・通知まで行う実践入門ガイド

0
8
IoT 温湿度 モニターを自作して記録・通知まで行う実践入門ガイド

冷蔵庫のそばだけ結露しやすい、夏の工作室だけ暑くなる、留守中のペットの部屋が気になる。こうした身近な困りごとは、目で見た一度きりの確認では原因をつかみにくいものです。IoT 温湿度 モニターを自作すると、部屋や箱の中の状態を数値として残し、条件が悪くなったときだけ知らせる仕組みを作れます。電子工作を「測る」「記録する」「形にする」プロジェクトとして楽しめる題材です。

市販の温湿度計を置く方法もありますが、自作なら設置場所、測定間隔、通知条件、ケースの形を目的に合わせて変えられます。まずは動く計測器を完成させ、次に記録やケースを加える順番にすると、初めてでも失敗を切り分けやすくなります。

IoT 温湿度 モニターでできること

温度と湿度の値を取得するだけなら、マイコンとセンサーをつなぐだけで始められます。IoTらしさは、その値をWi-Fi経由で別の場所へ送ることにあります。スマートフォンで最新値を確認したり、表として履歴を見たり、設定値を超えたら通知したりできるようになります。

ただし、最初からすべてを作ろうとすると、配線、プログラム、ネットワーク、クラウドサービスのどこで止まったのか分からなくなります。最初の目標は「シリアルモニターに温度と湿度を表示すること」です。そこからWi-Fi送信、データ保存、通知の順に一つずつ追加しましょう。

用途によって、必要な精度や測定頻度も変わります。家庭菜園の環境確認なら数分ごとの計測で十分なことが多く、ペットや楽器の保管場所では、急な高温や過度な乾燥を知らせる設定が役立ちます。3Dプリンターを置く作業スペースでは、フィラメントの保管箱内部を測る使い方も実用的です。

まず選ぶ部品と構成

初心者には、Wi-Fi機能を内蔵したESP32系ボードが扱いやすい選択です。小型で安価なうえ、Arduino IDEでプログラムを書き込めます。Pythonを学びながら作りたい、画面表示や複数のUSB機器も使いたい場合はRaspberry Piでも構いません。ただし、常時動かすなら消費電力、起動時間、電源の安定性はESP32のほうが有利な場面があります。

温湿度センサーは、学習用にはDHT22系、測定の安定性を重視するならSHT31系やBME280系が候補です。DHT22系は配線とライブラリが分かりやすい反面、読み取り間隔や個体差の影響を受けやすいことがあります。BME280系は温度・湿度に加えて気圧も取得できるため、後からデータ活用を広げたい場合に向いています。

用意するものは、マイコンボード、温湿度センサー、ブレッドボード、ジャンパーワイヤー、USB電源です。完成形まで考えるなら、ケース用の3Dプリント材料、またはレーザーカッターで加工するアクリル板や木材も加わります。最初からケースを作る必要はありません。むき出しの回路で正しく測れることを確かめてから、外装を設計するほうが確実です。

配線では電圧と端子名を確認する

センサーの配線は、見た目が似ていても製品ごとに端子の並びが異なることがあります。基板に印刷されたVCC、GND、SDA、SCL、DATAなどの表記と、購入したモジュールの仕様を必ず照合してください。写真だけを参考に配線すると、向きの違いで電源を逆につなぐ事故が起こります。

I2C接続のSHT31やBME280では、電源、GND、SDA、SCLの4本を使います。ESP32ではGPIO番号をプログラム側で指定できる場合が多いものの、使うボードのピン配置を先に確認しましょう。DHT22系のような1線式センサーでは、DATA端子とプルアップ抵抗の扱いも確認が必要です。モジュール基板に抵抗が搭載済みなら、追加しなくてよい製品もあります。

5V専用のつもりで配線しないことも大切です。ESP32のGPIOは一般に3.3V系で動作します。センサー本体が広い電圧範囲に対応していても、信号線の電圧がボード側の許容範囲を超えないかを確認してください。ここを曖昧にすると、値が読めないだけでなく、ボードを傷める原因になります。

計測プログラムは表示から始める

プログラムは、まずセンサーライブラリのサンプルを動かし、温度と湿度がシリアルモニターに表示されるか確認します。表示値が一定のまま、極端な値、または読み取りエラーになるときは、Wi-Fi設定へ進まずに配線とセンサーの型番を見直しましょう。

計測周期は短ければよいわけではありません。室内環境の観察なら30秒から5分程度でも十分です。DHT系では連続読み取りがエラーにつながることがあるため、センサーの推奨間隔を守ります。また、温度変化を見たいからといって、マイコン本体のすぐそばにセンサーを置くのは避けてください。Wi-Fi通信や電源回路の発熱を拾い、実際の室温より高く表示されることがあります。

読み取った値には、計測時刻も一緒に付けます。最初は起動後の経過秒数でも構いませんが、履歴を活用するならネットワーク時刻を取得して年月日と時刻を記録すると便利です。後からグラフを見たとき、「夜だけ湿度が上がる」といった変化を生活や作業の出来事と結び付けられます。

Wi-Fi送信と記録は目的に合わせて選ぶ

データの送り先は、使い方で決めます。自宅のPCで試すだけなら、CSV形式でローカル保存する構成でも学びが多くあります。外出先でも確認したいなら、Webサービスや自宅サーバーへ送信する方法が候補です。通知を優先する場合は、条件を判定してメッセージを送る仕組みを作ります。

ここで意識したいのは、通信が失敗しても計測器そのものが止まらない設計です。Wi-Fiが切れたときに何度も接続を試し続けると、計測処理まで止まることがあります。一定回数で再試行を打ち切り、次の計測時刻にもう一度接続する、といった考え方が役立ちます。電波の弱い設置場所なら、通信の成功・失敗もシリアル表示やLEDで確認できるようにしておくと原因を追えます。

通知条件は、「温度が30℃を超えたら送る」のように単純に決められます。しかし、そのままでは値が境界付近で上下するたびに通知が届きます。30℃以上で警告し、29℃未満に戻るまで次の警告を出さない、といった幅を持たせると実用的です。湿度も同様に、目的に応じた上限と下限を考えます。

ケース設計で測定の質が変わる

電子回路をケースに入れると、見た目だけでなく設置の安全性も上がります。ただし、温湿度センサーを密閉してはいけません。空気が通る穴やスリットを設け、センサー周辺に熱がこもらない形にします。穴を大きくしすぎるとホコリが入りやすく、小さすぎると反応が遅くなるため、試作しながら調整する価値があります。

3Dプリンターで作るなら、センサー部分だけ格子状の開口にしたケースが作れます。レーザーカッターなら、アクリル板を組み合わせて前面に細いスリットを入れる方法が簡単です。壁掛け用の穴、卓上用の脚、USBケーブルの逃がしもCAD上で加えられます。デジタルデータから自分の設置場所に合う道具を作れることが、既製品にはない面白さです。

センサーは直射日光、エアコンの風、加湿器の吹き出し口から離して設置します。これらの近くでは、その場所全体の環境ではなく局所的な値を測ることになります。あえて吹き出し口の近くを測るなら、「部屋の平均」ではなく「機器の近くの状態」を知る目的だと明確にしておきましょう。

よくある不調を切り分ける

値が取得できないときは、部品交換の前に、電源、GND共通、信号線、プログラムで指定したGPIO番号、ライブラリのセンサー型番を順に確認します。I2Cセンサーなら、接続されているアドレスをスキャンするプログラムを使うと、配線と通信のどちらに問題があるか判断しやすくなります。

値が現実と大きく違う場合は、センサーを手で包んで反応を見る前に、設置位置を疑います。マイコンの発熱、USB電源、ケース内の空気だまり、日光が原因になることは珍しくありません。基準となる温湿度計と並べて数時間比較し、常に一定の差が出るなら、補正値をプログラムに加える方法もあります。ただし、補正は設置環境を整えた後に行います。

電源が不安定で再起動する場合は、USBケーブルや電源アダプターも確認対象です。特にWi-Fi通信の瞬間は消費電流が増えます。ブレッドボード上では動いていたのにケースへ入れた途端に不安定になったなら、ケーブルの曲がりや端子の接触も点検しましょう。

温湿度を数値として集めると、部屋や箱の中で起きていた小さな変化が見えてきます。まずは今日、センサーをつないで一つの値を表示させてみてください。その一行の表示から、通知を作る、ケースを設計する、データをグラフにするという次の工作が始まります。