WiFi wala Arduino? Meet Esp8266!
‘Esp8266’ or as we like to call it ‘wifi wala arduino’ (well its technically much more than that, but anywaysss…) is something that has been a hot topic in the field of IoT for the past couple of years.
Wifi is an essential bit for any IoT projects out there ‘duhh?’, and you’ve been new this field and now want to start working on projects like that. Great! But wait there’s a catch… our favorite prototyping board “Arduino UNO” doesn’t have onboard wifi, sure you can buy a wifi shield and then you won’t have to leave “Arduino IDE” or ‘arduino wala software’ that you’ve started to like. But that kind of shield will cost you a lot… so, what do we do now? What if I told you that there is a board out there… a board that cost almost as much as a typical Arduino, a board that has ONBOARD wifi, and is compatible with Arduino IDE. Yes, you guessed It right.. the ESP8266.
So, a little background on the ESP8266, this chip was designed as a low cost wifi add on for the Arduino boards, until people realized that the Arduino was not required in the equation, so there you have it, the ESP8266 was born. And everything else is history.
So what is this esp8266?
“The ESP8266 is a low-cost Wi-Fi microchip with full TCP/IP stack and microcontroller capability produced by Shanghai-based Chinese manufacturer, Espressif Systems.”
So in a nutshell, esp8266 is a SoC (system on chip), has Wi-Fi compatibility, can be programmed using Arduino IDE.
We’ll be using the NodeMCU breakout board for esp8266 here for better comparison. There are many breakout boards out there for esp8266 such as adafruit’s huzzah, sparkfun’s thing dev etc. but we’ll stick with NodeMCU. Now for people out there who don’t know what a breakout board is, here’s a brief explanation,
Esp8266 is a chip and to directly use that chip for our projects is pretty much impossible. That’s where breakout boards come in. These break out all the power and I/O pins of the chip onto it’s printed circuit board and add some other neat features such as power regulators etc. Making it easy to use for prototyping e.g. regulating power, code uploading, connecting i/o etc.
Anyways, let’s talk hardware. The esp8266 is better than our traditional Arduino in almost every way. It has a better Processor, more RAM, is more compact etc.
|Architecture||32 bit||8 bits|
|CPU Frequency||80 MHz||16 MHz|
|RAM||160 KB||2 KB|
|FLASH||16 MB||32 KB|
|Busses||SPI, I2C, UART, I2S||SPI, I2C, UART|
Damn! This board this better than Arduino in almost every way, right? Well yes and no…
Let’s talk pros first, ok so the first thing is onboard WiFi. Thumbs up for that! Faster clock(ESP8266 comes with Xtensa® single-core 32 bit L106) and more memory…cool! Runs on 3V3 that means can interfere with all 3V3 devices without level shifters.
Oh and is originally designed to be programmed with Lua. Which has way simpler syntax than that of Arduino’s C.
And believe me the onboard WiFi is a blessing, there’s so much you can do with esp8266 that you can’t even imagine to do with Arduino.
But this all doesn’t mean that esp8266 is replacement for Arduino. First off it only has one ADC pin and that to isn’t that great as that of arduino’s. sure this can be tackled by adding add-ons. But still it’s a problem. Many Arduino libraries are supported, but there are still many out there that are not supported. It is more power hungry compared to Arduino and is not an ideal choice for battery operated projects. And as it doesn’t work on 5V, that means to use devices that require 5volts is a headache.
So what should you choose for your project? To be honest, it basically depends on what kind of project are you working on, if it doesn’t require WiFi and works on battery, we’ll recommend that you stick to Arduino with its better power management and more library support. But if it requires Wi-Fi than its way better to use ESP8266 than using a shield with Arduino.
So what are you gonna use in your next project? tell us in the comments!