ツクラボ
電子工作入門

IoT入門|センサーデータをクラウドへ送る基本構成

更新: 2026-03-19 18:20:12中村 拓也(なかむら たくや)

IoTは、センサーで拾った情報をどう処理し、どうつなぎ、どこに貯めて、どう見せて使うかまでを5つの層で分けて考えると、一気に道筋が見えてきます。
『IoT Basics: A Guide for Beginners』でも、デバイスとネットワーク、クラウドやアプリケーションに分けて捉える整理が基本です。

筆者はワークショップで、配線もセンサー読み取りもできたのにクラウドへ届かず手が止まる場面を何度も見てきました。
そこで本記事では、構成図と具体例を使って、その遠回りを最短で避ける入り方をお伝えします。

これから試作を始めるなら、まずはESP32でWi‑Fi直結し、MQTTかHTTPSで無料枠のあるクラウドへ送る最小構成から入るのが堅実です。

Wi‑Fi直結、BLEとゲートウェイ、セルラー直結の3構成の違いと、MQTTHTTPCoAPの使い分けまで順に見ていけば、今日から自分の試作メモを設計の言葉で書けるところまで進めます。

関連記事スマートホーム自作|ラズパイとESP32の始め方ラズパイ=司令塔、ESP32=末端ノードの役割で最小構成を組む入門。必要部品、MQTT(Mosquitto)、Node-RED、必要に応じてHome Assistantまで一気通貫で解説。センサー送信とLED制御の初実装、容量要件とセキュリティの基本もカバー。

IoTでセンサーデータをクラウドに送る全体像

5層モデルの俯瞰図

IoTでセンサーデータをクラウドへ送る流れは、5つの層に分けて眺めると迷子になりません。
TechTargetの『IoT Basics: A Guide for Beginners』でも、デバイス、ネットワーク、クラウドという切り分けが基本として紹介されています。
アプリケーション側まで含めた流れを重視する点も示されています。
本記事ではそれを、実装の手順に落とし込みやすいように5層に細かく分けます。

1つ目はセンサーです。
ここで温度、湿度、照度、開閉、加速度のような物理量を拾います。
たとえば『SHT31』なら温度と相対湿度を同じチップで計測でき、I2Cでマイコンに読ませられます。
センサーが最初に行っているのは、空気や動きといった現実世界の変化を電気的に扱える形へ変えることです。

2つ目はマイコンまたはゲートウェイです。
ESP32のようなマイコンなら、センサーから値を読み取り、必要なら平均化やしきい値判定をして、送信しやすいデータに整えます。Raspberry Pi Zero 2 Wのような小型機を置く場合は、複数センサーを集約するゲートウェイ役にもできます。
ここでつまずく人が多いのですが、センサーが値を出せることと、クラウドへ届くことは別の仕事です。
読み取り成功だけで安心すると、その先の通信層で止まります。

3つ目はネットワークです。
Wi‑FiならESP32からそのままインターネットへ出せます。
BLEは電力を抑えやすい反面、そのままクラウドへ届かない構成が多く、間にゲートウェイが入ります。
セルラーは屋外や遠隔地に強く、LTE‑Mのような方式がこの層に入ります。
通信方式もここで決まり、クラウド連携ならMQTT、Web API寄りならHTTPS、制約の厳しい機器ならCoAPが候補になります。
HiveMQの『MQTT vs CoAP for IoT』でも、BrokerベースでクラウドとつなぐならMQTT、軽量なREST型を狙うならCoAPという整理がされています。

4つ目はクラウド受信です。
ここではIoTプラットフォームがデータを受け取り、認証し、転送先へ橋渡しします。
初心者が最初に触りやすい選択肢としてはAWS IoT CoreやAzure IoT Hubが代表的です。
メッセージの受け口を先に決めておくと、デバイス側のコードで「どこへ」「どの形式で」送るかが定まります。

5つ目は保存と可視化、そして活用です。
受け取っただけではIoTの価値はまだ半分です。
時系列で保存して、グラフで見て、通知につなげて初めて意味が出ます。
たとえば時系列データベースの『InfluxDB』へ保存し、『Grafana』で折れ線グラフや閾値アラートを作る構成は定番です。
クラウドのマネージドDBを使うならAmazon Timestreamのような選択肢もあります。

この5層を、1本のデータの旅路として頭の中で追うと流れが定着します。
室温を測ると、センサーが空気の変化を電気信号として受け取り、マイコンがそれをデジタル値に変えて、Wi‑FiやBLEやセルラーで送り、クラウド側が受信して保存し、ダッシュボードに折れ線として表示され、条件を超えたら通知が飛ぶ、という順番です。
講座ではこの順序を口だけで説明するより、紙に5層図を描いてから配線を始めた回のほうが、受講者が最後まで到達する割合が明らかに高くなります。
筆者の感覚では、配線ミスそのものが減るというより、「今どこで詰まっているのか」を切り分けられるようになる効果が大きいです。

IoT Basics: A Guide for Beginnerstechtarget.com

最小構成で通す理由

最初から複数センサー、複数画面、通知、履歴保存まで全部載せにすると、どこで壊れたのか見えなくなります。
そこで筆者は、まずは1台のセンサーから始める進め方を勧めています。
測る対象を1つに絞り、1台のマイコンで読み、1本の通信経路で送り、クラウドに1件保存し、1つのグラフに出す。
このエンドツーエンドが通ると、IoTの全体像が部品の寄せ集めではなく、一本の動く仕組みとして見えてきます。

たとえば入門用の試作なら、ESP32に『SHT31』をつなぎ、Wi‑Fi経由でクラウドへ送る構成が扱いやすいです。
開発ボードの例としてはESP32‑DEVKITC(販売店掲載例: マルツ、参照時点: 2026-03、参考価格の掲載例)があります。
センサー側もI2C接続で配線点数を抑えられます。

ここでの狙いは、立派なシステムを作ることではありません。
測定、デジタル化、送信、受信、保存、表示の6段階を一度つなぎ切ることです。
受講者を見ていると、センサー値をシリアルモニタに出せた段階で満足してしまう人と、クラウドのダッシュボードに点が1つ出るまで粘る人とで、その後の伸び方が変わります。
前者は部品単位の理解に留まり、後者は「どこを差し替えれば応用できるか」を掴みます。
だからこそ、最初のゴールは小さくても、始点から終点までを必ず通します。

※本文中のAWS料金例は参照時点の「例示」です。最新の正式料金は AWS IoT Core の公式料金ページを参照してください(参照時点: 2026-03)。

TIP

最初の1台は、センサー値が取れたかではなく、クラウドに保存され、グラフに点が出たかで完了判定を置くと、試作の質が一段上がります。

拡張の方向性

最小構成が通ったら、拡張は層ごとに考えると崩れません。
センサー層なら、温湿度に加えてCO2や人感、開閉を足す流れがあります。
処理層なら、単純送信から平均化、欠測補完、しきい値判定へ進められます。
ネットワーク層では、Wi‑Fi直結からBLE+ゲートウェイへ切り替えて電池駆動のセンサーノードを増やす道がありますし、屋外監視ならセルラー直結へ伸ばせます。

BLEを使う構成では、ゲートウェイの意味が一気に具体的になります。
BLEセンサーはインターネットへそのまま出られないので、Raspberry Pi Zero 2 Wのような小型機がBLEで受けてWi‑Fiでクラウドへ上げる中継点になります。
このボードは2.4GHzのWi‑FiとBluetooth 4.2/BLEを持ち、512MB RAMの小型機です。
屋内ゲートウェイとして机の隅や分電盤付近に置きやすく、ケースやmicroSDを含めると手のひらサイズの小箱として扱えます。
講座でも、配線付きのマイコンをそのまま置くより、役割を「センサー」と「集約機」に分けたほうが受講者の理解が進みます。

クラウド側の拡張も、保存先と見せ方を分けて考えると筋道が立ちます。
保存を強化したいなら、時系列データベースへ集約して保持期間や集計単位を設計します。
『InfluxDB』はmeasurement、tag、field、timestampという時系列向けの構造を持つので、部屋名や設置場所をtag、温度や湿度をfieldに分けて入れる設計と相性が合います。
可視化を広げたいなら『Grafana』で部屋ごとの比較、24時間推移、閾値超過の通知を追加できます。
IoTの価値は送信成功で終わらず、保存された履歴から傾向を読み取り、通知や制御へつなぐ段階で立ち上がります。
クラウド側の拡張も、保存先と見せ方を分けて考えると筋道が立ちます。
保存を強化したいなら時系列データベースを採用し、可視化はダッシュボードで用途別に整えると良いでしょう。

国内運用まで見据える段階では、クラウドのセキュリティ評価の見方も層の一部になります。
政府向けの評価制度としてISMAPがあり、民間でも参照軸として使えます。
ISMAPのISMAP概要を見ておくと、クラウドを「安いか高いか」だけで選ばず、運用管理や統制の観点でも比較する発想が持てます。
試作段階では手早く動かすことが先でも、拡張フェーズではこの視点が効いてきます。

こうして見ると、IoTの拡張は新しい機材を次々足す作業ではありません。
1本通ったデータの旅路を保ったまま、センサー数を増やす、通信を変える、保存先を育てる、可視化を厚くする、という順で層ごとに広げていく作業です。
最初の1台を丁寧に通しておくと、その後に2台目、5台目と増やしたときも、どの層で手を入れるべきかが見えたまま進められます。

