Raspberry Pi | Arduino | ESP32 |
Single-board computer (SBC) | Microcontroller board | Microcontroller board |
Higher (Multi-core ARM CPU) | Lower (ATmega328P, AVR-based) | Higher (Dual-core Xtensa LX6 CPU) |
Available with RAM (e.g., 2GB, 4GB, 8GB) | Available with RAM (e.g., 2KB, 32KB) | Available with RAM (e.g., 512KB, 4MB) |
MicroSD card for external storage | Onboard Flash Memory (KB/MB) | Onboard Flash Memory (MB) |
Extensive (USB, Ethernet, GPIO, etc.) | Basic (Digital, Analog I/O) | Extensive (Digital, Analog I/O) |
Runs full-fledged OS (e.g., Raspberry Pi OS) | Not designed to run full OS | Not designed to run full OS |
Extensive (USB, Ethernet, Wi-Fi, Bluetooth) | Limited (USB, Serial) | Extensive (Wi-Fi, Bluetooth, etc.) |
General-purpose computing, IoT, media centers | Embedded systems, robotics | IoT, home automation, robotics |
Python, C/C++, Java, etc. | C/C++ | C/C++, MicroPython |
Not suitable for real-time applications | Suitable for simple real-time tasks | Suitable for real-time tasks |
Relatively higher cost | Cost-effective and budget-friendly | Affordable |