Fundamentals
  • ← All Modules
  1. Protocol Selection
  2. 42  Protocol Selector Wizard
Fundamentals
  • 1  Introduction to Fundamentals
  • 2  Core Building Blocks of IoT
  • Ecosystem Overview
    • 3  IoT Ecosystem Fundamentals
  • Data & Number Systems
    • 4  Data Representation Fundamentals
    • 5  Number Systems and Data Units
    • 6  Text Encoding for IoT
    • 7  Bitwise Operations and Endianness
  • Data & Packet Formats
    • 8  IoT Data Formats Overview
    • 9  Binary Data Formats for IoT
    • 10  Data Format Selection Guide
    • 11  Data Formats Practice and Assessment
    • 12  Data Formats for IoT
    • 13  Packet Structure and Framing
    • 14  Packet Anatomy
    • 15  Frame Delimiters and Boundaries
    • 16  Error Detection: Checksums and CRC
    • 17  Protocol Overhead and Encapsulation
  • Signal Processing
    • 18  Sensor to Network Pipeline
    • 19  Pipeline & Signal Acquisition
    • 20  Pipeline Processing and Formatting
    • 21  Pipeline Transmission
    • 22  Signal Processing Essentials
    • 23  Signal Processing Overview
    • 24  Signal Processing Essentials
    • 25  ADC Sampling & Aliasing
    • 26  Aliasing and ADC Resolution
    • 27  Quantization and Digital Filtering
    • 28  Signal Processing Practice and Lab
    • 29  Sensor Dynamics and Linearization
    • 30  Voice and Audio Compression for IoT
    • 31  Signal Processing Labs
  • Wireless Propagation
    • 32  Wireless Propagation Basics
    • 33  Radio Wave Basics for IoT
    • 34  Path Loss and Link Budgets
    • 35  Fading & RF Interference
    • 36  Wireless Propagation Lab
  • Protocol Selection
    • 37  Protocol Selection Framework
    • 38  Protocol Selection Framework
    • 39  Protocol Selection Scenarios
    • 40  Protocol Anti-Patterns
    • 41  Protocol Selection: The Challenge
    • 42  Protocol Selector Wizard
    • 43  Protocol Decision Frameworks
    • 44  Protocol Selection Wizard
    • 45  Protocol Matching Game
    • 46  IoT Architecture Planner
    • 47  Learning Path Generator
  • Academic Resources
    • 48  Paper Reading Guides
    • 49  WSN Papers Guide
    • 50  Paper Guides: Protocols
    • 51  Architecture Papers Guide
    • 52  Paper Reading Guides: IoT Security

On This Page

  • 42.1 Protocol Selector Wizard
  • Key Concepts
  • 42.2 Prerequisites
  • 42.3 Tool Components
  • 42.4 Quick Decision Guide
  • Common Pitfalls
  • 42.5 Summary
  • 42.6 See Also
  • 42.7 What’s Next
  1. Protocol Selection
  2. 42  Protocol Selector Wizard

42  Protocol Selector Wizard

Interactive Decision Support Tool for IoT Protocol Selection

In 60 Seconds

Selecting the right IoT protocol means matching your project’s range, power, bandwidth, latency, and cost requirements to one of 14+ wireless technologies. No single protocol is “best” – the optimal choice depends on your specific constraints, and the most important first filter is usually range (short vs. long) followed by power budget (battery years vs. mains-powered).

42.1 Protocol Selector Wizard

Learning Objectives

By using this interactive tool, you will be able to:

  • Systematically evaluate IoT protocol options against your project requirements using weighted scoring criteria
  • Analyse trade-offs between range, power, bandwidth, latency, and cost for competing protocol families
  • Select and justify a connectivity stack for a given IoT deployment scenario with quantitative reasoning
  • Compare protocols side-by-side by mapping detailed technical specifications to application constraints
  • Apply decision frameworks (flowcharts, constraint elimination, multi-factor scoring) to narrow 14+ candidates to 2-3 finalists
  • Calculate battery-life projections for candidate protocols to validate power-budget feasibility

