Skip to content
IT-705 · IoT Lab/Quick Revision Short Notes

IoT Lab (IT-705) - Unit 4 Short Notes

UNIT 4: IoT SYSTEM INTEGRATION, CLOUD & ADVANCED TOPICS

4.1 IoT System Architecture & Integration Patterns

  • 4.1.1 End-to-End System Stack Review

    • Perception Layer: Physical sensors/actuators, data acquisition.

    • Network Layer: Communication protocols (Wi-Fi, BLE, LoRaWAN, cellular), data transport.

    • Processing Layer: Edge/Fog computing, gateway processing, cloud ingestion.

    • Application Layer: Data analytics, visualization, business logic, user interfaces.

  • 4.1.2 Integration Challenges

    • Heterogeneity: Diverse devices, protocols, data formats.

    • Scalability: Managing millions of devices and data streams.

    • Interoperability: Enabling seamless communication between components from different vendors.

  • 4.1.3 Common Integration Patterns

    | Pattern | Description | Best For | | :--- | :--- | :--- | | Hub-and-Spoke | Central hub (gateway) connects to all devices. | Small-to-medium local deployments, protocol translation. | | Gateway-Centric | Intelligent gateway performs local processing/filtering. | Latency-sensitive apps, bandwidth optimization, offline operation. | | Cloud-Centric | Devices connect directly to cloud platform. | Large-scale deployments, heavy analytics, global access. | | Fog/Edge-Centric | Hierarchical: Edge nodes process, fog aggregates, cloud stores. | Distributed analytics, real-time response, bandwidth reduction. |

  • 4.1.4 Role of IoT Gateways

    • Protocol Translation: e.g., Zigbee/Z-Wave to MQTT/HTTP.

    • Data Filtering & Aggregation: Reduce cloud data volume.

    • Local Processing & Control: Execute rules locally for low latency.

    • Security Enforcement: TLS termination, device authentication, firewall.

  • 4.1.5 Designing for Modularity & Plug-and-Play

    • Use standardized device models (e.g., Device Shadow/Twin).

    • Implement LwM2M or similar for device management.

    • Design stateless application services where possible.

[!TIP] Exam Focus: Be able to compare and contrast integration patterns and justify gateway placement in a given use case (e.g., factory vs. smart city).

4.2 Cloud IoT Platforms & Services (Hands-On Focus)

  • 4.2.1 Cloud Platform Comparison

    | Platform | Core Service | Key Strength | | :--- | :--- | :--- | | AWS IoT Core | Device Registry, Rules Engine, Device Shadow | Mature ecosystem, extensive integration with AWS services. | | Azure IoT Hub | Device Twin, IoT Edge, Device Provisioning Service (DPS) | Strong enterprise integration, robust edge computing. | | Google Cloud IoT Core | Device Manager, Cloud Pub/Sub | Simple MQTT/HTTP bridge, seamless with BigQuery/Dataflow. | | IBM Watson IoT | Device Registry, Real-time Insights | Strong analytics/AI integration, historical focus. |

  • 4.2.2 Core Platform Services

    • Device Management: Registry (device identity), Shadow/Twin (desired/reported state), Jobs (fleet operations).

    • Messaging & Ingestion: MQTT Broker (lightweight, pub/sub), HTTP (request/response), WebSockets (bi-directional).

    • Rules Engine / Data Routing: Trigger actions (Lambda, Functions) based on message content; route to storage/analytics.

  • 4.2.3 Setting Up a Cloud IoT Project

    1. Create IoT resource (e.g., AWS IoT Core).

    2. Define a "Thing" (logical device representation).

    3. Generate credentials: X.509 certificates (preferred) or symmetric keys (PSK).

    4. Attach IAM policies to define allowed actions.

  • 4.2.4 Connecting a Physical Device/Simulator

    • Use platform SDK (e.g., AWS IoT Device SDK, Azure IoT SDK).

    • Publish Telemetry: client.publish("topic", json.dumps(data)).

    • Subscribe to Commands: client.subscribe("topic/cmd"); handle inbound messages.

  • 4.2.5 Visualizing Device Data

    • Cloud-Native: AWS IoT SiteWise/Azure IoT Central (pre-built dashboards).

    • Third-Party: Grafana (connect to TSDB like InfluxDB, CloudWatch).

    • Custom: Web app using platform APIs.

