I2C・SPI・UARTの違い|電子工作の通信選び
I2C・SPI・UARTの違い|電子工作の通信選び
I2C、SPI、UARTは、マイコンにセンサーやディスプレイをつなぐときにまず候補に上がるシリアル通信方式である。どれも1ビットずつ順番に送る点は同じだが、I2CはSDAとSCLの2本で多数のデバイスをまとめ、SPIは高速転送を優先して、UARTは1対1の単純な配線で扱いやすさを取る。
I2C、SPI、UARTは、マイコンにセンサーやディスプレイをつなぐときにまず候補に上がるシリアル通信方式である。
どれも1ビットずつ順番に送る点は同じだが、I2CはSDAとSCLの2本で多数のデバイスをまとめ、SPIは高速転送を優先して、UARTは1対1の単純な配線で扱いやすさを取る。
ワークショップで受講者の回路を見ていると、動かない原因は方式そのものより、プルアップ抵抗、アドレス、電圧レベルといった前提の見落としであることが多い。
この記事では、配線の本数、速度、接続台数という3軸から3方式の違いを整理し、手元の部品と残りピン数から迷わず選べるようにします。
結論:用途別の早見表
I2C・SPI・UARTは、どれも1ビットずつ順番に送るシリアル通信ですが、得意分野ははっきり分かれています。
選び方を迷わせる最大の原因は、信号線の本数、速度、接続台数という3軸を同時に見る視点が抜けやすいことです。
ここを先に押さえると、配線の無駄や基板の作り直しをかなり減らせます。
こんなときはこれを選ぶ早見表
複数の低速センサーをまとめてつなぐならI2C、SDカードやフルカラーTFTへ高速に書き込みたいならSPI、GPSやBluetoothモジュール、PCとのシリアル通信ならUARTが起点になります。
さらに、ピンを節約したいならI2Cを最初に疑うのが自然です。
用途が見えた時点で方式を先に決めると、配線設計がぶれません。
3方式の違いが分かる比較表
| 方式名 | 信号線の本数 | 代表的な速度 | 接続台数 | 同期/非同期 | 全二重/半二重 | 向いている人 |
|---|---|---|---|---|---|---|
| UART | 2本(TX/RX) | 9600bpsで毎秒約960バイト、115200bpsで毎秒約11,520バイト | 1対1 | 非同期 | 全二重 | PCやモジュールと単純に1対1でつなぎたい人 |
| I2C | 2本(SDA/SCL) | 100kbps、400kbps、3.4Mbps | 最大127台 | 同期 | 半二重 | センサーを増やしながらピンを節約したい人 |
| SPI | 3本共有(SCK/MOSI/MISO)+ CS各1本 | 8MHzで理論毎秒約1,000,000バイト、実効でも毎秒500,000〜800,000バイト | CSごとに増える | 同期 | 全二重 | SDカードやTFTのように速さを優先したい人 |
選択の軸は、結局のところ信号線の本数、速度、接続台数の3つに集約されます。
消費電力や実装難易度も気にはなりますが、趣味の電子工作では配線本数と動作速度のほうが先に効いてきます。
3軸に絞って考えるだけで、判断はかなり単純になります。
迷ったらI2Cから試す理由
I2Cを先に選ぶと、趣味用途で多い温湿度センサーや気圧センサー、小型OLEDを2本のまま並列にぶら下げられます。
ワークショップで温湿度センサー・気圧センサー・OLEDの3点を同時に使う課題を出したとき、SPIで組んだ受講者はArduino UNOのピンが早々に枯渇して配線をやり直しましたが、I2Cで組んだ受講者は3台を2本のまま完走しました。
筆者が組み込み開発の現場にいた頃も、試作段階でI2Cを選んだ温度監視ボードはセンサー数を8台まで増やしても配線本数を変えずに済み、隣のチームがSPIで組んだ基板はCS線の引き回しでレイヤー数が増えました。
ℹ️ Note
ただし、フルカラーTFTの画面書き換えやSDカードからの連続読み出しのように、I2Cでは足りないことが最初から分かっている場面ではSPIを選ぶべきです。あとから方式を切り替えると、配線だけでなく基板設計ごとやり直しになります。まずI2Cで始めて、速度不足が実測で見えたらSPIへ移る流れが、手戻りの少ない進め方でしょう。
3方式を分ける3つの軸:信号線・速度・接続台数
I2C、SPI、UARTの差は、実は「どれが速いか」だけでは見えてきません。
信号線の設計、速度、そして同時に何台つなげるかという3つの軸が絡み合い、その代わりに得られるものも違います。
だからこそ、3方式は優劣ではなく用途ごとの最適化として見るほうが整理しやすいのです。
クロック線の有無が同期・非同期を分ける
I2CのSCLとSPIのSCKは、受信側に「今このタイミングで読め」と伝えるためのクロック線です。
送信タイミングを外部から合わせ込めるので、両者は同期式として扱えます。
これに対してUARTにはクロック線がなく、送受信側が事前に同じボーレートを約束して動く非同期式です。
この違いがそのまま、UARTだけ設定ミスで文字化けしやすい理由になります。
1バイトごとにスタートビットとストップビットで区切るため誤差は蓄積しにくいものの、最初の約束がずれると復元できません。
講座でこの話をすると、配線本数よりもタイミング設計が本質だと気づく受講者が多いです。
速度レンジは3桁の開きがある
速度も住み分けを決める大きな軸です。
UARTは115200bpsなら毎秒約11,520バイト、I2Cは標準モード100kbps、ファストモード400kbps、High-speedモード3.4Mbps、SPIは8MHzで理論毎秒約1,000,000バイトに達します。
数字を並べると、TFTの全画面書き換えにI2Cを使うと現実的な時間で終わらない場面があることがはっきりします。
筆者が講座で「SPIの方が速いならなぜ全部SPIにしないのか」と聞かれたとき、Arduino UNOのデジタルピン14本を書き出し、SPIデバイスを5台つないだ時点で8本が埋まる様子を数えて見せました。
速度だけで選べない理由が、そこで一気に腑に落ちるのです。
全二重か半二重かで同時通信の可否が変わる
同時に送れるかどうかも、実務では見逃せない差になります。
SPIはMOSIとMISOが分かれているため全二重で、送信しながら受信できます。
I2CはSDA1本を共用するので半二重になり、送信中に受信はできません。
UARTはTXとRXが独立しているため全二重動作が可能です。
センサーの読み出しのように、送る操作と読む操作が交互で足りる用途なら半二重でも困りません。
実際、産業用マイコンの開発現場では、温度センサーはI2C、外付けフラッシュメモリはSPI、デバッグログはUARTと、1枚の基板で3方式を同時に使い分けていました。
3方式が並立しているのは歴史的経緯ではなく、それぞれに現役の必然性があるからです。
この3軸は独立していません。
SPIが速いのはクロック線とデータ線を分離し、全二重にした代償としてピンを多く使うからです。
I2Cがピン効率に優れるのは2本を全デバイスで共用するからですが、その代わりに速度とアドレス管理を抱えます。
UARTが単純なのはクロック線を捨てたからで、代償は1対1制約と速度です。
つまり「どれが優れているか」ではなく、用途の中でどの軸を犠牲にできるかを決める話になります。
筆者の実感でも、基板に載せる部品の種類が増えるほど、この考え方がそのまま設計判断の軸になりました。
UART:2本の線で1対1をつなぐ非同期通信
UARTは、2本の信号線だけで機器同士を1対1でつなぐ非同期通信です。
TXとRXを交差させて接続し、送受信でボーレートを合わせて初めて正しく会話します。
配線が単純なぶん、GPSモジュールやBluetoothモジュール、PC接続のような用途では扱いやすく、開発中のログ出力にも向いています。
TXとRXを交差させる配線の仕組み
UARTでは、送信側のTXを受信側のRXへ、受信側のTXを送信側のRXへつなぎます。
TX同士やRX同士を直結しても信号の向きが噛み合わないため、通信は成立しません。
ワークショップでArduino UNOにGPSモジュールをUART接続させたときも、受講者の3割がここで止まりました。
口頭説明だけでは定着しにくく、実体配線図に矢印を書いて初めて全員が正しく配線できました。
クロック線を持たない代わりに、UARTはデータの前後にスタートビットとストップビットを付けます。
受信側はスタートビットを合図に「ここから1バイトが始まる」と判断し、ストップビットで区切りを確認します。
1バイトごとにタイミングを合わせ直せるので、多少の速度差があっても誤差が積み上がりにくい仕組みです。
非同期通信でも実用になる理由はここにあります。
長所と短所:シンプルさと引き換えの制約
UARTの強みは、配線が2本で済み、シリアルモニタで中身をそのまま目視できることです。
開発中は「何が流れているか」を追えるかどうかが効きます。
クロック線がないため配線長にも比較的寛容で、ブレッドボードの試作からケーブルを少し伸ばした接続まで扱いやすい。
ログ出力に重宝されるのは、この見通しの良さがあるからです。
ただし、UARTは1対1でしかつなげません。
マイコン1台に複数のUART機器をつなぐなら、その数だけポートが要ります。
Arduino UNOのようにハードウェアUARTが1系統しかないボードでは、PC接続と周辺機器が競合しやすく、実装の自由度が下がります。
ソフトウェアシリアルで増設する方法もありますが、速度と安定性を犠牲にする代わりに成立していると考えると分かりやすいでしょう。
ボーレートの一致も外せません。
9600bpsなら毎秒約960バイト、115200bpsなら毎秒約11,520バイトをやり取りできますが、送受信で設定がずれると文字化けします。
組み込み開発の現場で原因不明の文字化けを半日追いかけた末、マイコン側のクロック源が想定と違い、実効ボーレートが4%ほどずれていたことがありました。
UARTのボーレート誤差は約±3%まで許容、クロック誤差は1%未満が望ましいので、わずかなずれでも通信は破綻します。
ℹ️ Note
UARTは「動けば簡単」ではなく、「設定が合えば強い」方式です。配線とボーレートを最初に疑うだけで、デバッグ時間はかなり減らせます。
UARTが向いている場面
UARTが向いているのは、GPSモジュール、Bluetoothモジュール、PC接続、マイコン同士の1対1連携です。
どれも相手が1台で、速度は数十kbpsで足り、ケーブルがやや長くなっても扱いやすい場面です。
特に初学者の試作では、まずUARTでデータの流れを見て、後から別方式へ広げる進め方がおすすめです。
配線を確認しながら動作を追えば、通信の勘所がつかみやすくなります。
UARTは入門用としても実務用としても使い道が広いので、最初に覚えておくと助かります。
I2C:2本で複数デバイスをぶら下げるバス通信
I2Cは、SDAとSCLの2本を全デバイスで共用し、通信相手だけをアドレスで呼び分けるバスです。
マスターが「アドレス0x76のデバイスへ」と指定してからデータを流すので、同じ2本に複数台つないでも配線が増えません。
この仕組みがあるから、センサーを足してもブレッドボードの見通しを保ちやすくなります。
アドレスでデバイスを呼び分ける仕組み
I2Cの本質は、線を増やす代わりに識別番号を持たせる設計にあります。
7ビットアドレスで最大127台まで識別でき、10台つないでも占有ピンは2本のまま変わりません。
筆者が自作の環境ロガーでI2Cセンサーを4台まで増設したときも、最初の2本を維持したまま配線でき、最後まで見通しが崩れませんでした。
長所と短所:ピン効率と速度のトレードオフ
長所は、2本固定で拡張しやすいことです。
後からデバイスを追加しても配線設計をやり直しにくく、ブレッドボード上でも数珠つなぎにまとめられます。
市販の趣味向けセンサーモジュールにI2C対応が多いのも、この扱いやすさが理由でしょう。
もっとも、オープンドレイン出力のためHIGHを自力で出せず、4.7〜10kΩのプルアップ抵抗が必須になります。
これは「あった方がいい」部品ではなく、ないと原理的に動きません。
短所は、速度とアドレス管理です。
標準モード100kbps、ファストモード400kbpsはSPIより1桁以上遅く、大容量データの転送には向きません。
同じ型番のセンサーを2つ使うとアドレスが衝突するため、ワークショップでは同じ温度センサーを2個つないだ受講者が片方しか認識できず詰まりました。
アドレス変更用のジャンパを片方だけショートさせると、全員がすぐ解決できました。
I2Cが向いている場面
I2Cが強いのは、温湿度センサー、気圧センサー、RTC、EEPROM、小型OLEDのように、数バイトから数十バイトを秒単位でやり取りする機器です。
趣味の電子工作で扱う部品の多くがこの条件に収まるため、低速でもピン節約を優先したい場面ではおすすめです。
筆者の経験でも、SPIで組んだ試作ではCS線が増えるたびにジャンパーワイヤーが交差し、配線ミスを2度誘発しました。
I2Cならその手間をかなり減らせます。
SPI:4本使って高速・全二重で送受信する
SPIはSCK、MOSI、MISO、CSの4本で成り立ちます。
クロックに合わせてビットを流すだけなので処理の重なりが少なく、I2Cよりもずっと高速に、しかも送受信を同時に進められるのが強みです。
ただし、その速さはCSの本数と引き換えで、接続機器が増えるほど配線は増えます。
モード0〜3の設定がずれていると通信そのものが崩れるため、単純に見えても最初の確認点は意外に多いのです。
4本の信号線それぞれの役割
SCKは通信の拍子を刻むクロック、MOSIはマスターからスレーブへ送る線、MISOはスレーブからマスターへ返す線です。
送信用と受信用が分かれているので、同じクロックの流れに乗せながら双方向にやり取りでき、全二重の構造が自然に成立します。
CSはチップセレクトで、LOWにした1台だけを会話の相手に選ぶ役目を持ちます。
アドレスを持たず、CSを切り替えるだけで相手を決められるので仕組みは単純です。
この単純さは実装では強みですが、台数が増えるとそのまま配線負担になります。
デバイス5台なら共有3本にCSが5本で合計8ピンを使う計算になり、I2Cのように2本でまとめる感覚とはまったく違います。
筆者がArduinoでSPI接続の2.8インチTFTに画像を表示させたとき、全画面の書き換えが体感で一瞬でした。
試しに同等の画素数をI2C接続のOLEDで更新すると、走査が目で追えるほど遅く、速度差の大きさを画面越しに実感しました。
長所と短所:速度とピン消費の交換
SPIの長所は、プロトコルのオーバーヘッドが小さいことです。
アドレスもACKもなく、クロックに合わせてビットを流すだけなので、信号の段取りに無駄がありません。
プルアップ抵抗も不要で、押し引き両方向に駆動するため信号品質を保ちやすい点も扱いやすさにつながります。
8MHz動作なら理論上は毎秒約1,000,000バイト、実効でも毎秒500,000〜800,000バイト程度が見込めます。
その差はI2Cのファストモード400kbps、つまり毎秒約50,000バイトと比べると10倍以上です。
だからこそ、TFTディスプレイの画面書き換えやSDカードの連続読み出しのように、まとまったデータを短時間で流したい場面で力を発揮します。
短所ははっきりしていて、デバイスを増やすたびにCS線が1本ずつ増え、ブレッドボードでは交差配線が増えて見通しが悪くなることです。
ワークショップではSDカードモジュールが読めない相談を受け、配線もライブラリも正しいのに動かず、CS線を別ピンに割り当てたままスケッチ側の指定を変え忘れていた例がありました。
SPIのトラブルはCSの取り違えが定番だと、そこで改めて感じました。
SPIが向いている場面
SPIは、短時間でまとまったデータを確実に流したい用途に向いています。
SDカード、TFTディスプレイ、高速ADC、フラッシュメモリのように、転送量が多くて応答の速さがそのまま使い勝手になる機器とは相性がよいです。
逆に、少ない配線で多数の機器をつなぎたい場面では、CSを増やすたびに設計が重くなります。
ここで外せないのがCPOLとCPHAです。
SPIにはこの組み合わせでモード0〜3の4種類があり、マスターとスレーブが一致していないとデータは化けます。
ライブラリが自動で面倒を見てくれることは多いですが、動かないときはデータシートのモード指定を見る癖をつけると切り分けが速くなります。
速さを生かすには、線の役割だけでなく、モードとCSまで含めて正しくそろえましょう。
ユースケース別:実際の部品でどれを選ぶか
低速センサーや小型表示は、まずI2Cで考えるのが自然です。
温湿度センサー、RTC、小型OLEDのように、扱うデータが少なく更新間隔も長い部品は、転送速度より配線の少なさが効いてきます。
複数を同じボードに載せるほど、2本の信号線でまとめられる利点が効いてくるでしょう。
低速センサー類はI2Cが基本
温湿度・気圧・照度・加速度・RTCのような低速センサー類は、I2Cを選ぶと設計がすっきりします。
数バイトの値を秒単位で読む用途では速度に余裕があり、むしろ配線本数を減らして、ほかの部品にピンを回せることが効いてきます。
市販モジュールでも対応品が厚く、BME280のような定番部品を含めて部品選びで困りにくいのも強みです。
筆者が作ったデータロガーでも、BME280(気圧・温湿度)はI2Cに置くのが最も自然でした。
小型OLEDも、文字や簡単なアイコンを出すだけならI2Cで十分です。
表示の更新が数十ミリ秒遅れても機能上の支障が出にくく、配線の簡潔さのほうが扱いやすさにつながります。
ここでSPIに寄せると、描画速度の余裕は増えますが、そのぶん配線と制御線が増え、他の部品との両立が面倒になります。
初心者ほど、まずI2Cでまとめてしまうほうが設計の見通しが立ちやすいです。
大容量・高速描画はSPI一択
SDカードやTFTディスプレイは、SPIを前提に選ぶのが無難です。
ログ保存や画像描画は一度に動くデータ量が大きく、I2Cでは転送が追いつきません。
ディスプレイなら、書き換えの遅さが操作感にそのまま出るため、速度を優先してピンを使う判断が必要になります。
高速ADCや外付けフラッシュも同じで、ここは「配線を減らす」より「速度を取る」場面だと割り切るのが設計のコツです。
筆者のデータロガーでも、記録用のSDカードはSPIに逃がしました。
最初は全部をSPIで統一しようとしていましたが、CSが増えるほど配線が苦しくなり、方式を混ぜたほうが最終的に収まりがよかったのです。
SPIは便利ですが、何でも載る万能バスではありません。
速度を必要とする部品にだけ使うと、ボード全体のバランスが取りやすくなります。
外部機器・PCとの接続はUART
GPS、Bluetoothモジュール、Wi-Fiモジュール、そしてシリアルモニタとのやり取りはUARTが合います。
相手が1台に限られ、文字列ベースのデータをやり取りするなら、UARTの単純さがそのまま扱いやすさになります。
ケーブルがやや長くなる接続でも考えやすく、PCとのデバッグ用ログ出力にも向いています。
筆者は動作確認のログ出力をUARTに分けておき、配線と切り分けを楽にしていました。
距離がさらに必要になるなら、UARTのまま引き回すのではなくRS-485に変換します。
ワークショップでは、屋外センサーを20メートル先に置きたいという相談があり、I2C延長では通信が不安定になりました。
UART経由でRS-485に変え、両端に120Ω程度の終端抵抗を入れる構成にしたところ安定し、距離が絡む時点で選ぶ方式の前提が変わると分かりました。
配線の都合より、通信条件を先に見ておくのが筋です。
3方式を混在させるときは、順番を決めるだけで失敗が減ります。
まず使う部品を全部書き出して対応方式を確認し、次にSPI部品のCS本数を数えます。
そのうえでI2C部品のアドレス重複を見て、UART部品の数がボードのポート数を超えないか確認し、最後に残りピン数と突き合わせます。
実際のボード設計では、センサーはI2C、SDカードはSPI、デバッグログはUARTという役割分担が標準的です。
どれか1つを選ぶのではなく、適材適所で組み合わせてしまいましょう。
つながらないときのチェック手順
まず配線とアドレスを順に潰すと、動かない原因の多くは早い段階で絞れます。
UARTならTX/RXのクロス、SPIならCSピンとスケッチの一致、I2Cならスキャナでアドレス検出の有無を確認し、反応しないなら配線や電源、反応するのに読めないなら設定側を疑う流れが効率的です。
初心者が最初に迷うのは「どこから見ればいいか」ですが、頻度順に当てるだけで遠回りを減らせます。
しましょう。
まず配線とアドレスを疑う
I2Cの現場では、受講者が「全部つないだのに動かない」と困っていても、実際は1本の配線ミスかアドレス未確認で止まっていることが少なくありません。
筆者のワークショップでも、I2Cモジュールを3枚数珠つなぎにした回路が2枚までは動くのに3枚目で全滅したことがありました。
原因は各モジュールの内蔵プルアップではなく、最初の段階で配線とアドレスの確認が甘かったことにあり、スキャナで出てくる台数と配線図を突き合わせるだけで切り分けが進みます。
UARTではTX/RXのクロス、SPIではCSピンの指定とスケッチの一致を見直しましょう。
I2Cでデバイスが見えないときは、I2Cスキャナを走らせてアドレスが出るかをまず確認します。
1台も検出されないなら配線や電源の問題、1台だけ見えて複数枚のはずならアドレス競合が疑えます。
よくあるのは同じ型番のモジュールを並べて使い、片方だけアドレス変更のジャンパやピン設定をしていないケースです。
データシートで変更可能なアドレスを確認し、片方だけずらして再スキャンしましょう。
I2C特有:プルアップ抵抗の重複と波形なまり
I2C特有の落とし穴は、モジュールごとに入っているプルアップ抵抗が並列につながることです。
市販モジュールは基板内蔵のことが多く、3枚4枚と重ねるほど合成抵抗は下がります。
4.7〜10kΩが一般的な目安なのに、値が小さくなりすぎると波形が崩れ、立ち上がりや電流のバランスが乱れて通信が不安定になります。
筆者のワークショップでも、2枚分までは動いたのに3枚目で落ちた回路があり、2枚分のプルアップをカットしたら安定しました。
モジュール側の実装まで疑う視点は、初心者にはなかなか出てこないものです。
逆にプルアップが大きすぎたり、バス上のデバイスが増えすぎたりすると、信号の立ち上がりが遅れて波形がなまり、正しいタイミングでサンプリングできません。
組み込み開発の現場でも、動作が不安定なI2Cバスをオシロスコープで見ると、エッジが明確になまっていることがありました。
そこでプルアップ抵抗値を下げて立ち上がりを速くしたところ通信が安定し、それ以降は「不安定なI2Cはまず波形を見る」が標準手順になりました。
速度をファストモードから標準モードへ落とすのも、現実的でおすすめです。
電圧レベルとボーレートの落とし穴
電圧レベルの不一致は、見た目では配線が合っているのに通信だけ壊れる厄介な原因です。
3.3Vデバイスと5Vデバイスを直結すると、受信側の閾値電圧を適切に超えられず、偽のスタートビットやデータ破損が起きて文字化けとして現れます。
レベル変換モジュールを挟むのが確実で、電源電圧が違う部品を混ぜる時点で確認事項に入れてしまうのが安全です。
UARTで文字化けする場合は、まずボーレートの不一致を見ます。
許容誤差は約±3%しかなく、設定値が同じでもクロック源のずれで実効値が外れることがあります。
9600bpsまで落として通るなら、高速側のタイミング精度が怪しいと絞り込めます。
速度を下げて再確認し、通った条件から設定を詰めていくと、原因の切り分けが素直になります。
大手メーカーで組込みシステムの開発に15年従事。Arduino・Raspberry Piを活用した自作IoTデバイスの制作実績多数。電子工作の基礎から応用まで、実務経験に基づいた解説を得意とする。
関連記事
M5Stack入門|はんだ付け不要で始めるIoT電子工作
M5Stackは、約5cm四方のケースにESP32マイコン、カラー液晶、3ボタン、スピーカー、Wi-Fi/Bluetoothまで詰め込んだ小型開発デバイスです。電子工作で最初に立ちはだかるはんだ付けとブレッドボード配線を飛ばせるので、ArduinoやRaspberry Piのように部品を自分でつなぐ前提から、
はんだ付けのコツ 初心者向け|失敗しない7つのポイント
はんだ付けは、はんだを盛れば付く作業ではなく、ランドとリードの両方を3〜4秒だけ同時に温め、接合部にはんだを流してすっと離すところで仕上がりが決まります。温度の目安は鉛入りでは316〜343℃、鉛フリーでは343〜371℃で、長く当てるより短時間で終えるほうが失敗が減ります。
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入門|センサーデータをクラウドへ送る基本構成
IoTは、センサーで拾った情報をどう処理し、どうつなぎ、どこに貯めて、どう見せて使うかまでを5つの層で分けて考えると、一気に道筋が見えてきます。IoT Basics: A Guide for Beginnersでも、デバイスとネットワーク、クラウドやアプリケーションに分けて捉える整理が基本です。