IoTの基本構成は5つに分けると理解しやすい

IoTを「ネットにつながる機器」とだけ捉えると、途中で設計の見通しを失いがちです。
実際には、センサーで値を取るところから、送る、受ける、ためる、見せる、そして動かすところまでが1本の流れになっています。
そこで筆者は、初心者向けには デバイス、接続、クラウド、分析/可視化、制御 の5つに分けて考える形をよく使います。
3層で理解する説明も一般的ですが、5つに分けると「どこで何を決めるのか」が見えやすくなります。

5つの役割と境界

まずデバイスは、現場の情報を取る、または現場を動かす役割です。
たとえばESP32に『SHT31』をつないで温湿度を読む構成なら、センサーが温湿度を測り、マイコンがそれをデジタルデータとして扱います。
ここにはアクチュエータ(リレー、モーター、LED、ブザーなど)も含まれます。
読むだけでなく動かす側まで入るのがポイントです。

次の接続は、そのデータをどの経路で外へ出すかを決める層です。
Wi‑Fiでクラウドへ直接送るのか、BLEで近くのゲートウェイに集めるのか、LTE‑Mのようなセルラーで遠隔地から送るのかで、配線以外の設計が変わります。
たとえばBLEセンサーは近距離の省電力構成に向きますが、そのままではインターネットへ届かないため、Raspberry Pi Zero 2 Wのようなゲートウェイが1台入る構成になります。
ここで初心者が混乱しやすいのは、「無線で飛んでいる」ことと「クラウドまで届いている」ことを同じに見てしまう点です。
接続層は、電波方式そのものではなく、最終的にどこまで運べるか を考える場所だと捉えると整理できます。

クラウドは、届いたデータを受け止める土台です。
ここでは受信、認証、デバイス管理、ルール処理が中心になります。
MQTTでBrokerにpublishする、証明書で端末を識別する、受けたデータを保存先へ振り分ける、といった処理はこの層の仕事です。
TechTargetのIoT Basics: A Guide for BeginnersA Guide for Beginnersでも、IoTはデバイスとネットワークだけでなく、データを受けて活用するアプリケーション側まで含めて説明されています。
これは受信から活用までの流れを重視した説明です)。

分析/可視化は、送った値を「意味のある情報」に変える層です。
たとえば時系列データベースの『InfluxDB』に温湿度ログを蓄積し、『Grafana』で折れ線グラフやアラートを組むと、「今いくつか」だけでなく「昨日より上がっているか」「毎朝同じ時間に湿度が落ちるか」まで読めます。
IoTはここまで来てはじめて、単なる遠隔計測ではなくデータ活用になります。
グラフが見えると一気にIoTっぽく感じますが、実務ではその手前の保存設計が抜けていて、後から比較できないというケースも多いんですよね。

制御は、分析結果や人の操作を現場へ返す層です。
クラウドから下り指令を送り、ファンを回す、閾値を変更する、ファームウェアをOTAで更新するといった処理がここに入ります。
筆者の経験では、この「戻り道」を最初から図に入れておくと、後で双方向通信やセキュリティ要件の見落としが減ります。
最初は温度を送るだけのつもりでも、しばらくすると「しきい値を遠隔で変えたい」「再起動したい」が必ず出てくるからです。
送信だけの片方向設計で始めると、その時点で認証や権限設計を組み直すことになります。

SHT31-DIS-B - ±2%(0-100%RH)デジタル温湿度センサーsensirion.com

IoTMarkの3要素と現場の対応関係

IoTの入り口では3層構成で説明されることが多いですが、現場で手を動かす段階では、エッジノードを3つの要素で見る整理も役立ちます。
ここで言うIoTMarkは、公式な一次資料として定義書を確認できた規格名ではありませんが、業界ではエッジ側を センサー・プロセッサ・無線I/F の3要素で捉える考え方がよく使われます。
この3つは、5層理解の土台として見ると収まりがよくなります。

センサーは、そのまま5層のうちデバイス層の入口です。
『SHT31』やDHT22のような温湿度センサーがここに当たります。
プロセッサは、値を読み、整え、送信形式へ変える頭脳で、たとえばESP32が担当します。
無線I/FはWi‑FiやBluetoothのような外への出口です。
ESP32はWi‑FiとBluetoothを統合したSoCなので、プロセッサと無線I/Fを1枚で兼ねられる点が、試作の立ち上げを軽くしてくれます。
マルツでESP32‑DEVKITCが1,371円で掲載されているように、入手しやすい価格帯なのも試作向きです。

この3要素を現場の5役割へ写すと、センサーとアクチュエータはデバイス、無線I/Fは接続、プロセッサはデバイスと接続の境界を受け持つ形になります。
その先にクラウド、分析/可視化、制御が続きます。
つまり、3要素の整理は「エッジ側をどう組むか」、5役割の整理は「システム全体をどう通すか」を見る視点です。
ワークショップでは、まずESP32と『SHT31』でセンサー・プロセッサ・無線I/Fのまとまりを理解してもらい、その後に「送った先で何をするか」を5役割へ広げると、受講者の頭の中で部品とサービスがつながります。

この対応関係を意識すると、部品選定の意味も見えます。Raspberry Pi Zero 2 Wをゲートウェイとして使う場合、Piは単なる小型PCではなく、BLE側の無線I/Fと、クラウドへ向かうWi‑Fi側の接続を橋渡しする役になります。
2.4 GHz Wi‑FiとBluetooth 4.2/BLEを持つので、近距離センサー群の集約点として位置づけやすいわけです。
ポケットに入る基板サイズでも、役割としては接続層の要石になります。

将来拡張を見据えた設計観点

最初の試作では1台のセンサーがクラウドへ届けば十分ですが、設計の見方としてはその先も少しだけ意識しておくと、作り直しが減ります。
特に気にしたいのは、データ量、保存先、制御経路の3つです。
内閣府の資料では、2025年からの10年間でセンサーデータ量が10倍以上に増える予測が示されています。
家庭内の温湿度ログでも、測定点が増えれば時系列データはすぐ積み上がります。
1台分では軽く見えても、部屋ごと、設備ごと、時間粒度ごとに増えるので、保存形式と可視化の持ち方を早めに分けておくと後で困りません。

たとえば、温湿度をCSVに追記するだけの試作は立ち上がりが速い反面、複数台になった瞬間に扱いが苦しくなります。
最初からInfluxDBのような時系列データベースを選ぶと、measurement、tag、field、timestampという形で整理できるので、「どの部屋の、どの時刻の、何の値か」を自然に分けて持てます。
可視化側もGrafanaを組み合わせれば、単一グラフから始めて、部屋別比較やアラートへ育てていけます。

接続方式も、最初に境界を決めておくと拡張時の混乱が減ります。
Wi‑Fi直結は初心者の1台目に向いていますが、電池駆動の小型センサーを増やす段階ではBLE+ゲートウェイ構成が視野に入ります。
遠隔地の設備監視まで広げるなら、LTE‑Mのようなセルラー直結も候補になります。
ここで大切なのは、通信方式を「速いか遅いか」だけで選ばず、クラウドまでの経路を何段で作るか で見ることです。

プロトコルも同じで、HTTP/HTTPSは理解しやすく、MQTTはBroker中心で双方向運用に向き、CoAPは制約の強いデバイスで候補に入ります。
HiveMQのMQTT vs CoAP for IoTHiveMQのMQTT vs CoAP for IoTでも、MQTTはクラウド連携と管理、CoAPは軽量性の観点で整理されています。
初心者の設計では、分析/可視化までつなげる前提ならMQTTを軸にしたほうが、上りと下りの流れを同じ地図の上に置けます)。

もう1つ見逃せないのが、制御を後付け機能として扱わないことです。
たとえば将来OTA更新を入れたいなら、クラウド側の認証だけでなく、端末が「誰からの指令を受けるのか」を最初から決めておく必要があります。
室温が閾値を超えたら通知するだけなのか、換気ファンまで自動で回すのかで、必要な権限と失敗時の考え方が変わります。
IoTはデータを送って終わりではなく、そのデータを使って意思決定や自動化までつなぐ仕組みだと捉えておくと、5つの構成要素がばらばらの知識で終わらなくなります。

hivemq.com

センサーデータはどう流れる? センサーからクラウドまでの経路

時系列データの基本とJSONスキーマ

センサーからクラウドまでの流れは、値を読むところから始まり、デジタル化し、ネットワークで送り、クラウドで受け取り、保存し、グラフやダッシュボードで見るところまでがひと続きです。
たとえば温湿度センサーが空気の状態を取得し、マイコンがその値をデジタルの数値として扱える形に整えます。
アナログ出力のセンサーならADCで電圧を数値へ変換し、デジタルセンサーならI2CやSPIでそのまま読み出します。
そこからMQTTHTTP/HTTPSCoAPのような手段で送信し、クラウド側で受信して、時系列データベースやオブジェクトストレージへ保存し、最終的に『Grafana』のようなダッシュボードで可視化する、というのが基本形です。

