Arduino Uno and all the rest of the Arduino boards has been the prefered board in the maker community. But rivals has arrived long ago some more extensive and powerful – but others like ESP8266 are competitive priced and much more powerful.
Everybody knows that you can’t compare an Raspberry Pi computer with an Arduino MCU board – but does it make sense to compare the ESP8266 with an Arduino?
Looking only at the technical specifications it is clear that Arduino doesn’t really stack up with the ESP8266 – 16Mhz vs 80Mhz. And 32K bytes flash memory vs ESP8266 impressive 4MB with support up to 16MB.
So looking only at the specs the Arduino will never be able to compete with ESP8266 – but the truth might be a little more complex than you initially might think.
Analog and standalone projects
If you doing a project with a analog sensors then you should definitely go with the Arduino – the Atmega 328 chip has a staggering 6 analog pins whereas ESP8266 only has a single analog ADC pin.
Often you will come to short with single analog pin on the ESP8266.
If your project is not connected to the Internet then a single Arduino board should be the ideal solution. If you on the other hand is creating an IoT project it can be a good idea with an Ethernet shield or connecting to your Wifi using an external ESP8266 and AT commands.
Battery powered projects
If you are creating a battery powered project where you don’t have access to main power – then you have to consider
the power consumption. Even a few hundreds mAmps can quickly drain a even a large 18650 battery.
Arduino is the champ when running on a battery – it uses much less power and the sleep routines are much better supported. ESP8266 on the other hand is a power hog since it consumes up to 600~700 mAh and making the board sleep properly is much more difficult.
I have tried to make the ESP8266 sleep for extended periods – but I must admit that I have not quite succeed doing this yet. I usually end up with a flat battery within a couple of days – I find this really frustrating to be honest.
I would like to progress – so please leave a comment if you have have been able to make the ESP sleep properly!
Before AiThinker introduced the marvelous ESP8266 board one of the most searched terms was Arduino Wifi Tutorial. The missing Internet connectivity is one of the biggest drawbacks with the Arduino platform – since this requires specialized shields and extra libraries. The extra libraries also requires extra memory which the Arduino already lacks.
So when ESP8266 came along with plug-and-play connectivity it was a true and long awaited blessing – finally we could get on the Net with all our different DIY projects.
Although the ESP8266 draws more power than an Arduino it is the greatest board for IoT projects – and the price is very low, you can buy a NodeMCU LUA for less than 5$.
The ESP8266 has a problem where you risk starving the Wifi connection if you uses the inbuilt Delay function in the Arduino library. You should always remember to the Yield function instead. This problem has been solved in the ESP32 since it has two processors – one for MCU code and another for the Wifi connection
- Running on batteries – Use the Arduino as it saves juice on the battery
- Standalone projects – Use a Arduino clone if possible – much cheaper
- IoT projects – Use the ESP8266 or ESP32 – forget about Arduino