Key Concepts

  • Constraint-first filtering: Start with hard limits such as range, power source, latency ceiling, payload size, and whether any infrastructure already exists
  • Elimination before scoring: Remove protocols that fail must-have requirements before comparing finer trade-offs
  • Weighted scoring: Rank the remaining candidates by assigning importance to range, power, bandwidth, latency, and cost
  • Numbers beat intuition: Battery budget, gateway count, and recurring fees often overturn a protocol that only sounds right in theory
  • Rationale matters: A strong decision records why finalists were chosen and why others were rejected
  • No universal winner: The best protocol is the one that fits this deployment, not the one with the strongest headline specification

42.2 Prerequisites

Before using this wizard, you should understand:

  • IoT Protocols Overview: Basic understanding of IoT protocol categories
  • Networking Basics: Fundamental networking concepts
For Beginners: What is Protocol Selection?

Simple Analogy: Choosing a Vehicle

Selecting an IoT protocol is like choosing transportation for a journey:

Journey Need Vehicle Choice IoT Equivalent
Cross the room Walk NFC (< 10cm)
Across town Bicycle/Car Bluetooth/Wi-Fi
Cross country Airplane LoRaWAN/Cellular
Move furniture Truck Wi-Fi (high bandwidth)
Save fuel Hybrid/Electric LPWAN (low power)

Key Trade-offs to Understand:

  • Long range = Lower speed: Like a marathon runner vs. sprinter
  • Low power = Limited features: Like economy vs. luxury car
  • High bandwidth = More power: Like sports car fuel consumption
  • Reliability = More overhead: Like insurance - costs more but protects you

42.3 Tool Components

This Protocol Selector Wizard suite includes three specialized tools to help you make the best protocol choice for your IoT project:

42.3.1 Interactive Selection Wizard

Use the step-by-step wizard to input your requirements and receive personalized protocol recommendations based on 14 protocols across short-range, LPWAN, cellular, and wired categories.

Launch Protocol Selection Wizard

  • 5-step requirements gathering
  • Multi-factor scoring algorithm
  • Side-by-side protocol comparison
  • Detailed recommendations with explanations

42.3.2 Decision Framework Reference

Explore visual decision trees and reference matrices to quickly narrow down protocol options based on key constraints like range, power, and bandwidth.

View Decision Frameworks

  • Interactive flowcharts
  • Scenario-to-protocol mapping
  • Power/range matrix views
  • Quick reference tables

42.3.3 Protocol Matching Game

Test and reinforce your protocol knowledge through an interactive game matching real-world IoT scenarios to the best protocols.

Play the Matching Game

  • 24 real-world scenarios
  • Three difficulty levels
  • Detailed explanations
  • Performance tracking

42.4 Quick Decision Guide

If you need… And also need… Consider…
Long range (km) Battery (years) LoRaWAN, Sigfox, NB-IoT
Long range (km) Low latency LTE-M, 5G
Short range (m) High bandwidth Wi-Fi
Short range (m) Battery life BLE, Zigbee, Thread
Mesh networking Low power Zigbee, Thread
Mesh networking IP-native Thread
Touch range Instant NFC
No battery Tracking UHF RFID
Quick Check: Apply the Decision Guide

A farmer needs soil moisture data from sensors spread across 50 acres, sending one reading every 30 minutes on battery. Which protocol family is most appropriate?

  1. Wi-Fi (high bandwidth, short range)
  2. Bluetooth LE (low power, very short range)
  3. LPWAN such as LoRaWAN (long range, low power, low data rate) correct
  4. 5G cellular (high bandwidth, high power)
Answer

C) LPWAN (LoRaWAN). The requirements – long range (50 acres), battery-powered, infrequent small readings – perfectly match LPWAN protocols. Wi-Fi lacks the range needed across 50 acres. BLE is limited to roughly 10-50 metres and cannot cover the farm. 5G would drain battery power far too quickly for simple periodic telemetry. Use the Quick Decision Guide row “Long range (km) + Battery (years)” to arrive at LoRaWAN/Sigfox/NB-IoT.

Putting Numbers to It

A practical protocol decision model uses weighted scoring:

