Getting Started

The IoT Ecosystem

Explore the hardware platforms, cloud services, communication protocols, and software tools that make up the modern IoT ecosystem.

The IoT Ecosystem

The IoT ecosystem is a wide landscape of hardware, software, connectivity options, and cloud platforms. Understanding how these pieces fit together is essential before choosing the right tools for your project.


Hardware Platforms

Microcontrollers (MCUs)

Microcontrollers are small, low-power chips designed to run a single program. They are the brains of most sensor nodes.

BoardMCUFlashRAMWiFiBest For
Arduino UnoATmega328P32 KB2 KBNoLearning, simple sensors
Arduino NanoATmega328P32 KB2 KBNoCompact projects
ESP8266 (NodeMCU)Xtensa L1064 MB80 KBYesWiFi IoT, low cost
ESP32Xtensa LX6 (dual-core)4 MB520 KBYes + BTMost IoT projects
STM32ARM Cortex-MUp to 1 MBUp to 128 KBNoIndustrial, real-time
nRF52840ARM Cortex-M41 MB256 KBBLE onlyBluetooth/BLE applications

Single Board Computers (SBCs)

SBCs run a full operating system and are used as gateways or for compute-heavy tasks.

BoardCPURAMOSBest For
Raspberry Pi 4ARM Cortex-A72 (quad-core)1–8 GBRaspberry Pi OSGateway, computer vision, servers
Raspberry Pi Zero 2 WARM Cortex-A53 (quad-core)512 MBRaspberry Pi OSLightweight, battery-powered
BeagleBone BlackAM335x (ARM A8)512 MBDebianIndustrial, real-time PRU
NVIDIA Jetson NanoARM + 128 CUDA GPU4 GBUbuntuEdge AI, neural networks
Orange Pi 5Rockchip RK3588SUp to 32 GBUbuntu/DebianHigh-performance edge
python
# Check which platform you're running on
import platform
import sys

print(f"System: {platform.system()}")
print(f"Machine: {platform.machine()}")
print(f"Python: {sys.version}")

# On Raspberry Pi, machine will be 'aarch64' or 'armv7l'
# On ESP32 (MicroPython), platform will be 'esp32'

Cloud IoT Platforms

Cloud platforms handle device management, data ingestion, storage, and analytics at scale.

PlatformProviderFree TierBest For
AWS IoT CoreAmazonLimitedEnterprise, mature ecosystem
Azure IoT HubMicrosoft8,000 msg/dayEnterprise, Microsoft stack
Google Cloud IoTGoogleDeprecated → BigQueryGCP-heavy stacks
ThingSpeakMathWorks3M msgs/yearLearning, MATLAB analytics
BlynkBlynkYesMobile dashboards, prototyping
HiveMQ CloudHiveMQYes (100 connections)MQTT broker as a service
Adafruit IOAdafruitYesMaker projects, quick dashboards
LosantLosantYesMid-scale, good UI
python
# Connecting to ThingSpeak (simple cloud, great for learning)
import requests

THINGSPEAK_API_KEY = "YOUR_API_KEY"
CHANNEL_ID = "YOUR_CHANNEL_ID"

def send_to_thingspeak(temperature, humidity):
    url = f"https://api.thingspeak.com/update"
    params = {
        "api_key": THINGSPEAK_API_KEY,
        "field1": temperature,
        "field2": humidity
    }
    response = requests.get(url, params=params)
    return response.text  # Returns entry_id or 0 on failure

# In production you'd call this after reading a sensor
entry_id = send_to_thingspeak(24.5, 60)
print(f"Data sent, entry ID: {entry_id}")

Communication Protocols

ProtocolTransportOverheadRangeBest For
MQTTTCPVery lowAny (broker)Sensor telemetry, pub/sub
HTTP/RESTTCPMediumAnyWeb APIs, dashboards
CoAPUDPVery lowLAN/InternetConstrained devices
WebSocketsTCPLowAnyReal-time dashboards
AMQPTCPMediumAnyEnterprise messaging
ModbusSerial/TCPLowLANIndustrial legacy systems

Wireless Technologies

Short Range                          Long Range
│                                          │
BLE ──── Zigbee ──── WiFi ──── LoRa ──── 5G
│          │           │          │        │
10m       100m        50m       15km     100km
│          │           │          │        │
1Mbps    250kbps     54Mbps     250bps   10Gbps
│          │           │          │        │
Low      Low        Medium     Very Low  High
Power    Power      Power      Power     Power

Software & Firmware Ecosystem

Device-Side

  • MicroPython — Python for microcontrollers (ESP32, ESP8266, Pico)
  • Arduino Framework — C/C++ for Arduino and compatible boards
  • FreeRTOS — Real-time operating system for MCUs
  • Zephyr RTOS — Linux Foundation RTOS for constrained devices
  • Raspberry Pi OS — Full Debian Linux for SBCs

Development Tools

  • Thonny IDE — Python IDE with MicroPython support and direct upload
  • Arduino IDE 2 — C/C++ IDE for Arduino ecosystem
  • PlatformIO — VSCode extension, supports 1000+ boards, any framework
  • Wokwi — Online IoT simulator for Arduino, ESP32, Raspberry Pi Pico
  • Fritzing — Circuit diagram and PCB design tool

Data & Analytics

  • Node-RED — Flow-based visual programming for IoT data pipelines
  • InfluxDB — Purpose-built time-series database
  • Grafana — Dashboards for time-series data
  • Apache Kafka — High-throughput streaming for IoT data

Choosing the Right Platform

START HERE
    │
    ▼
Do you need WiFi?
    │
    ├─ YES ──► Do you need full Linux?
    │              │
    │              ├─ YES ──► Raspberry Pi 4 / Zero 2 W
    │              └─ NO  ──► ESP32 (MicroPython or Arduino)
    │
    └─ NO ───► Do you need BLE?
                   │
                   ├─ YES ──► nRF52840 / ESP32
                   └─ NO  ──► Arduino Uno / Nano
                              (add XBee/Zigbee module if needed)

Summary

  • The IoT ecosystem spans hardware (MCUs, SBCs), connectivity (WiFi, BLE, LoRa), cloud platforms (AWS IoT, Azure, ThingSpeak), and software tools
  • ESP32 is the go-to microcontroller for most WiFi/BLE IoT projects
  • Raspberry Pi is ideal when you need a full OS, camera, or edge AI
  • MicroPython lets you use Python on microcontrollers
  • MQTT is the dominant protocol for device-to-cloud telemetry
  • Cloud platforms handle data ingestion, storage, and device management at scale

Next, we will set up your IoT development environment so you can start building immediately.