ここがポイントです。
センサーデータは単なる「数字の集まり」ではなく、いつ、どの機器が、どんな値を出したか がセットになって初めて意味を持ちます。
そのため、多くのIoTシステムではセンサーデータを時系列データとして扱います。
最低限そろえたい項目は、timestampdevice_idvalue の3つです。
温度なのか湿度なのか、単位は何かといった情報は後から足せますが、この3つが曖昧だと保存後の検索や可視化で必ず詰まります。

講座で毎回先に決めるのが、timestamp は UTC の ISO 8601 で統一する、というルールです。
ここを後回しにすると、ダッシュボードでは朝8時のつもりで見ていた値が、実は端末ローカル時刻のまま保存されていた、という混乱が起きます。
筆者の経験では、最初にこの1点を決めておくだけで、可視化の段階で起きる時差まわりの混乱がぐっと減ります。

最小ペイロードは、まず次のような形で十分です。

{
  "device_id": "sensor-room1",
  "timestamp": "2026-03-18T09:30:00Z",
  "value": 23.4
}

この形なら、送信側のコードも短く保てますし、受信側でも扱いがぶれません。
温度と湿度を同時に送りたい場合は、metric を追加するか、temperaturehumidity を分けて持つかを早めに決めます。
『InfluxDB』のような時系列DBへ入れるなら、どの値がタグで、どの値がフィールドで、時刻をどう持つかまで意識すると、あとで部屋別やデバイス別の比較が素直にできます。

クラウドの入口としてはAWS IoT CoreやAzure IoT Hubのような取り込みサービスが定番です。
AWS IoT Core Pricing(https://aws.amazon.com/iot-core/pricing/を見ると、常時接続の接続コストやメッセージ料金の目安が分かるので、試作段階でも「1台あたりどのくらいの送信頻度なら現実的か」という感覚を持てます。
受信後はAmazon Timestreamや『InfluxDB』のような時系列向け保存先に入れ、可視化は『Grafana』で折れ線グラフにする、という流れが入り口として収まりのいい構成です)。

Grafanaの料金 | Free, Pro, Enterprisegrafana.com

サンプリング設計と帯域/電力のトレードオフ

センサーは読めば読むほど細かい変化が見えますが、そのぶん通信量と消費電力が増えます。
ここで考えるのがサンプリング周期です。
入門では 1〜60 秒周期のどこかから始めると、グラフの見え方と通信量のバランスをつかみやすくなります。
室温のように変化が緩やかな値であれば毎秒送る理由は薄く、数秒から数十秒でも十分に傾向を追えます。
一方で、人感や振動のように変化が速いものは、もっと短い周期が必要になります。

筆者が試作を組むときは、まず測定周期と送信周期を分けて考えます。
たとえば内部では5秒ごとに測りつつ、クラウドへは30秒ごとにまとめて送る、あるいは閾値を超えたときだけ即時送信するといった形です。
これにより、必要な情報を残しながら帯域と電力を抑えられます。
この分離により、測定の粒度を保ちながら送信回数を抑えられます。
結果として帯域と消費電力のバランスが改善できます。
Hubbleのガイドでは、見通しの良い環境での目安としてBLEの到達距離を約100mとしています。
ただしこの値は屋内の壁や障害物、干渉、アンテナ特性で大きく短くなるため、「目安」であることを前提に配置検討してください(出典: Hubble、参照時点: 2026-03)。
プロトコル選びも同じで、通信量の感覚と運用のしやすさを一緒に見ます。
MQTTは Publish/Subscribe なので、センサーが値を投げ、クラウド側が受ける流れを作りやすく、双方向制御にも広げやすい形です。
HTTP/HTTPSは理解しやすく、Web API と同じ感覚で扱えます。
CoAPは軽量通信を狙うときに候補になります。
HiveMQのMQTT vs CoAP for IoTHiveMQのMQTT vs CoAP for IoTでも、この違いが整理されています。
入門段階では、送信頻度の調整と合わせてMQTTかHTTP/HTTPSを軸に考えると、動作確認からクラウド連携までを一直線につなげやすくなります)。

NOTE

サンプリング周期と送信周期は同じでなくて構いません。測る回数と送る回数を分けるだけで、グラフの滑らかさを保ちながら通信量を抑えられます。

加えて、差分送信や閾値送信も有効です。
温度が前回からほとんど変わっていないなら送らない、設定した閾値を超えたときだけ送る、という設計です。
これなら保存データも密度の高い部分と疎な部分がはっきりし、あとでグラフを見たときにも「変化があった瞬間」が読み取りやすくなります。

欠損・ノイズ対策の初歩

センサーデータの流れを考えるとき、値が取れたときだけでなく、取れなかったときの扱いも決めておく必要があります。
欠損は、通信失敗、センサー読み取り失敗、再起動直後の空白などで普通に起こります。
ノイズは、電源の揺れ、配線の取り回し、周囲環境の影響で混ざります。
どちらも珍しい例外ではなく、時系列データでは日常的に出てくるものです。

初心者の段階でまず押さえたいのは、欠損をゼロで埋めないことです。
温度が読めなかったのに 0 を入れると、可視化した瞬間に急降下したように見えます。
実際には「値がなかった」だけなのに、グラフ上では意味のある変化に見えてしまいます。
欠損は欠損として扱い、保存時にも null 相当で持つか、その時点のレコード自体を作らない方が、後段の分析で解釈を間違えません。

ノイズ対策としては、まず移動平均のような単純な平滑化から始めると効果が分かりやすく出ます。
たとえば直近数点の平均を取るだけでも、単発の跳ねを抑えた見やすいグラフになります。
ただし、平滑化しすぎると変化の立ち上がりが鈍って見えるので、元データを残したうえで表示側だけ平均を取る構成の方が扱いやすい場面が多いです。
筆者はワークショップで、まず生データを1本、移動平均を1本、同じダッシュボードに並べて見せます。
そうすると受講者が「ノイズを消した」のではなく、「見え方を変えた」だけだと理解しやすくなります。

サンプリング周期も品質に関わります。
周期が短すぎると、変化していない値を大量に集めるだけになり、通信と保存の負担が先に目立ちます。
逆に長すぎると、扉を開けた直後の温度変化のような短いイベントを見逃します。
DHT22には最短サンプリング間隔 2 秒以上という仕様があるので、センサーごとに読める速さの上限がある点も見落とせません。
読みたい現象の速さと、センサー自身の更新間隔の両方をそろえて考える必要があります。

クラウドに届いた後も、受信、保存、可視化のそれぞれで品質の見え方が変わります。
時系列DBに保存するときに時刻が重複していないか、ダッシュボード側で欠損を直線補間していないか、といった点でグラフの印象は変わります。
値そのものだけでなく、device_idtimestamp がきちんとそろっているかを監視対象に入れておくと、データの信頼感が保ちやすくなります。
IoTのデータパイプラインは、送れたかどうかだけではなく、あとで正しく読める形で残っているか まで含めて完成形です。

初心者が最初に知るべき3つの構成パターン

Wi‑Fi直結

最初の1台を形にするなら、まず候補に上がるのがESP32のようなWi‑Fi搭載マイコンでクラウドへそのまま送る構成です。
センサーを読み、整形し、Wi‑Fiで送信するまでを1枚で受け持てるので、部品点数が増えにくく、配線も頭の中で追いやすくなります。
初心者がつまずきやすい「どこが壊れているのか分からない」という状態を減らせるのが、この構成の強みです。

試作段階でWi‑Fi直結が扱いやすい理由は、ネットワークの経路が短いからです。
デバイスからクラウドまでの間に別機器を挟まないので、切り分ける対象が少なくなります。
AWS IoT Core Pricing(https://aws.amazon.com/iot-core/pricing/にある例でも、24時間接続の1デバイスあたり年額約0.042ドル、毎時10件・8KB・30日送信で0.00864ドルという水準です。
まずは送ってみる段階では通信の仕組みそのものを理解する方に意識を向けやすい構成です)。

一方で、設置場所はWi‑Fiが届く範囲に縛られます。
電池駆動もできますが、Wi‑Fi送信は電流をまとめて使うため、電源設計まで踏み込むと急に考えることが増えます。
机の上で配線しながら動かす初号機、室内で電源を取りやすい監視、社内や家庭内の環境計測なら、まずこの形から入ると全体像を掴みやすくなります。

BLEセンサー + ゲートウェイ

BLE構成は、センサー側の消費電力を抑えたいときに候補になります。
小さなセンサーを電池で長く動かしたい、室内に複数台を置きたい、といった場面では魅力があります。
ただし、ここで初心者が見落としやすいのが、BLEセンサー単体ではクラウドまで届かない点です。
BLEはIPスタックを持たないため、Wi‑Fiや有線LANのようにそのままインターネットへ出られません。
そこで橋渡し役としてゲートウェイが入ります。

このゲートウェイ役にはRaspberry Pi Zero 2 Wのような小型機がよく使われます。
Bluetooth 4.2 / BLEと2.4GHz Wi‑Fiを持っています。
BLEで受けてWi‑Fiで上へ流す役割を1台でまとめやすい構成です。
HubbleのHow to Design an IoT Data Pipeline from Device to CloudHubbleのHow to Design an IoT Data Pipeline from Device to Cloudでは、BLEの到達距離の目安として約100mが挙げられています。
屋外の見通しや屋内の壁の数で体感は変わりますが、設計の出発点としてはこの目安が役立ちます)。