\[ S = \sum_{i=1}^{n} w_i \cdot r_i,\quad \sum w_i = 1 \]

where \(r_i\) is a normalized rating (0 to 1) for each criterion (range, power, bandwidth, latency, cost).

Worked example: For a battery-first outdoor project, use weights: \(w_{\text{range}}=0.30,\; w_{\text{power}}=0.30,\; w_{\text{bandwidth}}=0.15,\; w_{\text{latency}}=0.15,\; w_{\text{cost}}=0.10\).

Using representative ratings (normalized 0-1): - LoRaWAN: \((1.0,\;0.95,\;0.20,\;0.40,\;0.80)\) gives \(S_{\text{LoRaWAN}} = 0.30(1.0) + 0.30(0.95) + 0.15(0.20) + 0.15(0.40) + 0.10(0.80) = 0.755\) - Wi-Fi: \((0.30,\;0.20,\;1.0,\;0.90,\;0.60)\) gives \(S_{\text{Wi-Fi}} = 0.30(0.30) + 0.30(0.20) + 0.15(1.0) + 0.15(0.90) + 0.10(0.60) = 0.495\)

The 0.26 score gap quantifies why LoRaWAN is favored for long-life telemetry even though Wi-Fi wins on raw bandwidth.

Interactive Protocol Scoring Calculator:

Show code
viewof weight_range = Inputs.range([0, 1], {value: 0.30, step: 0.05, label: "Range weight"})
viewof weight_power = Inputs.range([0, 1], {value: 0.30, step: 0.05, label: "Power weight"})
viewof weight_bandwidth = Inputs.range([0, 1], {value: 0.15, step: 0.05, label: "Bandwidth weight"})
viewof weight_latency = Inputs.range([0, 1], {value: 0.15, step: 0.05, label: "Latency weight"})
viewof weight_cost = Inputs.range([0, 1], {value: 0.10, step: 0.05, label: "Cost weight"})
Show code
weight_sum = weight_range + weight_power + weight_bandwidth + weight_latency + weight_cost
weights_normalized = {
  const sum = weight_sum;
  return {
    range: weight_range / sum,
    power: weight_power / sum,
    bandwidth: weight_bandwidth / sum,
    latency: weight_latency / sum,
    cost: weight_cost / sum
  };
}
Show code
protocols = [
  {name: "LoRaWAN", range: 1.0, power: 0.95, bandwidth: 0.20, latency: 0.40, cost: 0.80},
  {name: "Wi-Fi", range: 0.30, power: 0.20, bandwidth: 1.0, latency: 0.90, cost: 0.60},
  {name: "BLE", range: 0.10, power: 0.85, bandwidth: 0.40, latency: 0.70, cost: 0.90},
  {name: "Zigbee", range: 0.25, power: 0.80, bandwidth: 0.35, latency: 0.60, cost: 0.85},
  {name: "NB-IoT", range: 1.0, power: 0.70, bandwidth: 0.25, latency: 0.50, cost: 0.50},
  {name: "LTE-M", range: 1.0, power: 0.50, bandwidth: 0.60, latency: 0.85, cost: 0.40}
]

protocol_scores = protocols.map(p => ({
  name: p.name,
  score: (
    weights_normalized.range * p.range +
    weights_normalized.power * p.power +
    weights_normalized.bandwidth * p.bandwidth +
    weights_normalized.latency * p.latency +
    weights_normalized.cost * p.cost
  )
})).sort((a, b) => b.score - a.score)
Show code
html`<div style="background: var(--bs-light, #f8f9fa); padding: 1rem; border-radius: 8px; border-left: 4px solid #2C3E50; margin-top: 0.5rem;">
<p><strong>Weight sum:</strong> ${weight_sum.toFixed(2)} ${weight_sum !== 1.0 ? '(auto-normalized to 1.0)' : '✓'}</p>
<p><strong>Normalized weights:</strong> Range=${weights_normalized.range.toFixed(2)}, Power=${weights_normalized.power.toFixed(2)}, BW=${weights_normalized.bandwidth.toFixed(2)}, Latency=${weights_normalized.latency.toFixed(2)}, Cost=${weights_normalized.cost.toFixed(2)}</p>
<hr style="margin: 0.5rem 0;">
<p><strong>Protocol Rankings:</strong></p>
<ol style="margin: 0.5rem 0; padding-left: 1.5rem;">
${protocol_scores.map(p => `<li><strong>${p.name}</strong>: ${p.score.toFixed(3)}</li>`).join('')}
</ol>
<p style="margin-top: 0.5rem;"><strong>Recommendation:</strong> ${protocol_scores[0].name} (score ${protocol_scores[0].score.toFixed(3)})</p>
</div>`
Worked Example: Using the Decision Guide for Real Project