[!TIP] Lab Critical: Always test connectivity with a GUI MQTT client (MQTT.fx) before writing device code. Verify device certificate/key pairing.

4.3 Data Management, Analytics & Visualization

  • 4.3.1 Time-Series Data Storage

    • Purpose: Optimized for timestamped data (sensor readings). High write throughput, efficient range queries.

    • Examples: InfluxDB, TimescaleDB (PostgreSQL extension), Amazon Timestream.

  • 4.3.2 Stream Processing Concepts

    • Data in Motion: Continuous, unbounded streams processed in real-time.

    • Data at Rest: Stored data processed in batches.

  • 4.3.3 Introduction to Stream Processing Frameworks

    • AWS Kinesis: Data streams, analytics, video streams.

    • Azure Stream Analytics: Serverless, SQL-like query language.

    • Google Dataflow: Unified batch/stream processing (Apache Beam).

    • Common Pattern: IoT Platform → Rules Engine → Stream Service → Storage/Dashboard.

  • 4.3.4 Simple Analytics

    • Real-time Alerts: Rule: temperature > 50 → trigger SNS/email.

    • Threshold Monitoring: Track min/max/avg over sliding windows.

    • Basic Aggregations: Sum, count, average per device/group.

  • 4.3.5 Building Interactive Dashboards

    • Tools: Grafana (highly recommended), Cloud Dashboards, Power BI.

    • Key Metrics: Current value, historical trend, status indicators.

    • Widgets: Time-series graphs, gauges, stat panels, maps.