筆者がBLEビーコンの相談を受けるとき、典型的なのは「届かない」「つながらない」です。
原因をセンサー側の設定から追い始める人が多いのですが、実際にはゲートウェイの置き場所と、その場所で安定して電源を取れるかを先に決めた方が話が早く進みます。
BLEは省電力な反面、構成全体としてはセンサー、ゲートウェイ、クラウドの3点を見る必要があり、1台増えるだけで運用の重心が変わります。
台数が増えたときにゲートウェイ側で一括更新や集中管理ができるのは利点ですが、最初の学習コストはWi‑Fi直結より一段上がります。

WARNING

BLE構成は「センサーをどこに置くか」より先に「ゲートウェイをどこに置けるか」で考えると、配置の失敗が減ります。
通信範囲だけでなく、電源と保守の動線まで含めて逆算するのがコツです。

セルラー直結

Wi‑Fiがない場所、あるいは遠隔地や屋外を前提にするなら、セルラー直結が選択肢に入ります。
クラウドへ直接送れるという意味ではWi‑Fi直結に近い一方、強みが出るのはネット環境を自前で持ち込める点です。
畑、資材置き場、離れた設備、移動する対象の監視では、この構成が現実的になります。

セルラーはLTE‑MやNB‑IoTのようなモバイルIoT向け規格が使われることが多く、NB‑IoTは180kHzの狭帯域で省電力と深部到達性を重視した設計です。
固定設置のセンサーや屋内奥まった場所の計測と相性があり、LTE‑Mは移動体やトラッキングのようにハンドオーバーが絡む用途に向きます。
こうした性格の違いはありますが、初心者目線ではまず「Wi‑Fiがない場所でも単独で上へ送れる」という理解で十分です。

その代わり、モジュール費、回線契約、消費電力の3つが一緒に乗ってきます。
室内の試作1台目としては、学ぶ対象が一気に増えます。
筆者はワークショップでも、まずWi‑Fi直結でデータが流れる感覚を掴み、その後で設置自由度を広げるためにセルラーへ進む順番を勧めることが多いです。
セルラーは便利ですが、便利さの中身が「届く範囲の広さ」と引き換えに、運用要素が増えるところにあります。

3構成の比較表

構成を選ぶときは、通信方式そのものより、設置場所にWi‑Fiがあるか、電池駆動なのか商用電源なのか、台数が増えたときにどこで管理したいかを見ると迷いにくくなります。
OTA更新を各デバイスに直接入れたいならWi‑Fiやセルラー、近距離のセンサー群をゲートウェイでまとめて管理したいならBLEという見方です。

項目Wi‑Fi直結BLEセンサー + ゲートウェイセルラー直結
ネット到達性直接クラウドへ送れるゲートウェイ経由が必要直接クラウドへ送れる
初心者向け度高い中程度中程度
消費電力中程度低くしやすい高めになりやすい
設置自由度Wi‑Fi圏内に限られるゲートウェイ周辺広域向き
構成の複雑さ低い高い中程度
向く用途家庭内・室内試作電池駆動・近距離センサ群遠隔監視・屋外設置

この表を実務感覚に置き換えると、室内でまず1台を動かすならWi‑Fi直結、電池で小型センサーを複数置くならBLEとゲートウェイ、ネットがない現場へ置くならセルラー、という並びになります。
初心者の段階では、機器の性能差より「どこに置くか」「電源をどう取るか」「何台まで増えるか」で答えが決まることが多いです。
ここが固まると、次のクラウド選定や保存方式の判断もぶれにくくなります。

関連記事ESP32 Arduino IDE入門|初期設定と書き込み『ESP32』をArduino IDE 2で今日から動かしたい初心者の方向けに、定番のESP32 DevKitC系ボードを前提に、ボード定義の追加からボードとポートの選択、『WiFiScan』の書き込み、シリアルモニタを115200bpsに合わせて結果を読むところまで、最短ルートで通します。

MQTT・HTTP/HTTPS・CoAPの違い

MQTTを選ぶ場面と設計の勘所

MQTTは、デバイスがブローカに向けてメッセージを発行し、必要な側がそのトピックを購読して受け取る Publish/Subscribe 型 のプロトコルです。
送信元と受信先を直接結び付けずに済むので、センサー、ダッシュボード、通知処理、保存先をあとから足しても構成が崩れにくいところが強みです。
温湿度センサーを積んだESP32が値を送り、クラウド側で保存とアラートを別々に受ける、といったIoTらしい流れにきれいに乗ります。

クラウド側でMQTTがよく使われる背景も、ここにあります。
AWS IoT Core Pricing(https://aws.amazon.com/iot-core/pricing/を見ると、24時間接続の1デバイスで年額約0.042ドル、1台が毎時10件・8KB・30日送信しても約0.00864ドルという例が示されています。
もちろん費用だけで決まる話ではありませんが、常時つながる前提と相性がよく、デバイス数が増えても運用の見通しを立てやすいので、クラウドの入口として採用されやすいわけです。
AWSAzureのような主要サービスがMQTTを前提にした導線を太く持っているのも後押しになります)。

最初の1台を動かすだけならHTTPSでPOSTしても十分です。
値が送れて、クラウドで見えて、ログも追えるからです。
ただ、2台、10台、50台と増えてくると、home/livingroom/temp のようなトピック設計を最初に整えておいた構成のほうが、あとで管理がぐっと楽になります。
どの部屋の、どの種別のデータかをトピックで切れるので、保存先の振り分けや監視条件の追加が素直に書けます。
ワークショップでも、最初は送信成功だけで満足していた受講者が、台数が増えた段階でトピック設計のありがたさを実感する場面を何度も見てきました。

設計の勘所としては、双方向通信を前提に考えられる点も見逃せません。
センサーからの上りだけでなく、設定変更や再起動指示、しきい値の更新を下りで返せます。
加えてMQTTは再接続やQoS(配信品質)の考え方を持っているので、「多少の断があっても再接続後に流れを戻したい」「落としてよい通知と落としたくない通知を分けたい」といった設計に向きます。
保護には通常TLSを使います。
つまり、MQTTは軽いだけの通信ではなく、疎結合・双方向・運用管理まで含めて効いてくる選択肢です。

NOTE

MQTTで最初に決めるべきなのはライブラリ名よりトピックの切り方です。
場所、デバイス種別、計測項目の順にそろえるだけでも、保存・監視・デバッグの流れが整います。

HTTP/HTTPSを選ぶ場面と落とし穴

HTTPやHTTPSは、クライアントがリクエストを送り、サーバーがレスポンスを返す リクエスト/レスポンス型 です。
Web開発に触れたことがある人なら理解しやすく、REST API、定期POST、Webhook受信のような形にそのまま乗せられます。
ブラウザ、サーバー、JSON、APIという既存のWeb資産と相性がよいので、試作段階では学習コストを抑えやすいのが魅力です。

この方式が向くのは、デバイス側の動きが単純なときです。
たとえばESP32が5分ごとに温湿度を読み、クラウドAPIへHTTPSでPOSTする構成なら、流れが追いやすく、ログもHTTPステータスで把握できます。
Webhookで別サービスへ通知する構成も組みやすく、Web寄りの開発者が参加する案件では会話が通じやすいという実務上の利点もあります。
TechTargetのIoT Basics: A Guide for BeginnersA Guide for Beginnersでも、IoTを理解する入口としてWeb系の考え方が有効だと分かります)。

一方で、IoTの台数が増えたときは落とし穴もあります。
HTTP/HTTPSは1回ごとの要求と応答を返すモデルなので、双方向の常時接続や多受け手への同報を実現するにはアプリ側で工夫が必要になります。
セキュリティ面では、HTTPSでTLSを使うのが基本です。
HTTPS化すると証明書管理やトークン運用でつまずく事例が多いので、事前に証明書の発行・更新フローやエラー時の切り分けルールを決めておくと安心です。
セキュリティ面ではHTTPSとして TLS を使うのが基本です。
ここで初心者がつまずきやすいのは、「HTTPは分かるが、HTTPS化した瞬間に証明書まわりで止まる」という点です。
通信そのものより、トークン管理、証明書の更新、エラー時の切り分けに時間を取られます。
つまりHTTP/HTTPSは、最初の成功体験を作るには向いていても、双方向制御や大量デバイス管理まで一気に担わせると構成が重くなります。

CoAPを選ぶ場面と前提条件

CoAPは、軽量なREST風プロトコルとして設計されていて、考え方はHTTPに近い一方、より小さな負荷でやり取りできるように作られています。
ベースはUDPで、制約の強いデバイスや、通信オーバーヘッドを抑えたい環境で候補になります。
API的な発想を保ったまま軽くしたい、という文脈では筋のよい選択です。

IoTでCoAPが向くのは、電力や帯域に厳しい条件が先にあるときです。
小さいメッセージを定期的に送りたい、IP通信はしたいがHTTPの重さは避けたい、という場面ではCoAPの設計思想が生きます。
HiveMQのMQTT vs CoAP for IoTHiveMQのMQTT vs CoAP for IoTでも、両者の違いとしてMQTTがブローカ中心なのに対し、CoAPは軽量REST風として整理されています。
Web APIに似た構造を保てるので、概念だけ見ると理解しやすそうに見えますが、実際の導入ではネットワーク前提が少し変わります)。

