There are several different Arduino products on the market, as well as several ESP32 products. The very first thing we should do here is break down what these two devices really are. To start: An ESP32 is a System-On-A-Chip (SoC).
What’s An Arduino?
Arduino refers to a platform that runs on Atmel microcontrollers (MCUs). An Arduino is a kit (in this case, a circuit board) equipped with a USB port, power connector, USB-to-Serial interface for communicating with your computer, among voltage regulators, LEDs and other peripherals that help you to build and debug your projects quickly and easily.
Read my Arduino tutorial for beginners.
There are several different Arduino kits, each of which has a different Atmel microcontroller installed in it. One of the most well-known examples is the Arduino Uno, which comes equipped with an Atmel ATmega 328P microcontroller. Another common example is the Arduino Mega, which is a more advanced board that is equipped with an ATmega 1280 microcontroller.
The Arduino product lineup has expanded beyond basic microcontrollers to include several connected microcontrollers offering Wi-Fi. This has reduced the differences between Arduinos and connected Wi-Fi controllers such as the ESP32. Let’s focus a bit more on the simpler, lower-power models — that’s where the differences are more prominent.
The 8-bit ATmega 328P MCU that powers the Arduino Uno can consume a downright impressive 5 milliamps (mA) of current in active mode if the CPU is operating at 16 MHZ, or 5.5 mA at 20 MHZ — its maximum speed. Microcontrollers in this power consumption class are called classified as ‘low power’ and can be powered by the smallest of batteries (or supercapacitors).
This opens a window of opportunities to use coin cells, tiny solar cells, or even kinetic energy-powered generators (devices that generate small amounts of power from shaking, vibration, or other movements) to power your Arduino. The ATmega 328P’s maximum operating temperature is 125 C, which is fairly high for a microcontroller. This is something to consider if you want it for automotive use — and the 328P is classified as an automotive microcontroller. The Arduino’s primary use is controlling hardware via GPIO and reading from sensors.
What’s An ESP32?
An ESP32 is a 32-bit system-on-a-chip (SoC). This means that it is entirely self-contained with Wi-Fi, Bluetooth, a microcontroller, and more built into one compact chip. Like the Arduino, it has a processor, flash memory, RAM, and GPIO functionality built in — and it is often sold as part of a development kit (similar to Arduinos, except it has far more of each of these resources). One example of such a development kit is the Adafruit Feather ESP32 board. The Feather board provides the USB port, power connector among other things to help you program your ESP32. One of the largest differences between the ESP32 Feather and Arduino Uno is the inclusion of wireless connectivity in the ESP32.
The next major difference is the CPU — which is capable of operating at 240 MHZ. These high operating frequencies and included wireless modules means that the ESP32 power consumption is many times higher than that of the Arduino and puts it squarely outside of the low-power category. This means that it would be difficult to power an ESP32 with a small supercapacitor or coin cell without aggressively optimizing it to reduce power consumption.
Even in such a scenario, the ESP32 battery life would still be significantly shorter. A small solar panel (albeit a bigger one than the Arduino requires) would still suffice. Both the ESP32 and Arduino devices are wonderful to have, and if you are working on multiple different projects then it’s worthwhile to purchase both of them. They are both in the $18-$20 range and are useful devices to have around. They are also both very user friendly and share a common syntax. You can even use both of them with the Arduino IDE.