4.4 IoT Security & Privacy Fundamentals (Critical Lab Focus)

  • 4.4.1 Security Lifecycle for IoT

    Device → Communication → Cloud/Application → Lifecycle Management (provisioning, updates, decommissioning).

  • 4.4.2 Device Security

    • Secure Boot: Chain of trust from hardware.

    • Hardware Roots of Trust (TPM/SE): Secure key storage.

    • Firmware Updates (OTA): Signed, encrypted, atomic updates.

  • 4.4.3 Communication Security

    • TLS/SSL: Mandatory for MQTT (mqtts://) and HTTP (https://).

    • Certificate-Based Auth: X.509 certificates (device & CA). Most secure.

    • Pre-shared Keys (PSK): Symmetric key per device. Simpler but less scalable/secure.

  • 4.4.4 Cloud & Access Control

    • Principle of Least Privilege: Grant minimum necessary permissions.

    • IAM Roles/Policies: Define iot:Connect, iot:Publish, iot:Subscribe actions.

    • Secure API Access: Use temporary credentials (STS), never hardcode keys.

  • 4.4.5 Privacy Considerations

    • Data Minimization: Collect only essential data.

    • Anonymization: Remove PII from datasets.

    • User Consent: Transparent notice for data collection (especially consumer IoT).

  • 4.4.6 Common Vulnerabilities & Lab Mitigations

    | Vulnerability | Lab Mitigation | | :--- | :--- | | Insecure Interfaces (web/mobile) | Input validation, strong authentication, rate limiting. | | Lack of Encryption | Enforce TLS 1.2+ for all communication. | | Weak Authentication | Use X.509 certs or strong PSKs; rotate keys. | | Insecure Network Services | Disable unused ports (telnet, debug); use firewalls. |

[!TIP] Exam Warning: "Security is not a feature, it's a requirement." Always discuss security at every layer in project design. Default credentials are a top vulnerability.

4.5 Advanced Communication & Protocols (Lab Implementation)

  • 4.5.1 MQTT Deep Dive

    • QoS Levels:

      • 0 (At most once): Fire-and-forget. Fast, may lose messages.

      • 1 (At least once): Acknowledged. May duplicate.

      • 2 (Exactly once): 4-step handshake. Slowest, guaranteed delivery.

    • Last Will & Testament (LWT): Message sent by broker if client disconnects ungracefully. Used for offline detection.

    • Retained Messages: Broker stores last message on a topic for new subscribers.

    • Clean Session: False = persistent session (queued messages, subscriptions saved); True = no state saved.

  • 4.5.2 CoAP (Constrained Application Protocol)

    • Basics: RESTful (GET/PUT/POST/DELETE), UDP-based, low overhead.

    • DTLS: Datagram TLS for security (analogous to TLS for TCP).

    • Comparison with MQTT:

      | Feature | MQTT | CoAP | | :--- | :--- | :--- | | Transport | TCP | UDP | | Model | Pub/Sub | Req/Resp (like HTTP) | | Overhead | Low | Very Low | | Best For | Event-driven, many-to-many | Constrained devices, simple query/response |

  • 4.5.3 HTTP/REST APIs for IoT

    • When to Use: Infrequent reporting, device-to-cloud only, leveraging existing web infrastructure.

    • Trade-offs: High overhead (headers), connection setup cost, not ideal for frequent small messages.

  • 4.5.4 Protocol Bridging at the Gateway

    • Example: Arduino with Zigbee shield → reads serial data → gateway (Python/Raspberry Pi) → publishes to MQTT broker.

    • Implementation: Serial/Zigbee listener script → parse → paho-mqtt client publish.

4.6 Capstone Project: Designing & Deploying a Complete IoT Solution

  • 4.6.1 Project Scoping

    • Define clear use case (e.g., "Monitor soil moisture in a farm and automate irrigation").

    • Identify stakeholders and key requirements (accuracy, latency, cost).

  • 4.6.2 System Design

    • Component Selection: Sensors (DHT22), MCU (ESP32), Comm (Wi-Fi/MQTT).

    • Architecture Diagram: Draw layers (Device → Gateway? → Cloud → App).

    • Data Flow Mapping: Sensor → MCU → MQTT Topic → Cloud Rule → DB → Dashboard.

  • 4.6.3 Implementation Phases

    1. Device Firmware: Read sensor → format JSON → secure MQTT publish.

    2. Cloud Setup: Create IoT resource, register device (cert), create IAM policy.

    3. Data Pipeline: Rule to route topic to database (e.g., DynamoDB, InfluxDB).

    4. Visualization: Grafana dashboard connected to DB; add alerts.

  • 4.6.4 Testing & Validation

    • End-to-End: Verify sensor reading appears on dashboard.

    • Failure Simulation: Disconnect device → check LWT/offline status.

    • Security Testing: Attempt connection with wrong certificate → must fail.

  • 4.6.5 Documentation & Presentation

    • System Architecture Diagram (mandatory).

    • Step-by-Step Setup Guide (cloud + device).

    • Results: Screenshots of live data, dashboard, cloud console.

    • Future Scope: Scalability, additional sensors, ML integration.

4.7 Lab Toolchain & Best Practices

  • 4.7.1 Essential Tools

    • MQTT.fx / MQTT Explorer: Subscribe/publish to test topics.

    • Postman: Test cloud REST APIs (e.g., device shadow GET/PUT).

    • SSH/Telnet: Access gateway/cloud VMs.

    • Wireshark: Capture and analyze MQTT/CoAP packets (filter: mqtt or coap).

  • 4.7.2 Version Control for IoT Projects

    • Git for: firmware code (/firmware), cloud config scripts (/infra), dashboard JSON (/dashboard).

    • .gitignore for secrets (*.pem, *.key), binaries.

  • 4.7.3 Infrastructure as Code (IaC) Basics

    • Concept: Define cloud resources (IoT things, rules, DB) in code (YAML/JSON).

    • Tools: AWS CloudFormation, Terraform (cloud-agnostic).

    • Benefit: Reproducible, version-controlled environments.

  • 4.7.4 Debugging & Logging

    • Structured Logging: JSON logs from device: {"temp":25.5, "id":"dev1", "ts":...}.

    • Centralized Logs: CloudWatch Logs, Azure Monitor. Filter by device ID.

    • Debug Flow: 1. Serial monitor (device) → 2. MQTT client (gateway) → 3. Cloud rule logs → 4. DB query.

  • 4.7.5 Lab Report Writing

    • Structure: Objective → Methodology (Block Diagram) → Implementation (Steps + Code Snippets) → Results (Screenshots/Plots) → Conclusion (Challenges, Future Work).

    • Presenting Data: Label all graphs (axis, units). Use tables for configuration parameters.

    • Screenshots: Annotate with arrows/captions showing key outputs.

[!TIP] Pro Lab Practice: Document every command and configuration change during the lab. This becomes your setup guide and debug log.

Go to where you left off?

Quick Add to Notes

Save questions, your own notes and screenshots into notes filed by unit. It takes a free account.

Create free account

Have an account? Log in