その前提条件として押さえたいのが、クラウド直収のしやすさです。
MQTTやHTTPSは主要クラウドで受け口が整っていることが多い一方、CoAPはそのままクラウドへ直接入れるより、ゲートウェイで受けてMQTTやHTTPSへ変換する構成が現実的です。
つまり、デバイス側は軽くできても、システム全体ではゲートウェイの役割が増えます。
ここを見落とすと、「プロトコルは軽いのに全体は複雑」という状況になりがちです。

セキュリティはDTLSで保護するのが基本です。
MQTTやHTTPSのTLSとは似ているようで、実装やデバッグの感覚は少し違います。
初心者向けの教材やサンプルはMQTTやHTTPSのほうが豊富なので、学習コストまで含めるとCoAPは一段上の選択になります。
設計の中心が「まずつなぐ」ではなく、「通信量とオーバーヘッドを切り詰める」にあるなら、そこで初めて存在感が出てきます。

比較表

通信方式は、文法の違いだけでなく、どこで管理し、どう拡張し、何を学ぶことになるかまで変えます。
選定の起点としては、Pub/Subが必要か、Web APIで十分か、ゲートウェイ前提を許容できるか の3点で見ると整理しやすくなります。

項目MQTTHTTP/HTTPSCoAP
通信モデルPublish/SubscribeRequest/ResponseREST風 Request/Response
代表的な基盤BrokerWeb/APIUDPベース軽量通信
セキュリティTLSTLSDTLS
クラウド親和性高い。主要IoTクラウドの受け口が豊富高い。Web APIと直接つなぎやすいゲートウェイ経由が多い
初心者の理解しやすさ中。トピックとブローカの理解が要る高。Webの知識をそのまま使える低〜中。UDPと周辺前提の理解が要る
向く場面IoTクラウド連携、双方向制御、台数増加を見込む構成定期POST、Webhook連携、まず1台を動かす試作制約の強いデバイス、低オーバーヘッド重視、ゲートウェイ併用構成

この表を実務感覚に置き換えると、まず送って見える化したい段階ではHTTPS、双方向制御や台数増加を見据えるならMQTT、デバイス側の制約が先に立つならCoAPという選び方が有効です。

関連記事MQTT入門|HTTPとの違い・QoS・ブローカーまで初心者向けにMQTTの全体像を整理。Pub/Subとブローカー、トピック設計、QoS 0/1/2、Retain/Last Will、HTTPとの違い(比較表あり)、MQTT 3.1.1と5.0の差分、MosquittoとMQTTXでの最小検証、ESP32のTLS接続までを一気に理解できます。

クラウドに届いた後、データはどこへ行くのか

IoTプラットフォームの役割

デバイスからクラウドへ届いたデータは、そこで終点になるわけではありません。
ここで登場するのがAWS IoT CoreやAzure IoT HubのようなIoTプラットフォームです。
役目は単なる受信箱ではなく、デバイス認証、接続管理、メッセージの受け取り、宛先ごとの振り分けまでをまとめて担うことにあります。
前のセクションで見たMQTTのPub/Subは、ここで初めて運用の形になります。

初心者の試作では、クラウドに値が1回届くと達成感があります。
ただ、実運用の入口はその先です。
温湿度の値を受け取ったあと、保存用のデータベースへ送るのか、異常値だけ通知へ回すのか、制御系の処理へ流すのかを分けないと、あとから配線が絡まるようにシステム全体も絡みます。
筆者の経験でも、この段階で「送れた」だけで設計を止めると、可視化や通知を足した瞬間に作り直しになりがちです。

主要クラウドの入り口としては、AWS IoT CoreとAzure IoT Hubが定番です。
Google CloudはIoT Core終了後も、学習用のパイプラインはPub/Sub中心で組めます。
つまり、サービス名は変わっても、受信したデータを後段へ流すという考え方は同じです。
『How to Design an IoT Data Pipeline from Device to Cloud』でも、デバイスからクラウド、保存、可視化までを一連の流れとして捉えています。
これにより、受け取りから保存・可視化までの設計を一貫して考えることが重要だと分かります。
IoTは送って終わりではなく、受け取ったあとに何をつなぐかで価値が決まります。

How to Design an IoT Data Pipeline from Device to Cloudhubble.com

サーバーレスでの前処理とルーティング

受信したデータは、そのまま保存するとは限りません。
たとえば温度と湿度のJSONを受けたら、不要な項目を落としたり、タイムスタンプを整えたり、しきい値判定を先に済ませたりしたくなります。
ここで使われるのがAWS LambdaやAzure Functionsのようなサーバーレス関数です。
IoTプラットフォームのルール機能から関数を呼び出し、前処理とルーティングを挟むのが標準的な形です。

この構成にしておくと、保存先を増やすときも柔軟です。
1本の受信データを時系列DBへ入れつつ、元の生データをオブジェクトストレージへ残す、といった分岐を後から足せます。
試作段階では、まず1経路だけ通せば十分ですが、後でダッシュボード用と分析用で欲しい粒度が分かれることは珍しくありません。
最初からサーバーレス関数を1枚挟んでおくと、デバイス側のファームウェアを何度も直さずに済みます。

ここで初心者が意識しておくと楽になるのが、クラウドに送るデータを少しだけ整えておくことです。
たとえばセンサー名、計測値、単位、時刻のように項目を揃えるだけでも、その後の保存先やグラフ化が整います。
筆者はワークショップでも、試作の最初から無料枠に収まる送信頻度とサイズにしておくことをよく勧めています。
費用の心配が薄いと、送信間隔を試す、グラフを作り直す、通知条件を変えるといった検証をためらわず回せるからです。

NOTE

受信直後に前処理を入れると、「デバイスの仕事」と「クラウドの仕事」を分けられます。
電池や通信量が気になる側では最小限だけ送り、整形や振り分けはクラウド側へ寄せると、後の変更が軽くなります。
[!NOTE]

時系列保存

センサーデータの保存先としてまず相性がいいのは、時刻を軸に扱う時系列データベースです。
『InfluxDB』やAmazon Timestreamはその代表で、温度や湿度のように「何時にどんな値だったか」を積み重ねる用途に合っています。
『InfluxDB』は measurement、tag、field、timestamp という形でデータを持てるので、部屋名やデバイスIDをtag、温度や湿度をfieldとして分ける構成が取りやすくなります。

時系列DBが向いている理由は、単に保存できるからではありません。
昨日との比較、1時間平均、急な変化の検出といった問いにそのまま答えやすいからです。
IoTのデータ量は、内閣府資料でも2025年から今後10年間で10倍以上に増える見通しが示されています。
こうなると、CSVを積み上げるだけでは追えません。
保存の段階で「時間で見る前提」の器を選ぶ意味が出てきます。

一方で、元データをオブジェクトストレージへ残しておく考え方もあります。
時系列DBには可視化や集計向きの整ったデータを入れ、生ログは別に保管するという分担です。
実際の構成では、IoTプラットフォームからルールで2系統に分け、片方をAmazon Timestream、もう片方をオブジェクトストレージへ流す形がよく使われます。
こうしておくと、ダッシュボード向けの高速な参照と、後からの再解析を両立できます。

InfluxDB Cloud Pricinginfluxdata.com

ダッシュボードとアラート

保存しただけでは、まだ人が活用できる形にはなっていません。
そこで次に来るのが『Grafana』やBIツールによる可視化です。
『Grafana』は『InfluxDB』Amazon Timestreamなど複数のデータソースにつなげられるので、温湿度の折れ線グラフ、部屋ごとの比較、直近24時間の最大値といった画面をまとめて作れます。
ここまでつながると、数値の列だったデータが「部屋が暑くなり始める時刻」や「換気後に湿度が下がる速さ」として読めるようになります。

さらに実務では、見える化の次にアラートが入ります。
たとえば温度がしきい値を超えたら通知する、通信が途切れたら異常として扱う、一定時間データが来なければ装置停止の疑いとして扱う、といった使い方です。
IoTの価値はグラフを眺めることだけではなく、変化が起きた瞬間に反応できることにあります。
『Grafana』には組み込みのアラート機能があり、可視化と通知を同じ文脈で扱えます。

ここで1つ見落としがちなのが、アラートの先に制御が続くことです。
通知だけで終えるのか、換気扇を動かすのか、別の装置へ指示を返すのかで設計は変わります。
IoTプラットフォーム、サーバーレス関数、時系列保存、ダッシュボード、アラートという並びは、単なる受信後の流れではなく、監視から制御へ伸びる土台でもあります。

無料枠と小規模費用の目安

クラウド費用は、最初に数字が見えるだけで心理的な壁がぐっと下がります。
AWS IoT Core Pricingでは、米国東部リージョンの例として24時間接続を1年維持した場合の接続コストが1台あたり約0.042ドルと示されています。
また、1台が30日間、毎時10件、8KBのメッセージを送る条件では、メッセージ課金の例が0.00864ドルです。
試作機を1台つないで温湿度を定期送信する程度なら、受信の入り口だけで費用が膨らむ構図ではありません。