Let’s apply the quick decision guide to a concrete scenario: smart beehive monitoring.

Project Requirements:

  • Monitor temperature + humidity inside 50 beehives
  • Hives spread across 2-hectare farm (200m max distance)
  • Solar panel + battery (no mains power)
  • 1 reading per hour (24 readings/day)
  • Low cost (<$30 per hive sensor)
  • Must work through wooden hive boxes

Step 1: Use Quick Decision Guide

Question Answer Implications
Range needed? 200m max from collection point Short-to-medium range (not km-scale)
Power source? Solar + battery Need low power, but not ultra-low (solar recharges)
Data volume? 12 bytes/hour (temp, humidity, battery) Very low bandwidth requirement
Latency sensitivity? No (hourly data is fine) Not real-time critical
Infrastructure? Farm has Wi-Fi in barn (100m away) Could leverage existing Wi-Fi

Step 2: Apply Quick Guide Rules

From table: “Short range (m) + Battery life” → Consider: BLE, Zigbee, Thread

But wait – 200m exceeds BLE range (10-50m) and typical Zigbee/Thread range (10-100m). Let’s reconsider.

Alternative from table: “Long range (km) + Battery (years)” → Consider: LoRaWAN, Sigfox, NB-IoT

But 200m is overkill for LPWAN. We’re in the awkward middle ground.

Step 3: Consider Hybrid / Mesh Solutions

Option A: Wi-Fi with Sleep Modes

  • Barn Wi-Fi reaches ~50m
  • Need 4 Wi-Fi repeaters to cover 200m = $160 + installation
  • ESP32 with deep sleep: ~5mA TX current × 10s per hour = 0.014 mAh/transmission × 24 = 0.33 mAh/day (active), plus 0.15mA × 24h deep sleep = 3.6 mAh/day (sleep) = 3.93 mAh/day total
  • 2000 mAh battery + 1W solar = works even in winter
  • Cost: $15 ESP32 + $10 solar/battery = $25/hive ✅

Option B: LoRaWAN

  • 1 gateway at barn covers entire 2-hectare farm easily
  • LoRa module $12 + MCU $3 = $15 hardware
  • Gateway $500 (one-time) ÷ 50 hives = $10/hive amortized
  • Battery: ~6mA TX current (20mW @ 3.3V) × 2s per hour = 0.0033 mAh/transmission × 24 = 0.08 mAh/day (TX), plus 0.0015mA × 24h sleep = 0.036 mAh/day (sleep) = ~0.12 mAh/day total (10+ year battery life)
  • Cost: $15 hardware + $10 gateway share + $10 solar/battery = $35/hive ⚠️ Over budget

Option C: Zigbee Mesh

  • Mesh routing: each hive relays for others
  • Avg 4 hops to reach barn (50m per hop × 4 = 200m)
  • Zigbee module $8 + MCU $3 = $11 hardware
  • Mesh coordinator at barn $25 (one-time) ÷ 50 hives = $0.50/hive amortized
  • Battery: Own TX ~9mA (30mW @ 3.3V) × 100ms × 24/day = 0.006 mAh/day, plus relay for ~4 neighbours × 24/day × 100ms = 0.024 mAh/day, plus sleep 0.003mA × 24h = 0.072 mAh/day = ~0.10 mAh/day total (5+ year life with solar)
  • Cost: $11 hardware + $0.50 coordinator share + $8 solar/battery = $19.50/hive ✅

