The ESP8266 Arduino Combination is a big win for microcontroller and Internet-of-Things hobbyists.
As discussed previously, the Espressif 8266 is a great wireless solution for getting the Arduino to communicate over WiFi. The ESP8266 is a system-on-chip WiFi station or access point. It was first bundled onto a small development board, ESP-01, in 2014 (shown lower left above.) While plagued by flaky firmware, it worked mostly well enough if you did a bit of tinkering. The problem was also that the ESP-01 only exposed two of the chip’s GPIO. This limited how much you could do with the module beyond simple wireless connectivity. So, even though the CPU on the 8266 was much more powerful than the Arduino, you really couldn’t get at its capabilities.
Around the same time, the open source community created the NodeMCU module (see big picture). NodeMCU contains the same 8266 chip, and is also known as the ESP-12 module. NodeMCU refers mainly to the firmware which uses the Lua scripting language. The main difference is that developers now have access to most of the 8266 capabilities. This includes digital I/O pins, an analog input, and various other interfaces for communicating with devices such as SPI and I2C. Since the specs for these modules are open source, there are several manufacturers and low prices. (Presently, the ESP-01 costs $3 and the ESP-12 costs $6.)
So, as of late 2015, hobbyists had three choices for using the ESP8266. First, they could just hook it up to a second serial port on the Arduino to get WiFi by using the modules AT commands. Second, they could switch to NodeMCU and its Lua interpreter. Or third, they could try using the complex Espressif SDK (not many hobbyists did this.)
ESP8266 Arduino Combination moves to next level
During 2016, everything changed. We now have a more integrated ESP8266 Arduino combination.
The more recent versions of the Arduino IDE enables users to use this Integrated Development Environment on many different microcontrollers. Some hobbyists got the bright idea of using this feature to allow compiling Arduino C/C++ programs for the ESP8266. They built and released the ESP8266 Arduino Core. “This project brings support for ESP8266 chip to the Arduino environment. It lets you write sketches using familiar Arduino functions and libraries, and run them directly on ESP8266, no external microcontroller required.”
Now you can just buy an ESP-12 (NodeMCU) module and program it just as you would program an Arduino. The module even contains its own USB connection.
The easiest was to get going is just use the Board Manager in your Arduino IDO to install the core. Here are instructions. And this is where I am going next.