無料枠も試作には効きます。
AWS IoT Coreには初年度12か月、月500,000メッセージの無料枠例があり、Azure IoT Hubにも1日8,000メッセージの無料枠例があります。
試作段階で送信頻度を抑え、1メッセージのサイズを小さくしておくと、この範囲で十分に回る場面が多いです。
筆者も最初の検証では、まず無料枠に収まる設計に寄せます。
予算承認より前に手を動かせるので、ログの形を整える、しきい値の置き方を試す、ダッシュボードの項目を入れ替えるといった試行が止まりません。

接続維持の扱いも知っておくと安心です。
AWS IoT Core Pricingでは、リージョン例としてKeep-Aliveを20分から30秒の範囲で送っても追加コストなしとされています。
つまり、MQTTの常時接続を意識しても、即座に課金が跳ねる話ではありません。
こうした数字を把握しておくと、「クラウドは何となく高そう」という曖昧な不安が消え、送信後の保存や可視化まで含めた設計を冷静に組めます。

最初の試作で失敗しにくい最小構成

推奨パーツと接続

最初の試作は、部品点数を増やさずに「値を取る」「ネットへ出す」「保存して見る」を一通りつなぐ構成が向いています。
筆者なら、まずESP32に温湿度センサーの『SHT31』かDHT22を1個つなぎ、家庭やオフィスのWi‑Fiへ参加させ、クラウドへ送る形から始めます。
可視化は『Grafana』、保存先は『InfluxDB』やAmazon Timestreamのような時系列DBを置くと、1台目の挙動をそのままグラフで追えます。

センサーは、配線の少なさを優先するならI2Cの『SHT31』が扱いやすい選択です。
『SHT31』は温度と相対湿度を同じチップで計測でき、I2Cの2線式でつなげます。
より手に入りやすい構成を優先するならDHT22でも始められます。
こちらは単線シリアルで、温度と湿度を読めて、最短サンプリング間隔は2秒以上です。
教室でも、まずはセンサー1個・ボード1枚・電源1系統だけに絞ったほうが、配線ミスとコードの切り分けがはるかに進みます。

配線の考え方も最小限で十分です。
ESP32と『SHT31』なら、電源、GND、I2Cの信号線という形でまとめられます。
DHT22なら、電源、GND、データ線の構成です。
ここでポイントになるのは、最初からケース収納や電池駆動まで同時に進めないことです。
筆者の教室では、まずシリアルモニタで温湿度の値が安定して読めるところまで進め、それからローカルのMQTTブローカへ送り、そこで値が見えたらクラウドへ上げる順番にしています。
この段階分けにしておくと、トラブルが出たときに「配線」「センサー読み取り」「ネットワーク」「クラウド設定」のどこで止まっているかを短時間で絞れます。

設計メモは、最初の時点で5項目だけ紙に書いておくと迷いません。
測りたい値は温度と湿度、送信方式はまずWi‑Fi、データ項目は device_id timestamp value、送信頻度は60秒に1回、保存先と可視化先は時系列DBと『Grafana』、この5つです。
ここまで決めておけば、コード、トピック名、DBスキーマ、ダッシュボード項目がばらばらになりません。

実務では、1台だけで完成形を考え込むより、HubbleのHow to Design an IoT Data Pipeline from Device to CloudHubbleのHow to Design an IoT Data Pipeline from Device to Cloudで紹介されている発想に近いです。
1ゲートウェイ・5センサーからエンドツーエンドで流してみるほうが設計が固まります。
ここでいうゲートウェイは、将来BLEや別方式を足すための受け皿という意味でも使えますが、最初の試作では「同じ場所に置いた5台のセンサーが、同じ保存先と同じダッシュボードへ揃って入るか」を見るための単位と考えると整理しやすくなります。
1台だと見えない命名規則の乱れや時刻のずれが、5台まで増やすと表面化するからです)。

NOTE

最小構成でも、device_id を最初から入れておくと後で複数台へ広げたときに助かります。
1号機の段階で温度だけ送っていても、保存先では「どのボードの、いつの、何の値か」が分かる形にしておくと、2台目以降の作業が配線の追加だけで済みます。

送信方式(MQTT/HTTPS)の最小実装メモ

送信方式は、MQTTかHTTPSのどちらかに絞れば十分です。
初回の実装で双方向や購読型の構成まで視野に入れるならMQTT、まずはWeb APIへPOSTする感覚で始めたいならHTTPSが素直です。
前のセクションで触れた通り、初心者の1台目ではWi‑Fi直結が経路を短くできます。
ここで無理にBLEやセルラーまで広げると、確認点が一気に増えます。

MQTTを選ぶなら、トピック階層は最初から site/device/sensor の3段にしておくと後で困りません。
たとえば lab/esp32-01/temperaturelab/esp32-01/humidity のような形です。
1台目だと平坦な名前でも動きますが、5台に増えた瞬間に読み解けなくなります。
QoSはまず1を選びます。
少なくとも1回届ける前提にしておくと、試作段階で「送ったつもり」の取りこぼしを減らせます。
メッセージ本文はJSONで、device_id timestamp value を入れるだけで足ります。
温度と湿度を1つのJSONにまとめても構いませんが、ダッシュボードと保存の設計を単純に保つなら、最初はセンサー種別ごとに分けるほうが追いやすい場面が多いです。

HTTPSを選ぶなら、実装の芯はPOSTと再送制御です。
ここで外せないのがリトライとバックオフで、送信失敗時に即座に連打せず、待ち時間を空けて再試行する形にします。
クラウド側の一時エラーやWi‑Fi再接続の直後は失敗がまとまって出るので、この処理がないとログが荒れます。
HTTPSはブラウザやWeb APIの感覚で理解しやすい反面、送るたびに要求と応答を組み立てるので、最初から「失敗したら何回まで送り直すか」を決めておくと実装がぶれません。

送信頻度の初期値は60秒に1回で十分です。
温湿度の変化は秒単位で追わなくても傾向が見えるので、まずはこの間隔でダッシュボードに線が描ける状態を作るほうが先です。
費用感もここで把握できます。
AWS IoT Core Pricing(https://aws.amazon.com/iot-core/pricing/にあるメッセージ課金の例では、1台が毎時10件、8KB、30日送信して0.00864ドルです。
60秒に1回だと毎時60件になるので、この例の6倍として見積もれば、1台あたり約0.05184ドルです。
5センサーでも月あたり約0.2592ドルで、受信入口の検証コストは小さい範囲に収まります。
こういう数字が見えると、送信頻度をどう刻むかを感覚ではなく設計で決められます)。

コードの流れも複雑にしなくて構いません。
センサーを読む、時刻を付ける、JSON化する、送る、成否をログに出す、この順番だけです。
筆者はこの「送ったあとにシリアルへ必ず1行出す」を外しません。
クラウドに届かなかったときでも、デバイス側で何を送ろうとしたかが残っていると、切り分けの速度が一段上がります。

クラウド側の最小設定

クラウド側は、無料枠のある取り込みサービス、保存先、ダッシュボードの3点だけに絞ると全体が見えやすくなります。
たとえば取り込みはAWS IoT CoreやAzure IoT Hub、保存は『InfluxDB Cloud』またはAmazon Timestream、可視化は『Grafana』という組み合わせです。
ここで必要なのは、最初から理想構成を作ることではなく、温湿度が1本の折れ線として見えるところまで最短で到達することです。

設定順序も固定すると迷いません。
最初に受信口を作り、次に保存先へ1種類のデータだけ流し、そこで device_id と時刻付きで保存できるかを確認し、その後に『Grafana』で折れ線グラフを1枚作ります。
温度と湿度の両方、5台分の比較、アラート通知まで一度に広げると、どこが原因で表示されないのか見えなくなります。
試作の初日なら、温度だけが1本表示されれば十分です。
そこから湿度を足し、次に2台目、3台目へと増やすほうが、設定ミスの発見が早くなります。

保存スキーマも最小で構いません。
時系列DBなら、measurementに environment、tagに device_idsensor、fieldに value、timestampに送信時刻を置けば、温度と湿度を同じ器に入れても整理できます。
グラフ側では sensor=temperaturesensor=humidity を分けて描画するだけです。
この形にしておくと、1ゲートウェイ・5センサーに増えたときも、比較軸を device_id に増やすだけで済みます。

無料枠の使い方も、試作の規模感をつかむ助けになります。
AWS IoT Coreには初年度12か月、月500,000メッセージの無料枠例があり、Azure IoT Hubには1日8,000メッセージの無料枠例があります。
60秒に1回送る構成なら、1台で1日1,440件です。
5センサーで7,200件になり、Azure IoT Hubの1日8,000メッセージの枠にも収まります。
こういう計算を最初に置いておくと、「何台までなら設定を変えずに試せるか」が見えてきます。

クラウド選定で迷ったら、初心者向けの全体比較としてIoT AnalyticsのThe IoT cloud: Microsoft Azure vs. AWS vs. Google Cloud(https://iot-analytics.com/iot-cloud/のような整理を頭に入れておきます。
実際の試作では1サービスに決め打ちしたほうが前へ進めます。
小さく組んだ経路が1本通れば、証明書、トピック設計、保存形式、可視化の関係がひと続きで理解できます。
その理解ができてから、認証の強化やアラート、複数拠点、BLEゲートウェイ化へ進むほうが、設計の軸がぶれません)。

よくある詰まりどころと設計の注意点

ハード/電源の落とし穴チェックリスト