Decision: Zigbee Mesh

Justification:

  • Under $30 budget
  • 200m covered via 4-hop mesh
  • Wooden hive boxes allow signal penetration better than concrete
  • Solar + battery handles ~0.10 mAh/day consumption (compared to 3.93 mAh/day for Wi-Fi)
  • Mesh provides redundancy (if one hive fails, others route around it)
  • No recurring costs (unlike NB-IoT)

Key Lesson: The “quick decision guide” gives you starting points, but real projects require working through the numbers. 200m is an awkward “tweener” distance – too far for simple BLE/Zigbee, overkill for LPWAN. Mesh networking solved the challenge by turning short-range radios into long-range systems through multi-hop routing.

Interactive Battery Life Comparison:

Show code
viewof battery_capacity = Inputs.range([500, 5000], {value: 2000, step: 100, label: "Battery capacity (mAh)"})
viewof readings_per_day = Inputs.range([1, 96], {value: 24, step: 1, label: "Reads per day"})
viewof tx_time_wifi = Inputs.range([1, 30], {value: 10, step: 1, label: "Wi-Fi TX time (s/read)"})
viewof tx_time_lora = Inputs.range([0.5, 10], {value: 2, step: 0.5, label: "LoRaWAN TX time (s/read)"})
viewof tx_time_zigbee = Inputs.range([0.05, 5], {value: 0.1, step: 0.05, label: "Zigbee TX time (s/read)"})
Show code
battery_results = {
  // Wi-Fi: 5mA TX, 0.15mA sleep
  const wifi_tx_mah = (5 * tx_time_wifi / 3600) * readings_per_day;
  const wifi_sleep_mah = 0.15 * 24;
  const wifi_total = wifi_tx_mah + wifi_sleep_mah;
  const wifi_days = battery_capacity / wifi_total;

  // LoRaWAN: 20mW @ 3.3V = 6mA TX, 0.0015mA sleep
  const lora_tx_mah = (6 * tx_time_lora / 3600) * readings_per_day;
  const lora_sleep_mah = 0.0015 * 24;
  const lora_total = lora_tx_mah + lora_sleep_mah;
  const lora_days = battery_capacity / lora_total;

  // Zigbee: 30mW @ 3.3V = 9mA TX, 0.003mA sleep, plus relay overhead
  const zigbee_tx_mah = (9 * tx_time_zigbee / 3600) * readings_per_day;
  const zigbee_relay_mah = (9 * tx_time_zigbee / 3600) * readings_per_day * 4; // 4 relays on average
  const zigbee_sleep_mah = 0.003 * 24;
  const zigbee_total = zigbee_tx_mah + zigbee_relay_mah + zigbee_sleep_mah;
  const zigbee_days = battery_capacity / zigbee_total;

  return {
    wifi: {tx: wifi_tx_mah, sleep: wifi_sleep_mah, total: wifi_total, days: wifi_days},
    lora: {tx: lora_tx_mah, sleep: lora_sleep_mah, total: lora_total, days: lora_days},
    zigbee: {tx: zigbee_tx_mah, relay: zigbee_relay_mah, sleep: zigbee_sleep_mah, total: zigbee_total, days: zigbee_days}
  };
}
Show code
html`<div style="background: var(--bs-light, #f8f9fa); padding: 1rem; border-radius: 8px; border-left: 4px solid #16A085; margin-top: 0.5rem;">
<h4 style="margin-top: 0;">Battery Life Comparison (${battery_capacity} mAh battery)</h4>
<table style="width:100%; border-collapse:collapse; margin-top:0.5rem;">
<tr style="background: #2C3E50; color: white;">
  <th style="padding:8px; border:1px solid #ddd;">Protocol</th>
  <th style="padding:8px; border:1px solid #ddd;">Daily Consumption</th>
  <th style="padding:8px; border:1px solid #ddd;">Battery Life</th>
</tr>
<tr>
  <td style="padding:8px; border:1px solid #ddd;"><strong>Wi-Fi</strong></td>
  <td style="padding:8px; border:1px solid #ddd;">${battery_results.wifi.total.toFixed(2)} mAh/day<br>(TX: ${battery_results.wifi.tx.toFixed(2)}, Sleep: ${battery_results.wifi.sleep.toFixed(2)})</td>
  <td style="padding:8px; border:1px solid #ddd;"><strong>${battery_results.wifi.days.toFixed(0)} days</strong> (${(battery_results.wifi.days/365).toFixed(1)} years)</td>
</tr>
<tr style="background: #f0f0f0;">
  <td style="padding:8px; border:1px solid #ddd;"><strong>LoRaWAN</strong></td>
  <td style="padding:8px; border:1px solid #ddd;">${battery_results.lora.total.toFixed(2)} mAh/day<br>(TX: ${battery_results.lora.tx.toFixed(2)}, Sleep: ${battery_results.lora.sleep.toFixed(2)})</td>
  <td style="padding:8px; border:1px solid #ddd;"><strong>${battery_results.lora.days.toFixed(0)} days</strong> (${(battery_results.lora.days/365).toFixed(1)} years)</td>
</tr>
<tr>
  <td style="padding:8px; border:1px solid #ddd;"><strong>Zigbee Mesh</strong></td>
  <td style="padding:8px; border:1px solid #ddd;">${battery_results.zigbee.total.toFixed(2)} mAh/day<br>(TX: ${battery_results.zigbee.tx.toFixed(2)}, Relay: ${battery_results.zigbee.relay.toFixed(2)}, Sleep: ${battery_results.zigbee.sleep.toFixed(2)})</td>
  <td style="padding:8px; border:1px solid #ddd;"><strong>${battery_results.zigbee.days.toFixed(0)} days</strong> (${(battery_results.zigbee.days/365).toFixed(1)} years)</td>
</tr>
</table>
<p style="margin-top: 0.5rem; margin-bottom: 0;"><strong>Best choice:</strong> ${battery_results.lora.days > battery_results.wifi.days && battery_results.lora.days > battery_results.zigbee.days ? 'LoRaWAN' : battery_results.zigbee.days > battery_results.wifi.days ? 'Zigbee Mesh' : 'Wi-Fi'} (longest battery life)</p>
</div>`