最初の試作で止まりやすいのは、コードより先に配線と電源です。
ワークショップでも、センサー値が読めない原因を追っていくと、I2Cのアドレス競合より前に、GND共通の抜けや電源の見積もり不足が見つかることがよくあります。
ESP32と『SHT31』のような単純な組み合わせでも、信号線だけつないでGNDを共通にしていないと、見かけ上は電源が入っていても通信が成立しません。
ここが。
電圧が合っているかと同じくらい、GNDを1本の基準としてそろえているかが効きます。

電源まわりでは、平均電流ではなくピーク時の電流を見落とすと詰まります。
ESP32はWi‑Fi通信中に数十〜100mA以上を消費することがあり、ケーブルや電源の瞬間電圧降下で再起動が発生します。
Raspberry Pi Zero 2 W については、周辺機器(USB機器・microSDアクセス・HAT等)を含めた目安で2.5Aとされるケースが多く、実際に必要な容量は接続機器と負荷で変わります(公式スペックの確認を推奨、参照時点: 2026-03)。

配線の引き回しも、初心者ほど後回しにしがちです。
ジャンパ線を長く引き回し、電源線と信号線を束ねたままブレッドボード上を往復させると、ノイズの入口を自分で作る形になります。
温湿度センサーの値が時々跳ねる、I2Cがまれに固まる、Wi‑Fi送信の瞬間だけ不安定になる、といった症状はこの段階で出ます。
筆者は試作時、まず「電源線を短く」「GNDを先に決める」「無線送信系の近くをセンサー線で横切らない」の3点から整えます。
見た目のきれいさというより、原因の切り分けを1段ずつ進めるためです。

計測側では、サンプリング周期の決め方でも失敗が出ます。
温湿度を秒単位で送り続けても、室内監視では意味のある変化が少なく、通信量とクラウドの保存量だけが増えます。
逆に周期を粗くしすぎると、換気や空調の立ち上がりの変化を拾えません。
センサーにも下限があります。
DHT22は最短サンプリング間隔として2秒以上が示されているので、それより短く読みに行く設計は成立しません。
周期は「変化の速さ」と「センサーの更新可能間隔」の両方で決める、という順番で考えると迷いません。

時刻の扱いも、後から効いてきます。
デバイスごとにローカル時刻のまま送ると、クラウドでは並んで見えても、複数台比較や再送時の整列で崩れます。
タイムスタンプはUTCで統一し、デバイス側でもサーバー側でも意味がぶれない形にしておくと、ダッシュボードだけでなく再送時の重複判定にも使えます。
現場では「Wi‑Fiはつながるのにデータが来ない」が頻発しますが、この手のトラブルは通信ライブラリより前に、DNS解決、時刻同期(NTP)、ファイアウォールの3点を最初に疑うと早く進みます。
TLSを使う構成では、時刻がずれるだけで証明書検証に失敗し、見た目は“つながっているのに送れない”状態になります。

TIP

電源が怪しいときは、センサーを外して通信だけ、通信を止めてセンサー読み出しだけ、という順で負荷を分けると原因が見えます。
全部つないだ状態で追いかけると、配線不良と電源不足が混ざって見えます。

通信途絶・再送・バッファ設計

通信設計で最初に決めるべきなのは、「1回送れなかったデータをどう扱うか」です。
ここを曖昧にしたまま試作を進めると、成功時の画面は作れても、Wi‑Fi切断やクラウド側の瞬断で挙動が崩れます。
MQTTならQoSやACKを意識して、少なくとも「受け取られたことをどう確認するか」を決めておく必要があります。
HTTPSでも同じで、レスポンスコードを見て送信完了とみなす条件を固定しないと、端末側では送ったつもり、クラウド側では未保存という食い違いが起きます。

再送設計では、回数より順序が大切です。
送信失敗のたびに即再送すると、アクセスポイント復帰直後やクラウド復旧直後に一斉送信となり、失敗が連鎖します。
そこで必要になるのがバックオフです。
1秒、2秒、4秒というように待ち時間を伸ばし、一定回数を超えたら接続確認へ戻す形にしておくと、ログが読みやすくなり、デバイス側の無駄な送信も減ります。
AWS IoT Core Pricingではkeep-aliveを20分〜30秒の範囲で送っても追加コストなしとされているので、接続維持のためのKeep‑Aliveは節約対象ではなく、接続切れの検知速度と回線の安定性で決めるほうが筋が通ります。

切断時のバッファも、初心者が後回しにしやすい部分です。
通信が落ちた瞬間にデータを捨てるのか、リングバッファで一定件数だけ保持するのか、ファイルへスプールして回線復帰後に順次送るのかで、装置の性格が変わります。
温湿度のような連続監視なら、リングバッファで直近分を保持し、古いものから上書きする方針が扱いやすい場面が多いです。
一方で、検針や完了通知のように「抜け」が許されないイベントは、スプールしてACK確認後に削除する設計が向きます。
転送の実務では、完了通知を受けて初めて消すのか、再送時は同じIDで上書き扱いにするのか、重複を別レコードとして残すのかまで決めておく必要があります。
この方針がないと、障害時に件数だけ合って中身が二重、という状態が起きます。

データの単位にも注意が要ります。
1件ごとのメッセージに device_id、センサー種別、UTCタイムスタンプ、値を入れておけば、再送時に同一データかどうかを判定できます。
逆に、現在値だけを送り続ける形だと、切断中に失われた期間が見えません。
筆者は試作段階でも、最低限のメッセージIDか、時刻とデバイスIDの組み合わせで一意になる形を残します。
あとでクラウド側を『InfluxDB』やAmazon Timestreamに変えても、この単位がそろっていれば整列の考え方はそのまま持ち込めます。

クラウド費用は、件数とサイズの掛け算で増えていきます。
AWS IoT Coreでは24時間接続を1年続けても接続コスト例は約0.042ドル、1台が毎時10件・8KB・30日送信して0.00864ドルという例があります。
接続そのものより、何件送り、1件を何KBにするかのほうが支配的です。
無料枠も設計の判断材料になります。
初年度12か月で月500,000メッセージの無料枠例があるAWS IoT Coreや、1日8,000メッセージの無料枠例があるAzure IoT Hubなら、試作段階では余裕が見えますが、サンプリング周期を短くし、JSONに不要な項目を増やし、再送で重複を抱えると一気に消費します。
件数上限、1件の最大サイズ、1日あたりの見込みを先に置き、クラウド側でコストアラームも入れておくと、試作が成功した後に請求で驚く流れを避けられます。

セキュリティと国内要件

IoTのセキュリティは、あとから足す部品ではなく、最初の通信設計の一部として入れておくべきものです。
通信路はMQTTでもHTTPSでもTLS、制約の強い構成ではDTLSを前提にし、平文のまま社内LANに閉じれば十分という考え方は持ち込まないほうが安全です。
試作であっても、APIキーをコードへ直書きし、シリアルログへそのまま出す構成は事故の入口になります。

認証では、共有パスワードよりクライアント証明書のほうが装置単位の管理に向いています。
AWSやAzureのデバイスSDKは、証明書ベースの接続やローテーションの実装を支える部品がそろっているので、最初からその流れに乗せると、試作から量産寄りの構成へ移るときに作り直しが減ります。
鍵の保護も同じで、ファームウェアのソースに秘密鍵を埋め込んだまま配布すると、デバイスを1台解析されただけで全台に影響が広がります。
最低でも、鍵ファイルの格納場所、更新手順、失効時の扱いを切り分けた設計にしておきたいところです。

国内要件では、個人情報を持ち込まない設計が基本になります。
温湿度の監視でも、設置場所名、居住者名、部屋番号、在席推定と結びつく情報まで一緒に送ると、ただの環境データではなくなります。
最初から device_id を匿名な識別子にして、個人と直接ひも付く項目をクラウドへ上げない構成にしておくと、扱いが整理されます。
どうしても属性情報が必要な場合でも、データ本体とは別管理にし、ダッシュボードで必要最小限だけ参照する形のほうが安全です。

サービス選定では、国内の制度を判断材料に入れる視点もあります。
官公庁向けクラウドの選定で参照されるISMAPのような国内セキュリティ制度は、採用可否をそのまま決めるチェック欄ではありませんが、日本国内での説明責任を意識する案件では、どの水準の管理が求められるかを考える出発点になります。
個人情報を避ける、ログに秘密情報を残さない、証明書を更新できる、通信を暗号化する、といった基礎がそろっていれば、後から要件が増えても設計全体を壊さずに済みます。

実務では、セキュリティと運用は分けて考えないほうがうまくいきます。
証明書を入れたのに時刻同期がなくて接続できない、再送バッファを作ったのに暗号化失敗で全部たまる、といった詰まり方は珍しくありません。
だからこそ、通信、時刻、認証、再送、保存の順に一本の流れとして見ておくと、初心者でもトラブルの位置を特定しやすくなります。
ここまで設計に入っていれば、単に「クラウドへ送れた」で終わらず、止まったときにも挙動を説明できる構成になります。

{{product:8}}

どの構成を選ぶべきか

設置環境(ネット/電源)の分岐

構成選びは、機能の話から入るより、まず設置場所の条件から切り分けると迷いません。
筆者はプロジェクトの最初に、この分岐をA4一枚のフロー図にして関係者と合意してから詳細設計へ入ることが多いです。
このやり方にしてから、あとで「その場所はWi‑Fiが届かなかった」「電源前提で考えていた」といった食い違いが減りました。
ここがポイントで、通信方式の優劣より、現場にあるものとないものを先に固定すると、候補が自然に絞れます。

最初の分かれ道は、その場所にWi‑Fiがあるかです。
室内で既存の無線LANが使えるなら、クラウドまで一直線につながるWi‑Fi直結が第一候補になります。
ESP32のようにWi‑Fiを載せたボードをそのまま使えるので、試作1台目では構成の見通しが立てやすく、配線と送信確認まで短い手数で到達できます。

Wi‑Fiが使えない場所では、次に電源の有無を見ます。
電源も取れないなら、電池駆動を前提にしたBLE+ゲートウェイが軸です。
近くにセンサーを複数置く場面では、この形が素直です。
HubbleのガイドではBLEの到達距離の目安として約100mが挙げられていて、同じ部屋や隣接エリアのセンサーを集める発想と相性が合います。
ゲートウェイ役にはRaspberry Pi Zero 2 Wのような小型機を置くと、BLEで受けてWi‑Fiへ流す流れをまとめやすくなります。
Wi‑Fiが使えず、設置場所が遠隔地や屋外で、電源は確保できるという条件なら、セルラー直結の優先度が上がります。
LTE‑Mは移動体や遠隔監視に向く規格で、上り下りとも数百kbps級のやり取りが可能です。
逆にNB‑IoTは180kHzの狭帯域で、固定設置の小さなデータを長く送り続ける用途に寄ります。
温湿度の定期送信なら帯域は多くを要しないので、広域に置く装置ではこの系統が候補に入ります。

運用要件

設置条件で大枠を決めたら、その次は運用で何を求めるかを重ねます。
ここで見落とされがちなのが、通信の「届けばよい」と「運用まで含めて回る」は別物だという点です。
たとえば台数が増える予定がある、あるいは電池交換の頻度を下げたいなら、1台ごとのWi‑Fi直結よりもBLE+ゲートウェイのほうが筋が通る場面があります。
センサー側は短距離・低消費側に寄せ、ネット接続や証明書管理はゲートウェイ側へ寄せたほうが、保守の重心を集められるからです。

通信プロトコルも、この段階で選びます。
双方向制御やOTA更新まで視野に入るなら、MQTTを中心に置いた構成がまとまりやすいです。
Publish/Subscribe型なので、データを上げるだけでなく、設定変更や再起動指示のような下りの流れも整理しやすく、クラウドのIoT基盤とも噛み合います。
AWS IoT Coreの料金例では、24時間接続を1年続けても1デバイスあたり約0.042ドル、毎時10件・8KB・30日送信でも0.00864ドルという水準なので、PoCでは接続そのものより件数設計のほうが効いてきます。

一方で、Webサービスに単純な計測値を投げるだけなら、HTTPSでも十分に成立します。
REST APIと相性がよく、既存のWebシステムへつなぐだけなら理解の段差が少ないからです。
IoT専用基盤の機能を使い切らない案件で、まず値を受けるAPIを1本用意して検証する流れは現実的です。
逆に、後から双方向制御やデバイス管理を足す前提があるなら、最初からMQTTで整えたほうが構成変更の影響を抑えられます。

WARNING

台数、給電方法、双方向制御の有無を最初に3項目だけ並べると、Wi‑Fi直結で始める案件なのか、BLE+ゲートウェイへ寄せる案件なのかが見えます。
筆者の現場では、この3項目が曖昧なまま進んだ案件ほど、途中で通信方式を入れ替えることになりました。

費用・拡張の分岐

費用の見方では、月額そのものより、まず無料枠に収まる設計かどうかで段階を切ると判断しやすくなります。
QServicesITがまとめている例では、AWS IoT Coreには初年度12か月で月500,000メッセージ、Azure IoT Hubには1日8,000メッセージの無料枠があります。
数台規模の試作で送信間隔を長めに置くなら、この範囲で収まることも珍しくありません。
そこでまずPoCを回し、必要な保持期間、送信頻度、再送回数を実データでつかんでから本運用の見積もりへ進む流れが堅実です。

拡張の観点では、センサーデータ量が今後10年で10倍以上に増える見通しを内閣府の資料も示しています。
今は温湿度の数値だけでも、あとから電力、開閉、在席、画像以外の周辺ログが足されると、件数も保存先も膨らみます。
だから試作段階でも、クラウド入口、保存先、可視化をゆるく分けておくと、途中で差し替えが利きます。
たとえば取り込みをAWS IoT Coreに置き、保存を『InfluxDB』やAmazon Timestreamに寄せる構成なら、分析やダッシュボードの育て方に合わせて広げやすくなります。

この費用と拡張の分岐では、最初から完成形を作るより、無料枠に収まる小さな構成で流れを確定し、そのあとにスケール設計へ移る順番が失敗を減らします。
ここで効くのは高価な部品より、分岐条件を紙1枚に落として合意する手間です。
Wi‑Fiがある場所はWi‑Fi直結、電池優先で近距離に散らすならBLE+ゲートウェイ、遠隔地で電源があるならセルラー直結という判断を先に固定しておくと、クラウド選定や可視化基盤の議論もぶれにくくなります。

まとめと次のアクション

本記事の要点サマリー

IoTは、センサー、処理、通信、クラウド入口、保存・可視化という5層で分けて考えると、何を決めれば前に進むのかが見えます。
構成はWi‑Fi直結BLE+ゲートウェイセルラー直結の3つを軸に比べると迷いが減ります。

筆者の経験では、最初の1週間で「1台を安定してクラウド表示」まで持っていけると、その後の学習の進み方が変わります。
配線、送信、保存、グラフ化まで一度つながると、次に増やすべきものが部品なのか、通信なのか、クラウド設定なのかを切り分けて考えられるからです。

今日からできるチェックリスト

最初の一歩は大きな構想ではなく、測る対象を1つに絞ることです。
温度でも湿度でもよいので、まず1項目だけ決めてください。
そのうえで通信方式はWi‑Fiから始めると、ゲートウェイや回線契約を後回しにしたまま、データの流れ全体を確認できます。
部品はESP32とセンサー1個の最小構成で十分です。

試作メモは、次の3項目だけ先に決めておくと手戻りが減ります。

  • 送るデータ項目: device_id, timestamp, value
  • 送信頻度: 何分ごとに送るかを決める
  • どこに保存し、何で見るか

たとえばメモは「ESP32+温湿度センサーで取得、Wi‑Fiで送信、ペイロードは {"device_id":"esp32-01","timestamp":"2026-03-18T10:00:00Z","value":23.4}、一定間隔で送る、無料枠のあるクラウドで受ける、グラフで確認する」という形で十分です。
AWS IoT Coreは初年度12か月で月500,000メッセージの無料枠例があり、Azure IoT Hubにも1日8,000メッセージの無料枠例があるので、小さなPoCなら費用感をつかみながら試せます。
可視化は『Grafana』、保存は『InfluxDB』やAmazon Timestreamまで視野に入れておくと、あとで広げるときに迷いません。

TIP

最初の試作では、回路図より先に「何を、どの形式で、どこへ送るか」を1枚に書いてください。ここが曖昧だと、配線はできてもクラウド側の設計が止まります。

発展の方向性

1台の試作が安定したら、次は役割分担を足していく段階です。
BLEセンサーを複数集めたいならRaspberry Pi Zero 2 Wを置いてゲートウェイ化する流れが自然ですし、屋外や遠隔設置へ広げるならLTE‑Mのようなセルラー系が候補に入ります。
可視化も、単純な折れ線グラフから、しきい値アラートや複数地点比較へ育てられます。

さらに進めると、IoTは監視だけでなく制御の世界に入ります。
クラウドから設定値を変える、機器を再起動する、しきい値に応じて下りを返す、といった使い方です。
ここまで来ると送って終わりではないという感覚が、単なる標語ではなく設計の中心に変わってきます。
まずは1台、1センサー、1画面表示までを形にして、その土台の上で次の機能を足していくのが、いちばん崩れにくい進め方です。

この記事をシェア

関連記事

電子工作入門

はんだ付けは、はんだを盛れば付く作業ではなく、ランドとリードの両方を3〜4秒だけ同時に温め、接合部にはんだを流してすっと離すところで仕上がりが決まります。温度の目安は鉛入りでは316〜343℃、鉛フリーでは343〜371℃で、長く当てるより短時間で終えるほうが失敗が減ります。

電子工作入門

初心者向けにMQTTの全体像を整理。Pub/Subとブローカー、トピック設計、QoS 0/1/2、Retain/Last Will、HTTPとの違い(比較表あり)、MQTT 3.1.1と5.0の差分、MosquittoとMQTTXでの最小検証、ESP32のTLS接続までを一気に理解できます。

電子工作入門

回路図、基板データ、Arduino のスケッチ、部品表、製造用のGerberや資料が増えてくると、電子工作は「作ること」より先に「どれが最新版か」を見失いがちです。

電子工作入門

『ESP32』をArduino IDE 2で今日から動かしたい初心者の方向けに、定番のESP32 DevKitC系ボードを前提に、ボード定義の追加からボードとポートの選択、『WiFiScan』の書き込み、シリアルモニタを115200bpsに合わせて結果を読むところまで、最短ルートで通します。