Common Pitfalls

1. Prioritizing Theory Over Measurement in Protocol Selector Wizard

Relying on theoretical models without profiling actual behavior leads to designs that miss performance targets by 2-10×. Always measure the dominant bottleneck in your specific deployment environment — hardware variability, interference, and load patterns routinely differ from textbook assumptions.

2. Ignoring System-Level Trade-offs

Optimizing one parameter in isolation (latency, throughput, energy) without considering impact on others creates systems that excel on benchmarks but fail in production. Document the top three trade-offs before finalizing any design decision and verify with realistic workloads.

3. Skipping Failure Mode Analysis

Most field failures come from edge cases that work in the lab: intermittent connectivity, partial node failure, clock drift, and buffer overflow under peak load. Explicitly design and test failure handling before deployment — retrofitting error recovery after deployment costs 5-10× more than building it in.

🏷️ Label the Diagram

Code Challenge

🧠 Knowledge Check

42.5 Summary

The Protocol Selector Wizard suite helps you systematically evaluate IoT connectivity options:

  • 14 protocols analyzed across short-range, LPWAN, cellular, and wired categories
  • Multi-factor scoring considers range, power, bandwidth, latency, cost, and security
  • Personalized recommendations based on your specific requirements
  • Interactive learning through decision frameworks and matching games
  • Deep dive links to detailed protocol chapters
Key Takeaways
  1. No “best” protocol exists - only best fit for your requirements
  2. Trade-offs are inevitable - long range usually means lower bandwidth
  3. Start with constraints - power and range typically narrow options quickly
  4. Consider total cost - include infrastructure, recurring fees, and maintenance
  5. Plan for scale - choose protocols that grow with your deployment
For Kids: Meet the Sensor Squad!

Sammy the Sensor needed to send a message to the cloud, but couldn’t figure out which delivery service to use!

“I could use Bluetooth Buddy – he’s super fast but only delivers next door,” Sammy said.

Lila the LED blinked excitedly. “What about LoRa Larry? He walks slowly but delivers across the whole city!”

Max the Microcontroller scratched his head. “It depends on what you’re sending! A tiny temperature reading? LoRa Larry is perfect. A video? You need Wi-Fi Wanda – she carries big packages but needs lots of energy!”

Bella the Battery groaned. “Don’t pick Wi-Fi Wanda too often – she drains my energy fast! For small messages sent once an hour, LoRa Larry barely sips any power.”

The lesson: Picking the right protocol is like choosing the right delivery service – you match the distance, package size, and energy budget to find the perfect fit!

Knowledge Check: Protocol Selection Reasoning

Q1: Why is there no single “best” IoT protocol?

  1. Manufacturers haven’t agreed on a standard yet — Incorrect. Many protocols are standardised (e.g., IEEE 802.15.4, 3GPP); the issue is not lack of agreement but fundamental physics trade-offs.
  2. Different applications have conflicting requirements for range, power, bandwidth, and cost correct — Correct! Long range demands lower data rates (Shannon’s law), low power limits processing, and high bandwidth requires more energy. No single protocol can optimise every dimension simultaneously.
  3. Only expensive protocols work well — Incorrect. Cost-effective protocols like LoRaWAN and Zigbee serve billions of devices; expense does not determine quality.
  4. IoT is too new to have good protocols — Incorrect. Protocols such as Zigbee (2004), 6LoWPAN (2007), and LoRaWAN (2015) are mature and widely deployed.

Q2: A smart building needs real-time occupancy video analytics from 20 cameras across 3 floors, all connected to mains power. Which protocol is most suitable?

  1. LoRaWAN — Incorrect. LoRaWAN provides only 0.3-50 kbps, far too low for video streaming from cameras.
  2. NFC — Incorrect. NFC operates at less than 10 cm range and is designed for tap-and-go transactions, not continuous data streams.
  3. Wi-Fi correct — Correct! Wi-Fi provides the high bandwidth (hundreds of Mbps) needed for video, works at building scale (30-50 m per access point with repeaters), and mains power eliminates the energy constraint.
  4. Zigbee — Incorrect. Zigbee maxes out at 250 kbps, insufficient for video. It is optimised for low-data-rate sensor networks, not media streaming.

42.5.1 Match the Scenario to the Protocol

Drag each IoT deployment scenario to the protocol family that best fits its constraints.

42.5.2 Order the Protocol Selection Process

Arrange the steps of the weighted-scoring protocol selection method in the correct sequence.

Concept Relationships: Protocol Selection Wizard
Concept Relates To Relationship
Protocol Selection Wizard Requirements Matrix The wizard automates the systematic requirements-to-protocol matching process
Decision Framework Protocol Comparison Frameworks reduce 14+ candidate protocols to 2-3 finalists via constraint elimination
Trade-offs Range/Power/Bandwidth Every protocol optimizes for specific dimensions at the expense of others

Cross-module connection: This connects to System Architecture Design via protocol capabilities determining architecture options. See IoT Reference Models.

42.6 See Also

  • Protocol Selection Framework — Systematic three-step process for protocol selection
  • Protocol Comparison Tool — Compare LPWAN protocol specifications
  • Network Topology Design — How protocol choices constrain topology options

42.7 What’s Next

  • Interactive Wizard: Protocol Selection Wizard - Input your project constraints and receive scored protocol recommendations.
  • Decision Frameworks: Protocol Decision Frameworks - Study flowcharts and constraint-elimination matrices used by professional IoT architects.
  • Matching Game: Protocol Matching Game - Reinforce protocol-to-scenario mapping through 24 real-world challenges.
  • Architecture Planner: Architecture Planner - Translate your protocol choice into a complete system architecture.
  • LPWAN Deep Dive: LPWAN Fundamentals - Compare LoRaWAN, Sigfox, and NB-IoT specifications side-by-side.
  • Network Topologies: Topology Design - Discover how your protocol choice constrains star, mesh, and tree topologies.
41  Protocol Selection: The Challenge
43  Protocol Decision Frameworks