The ESP8266 microcontroller chip is out there for almost an year now and it has already made a huge boom in the makers and IoT communities. It is cheap ($5), it has built in WiFi capabilities, and as of a few months ago, it is Arduino compatible.
Besides the unique built in WiFi capability, the ESP8266 has its own 32bit CPU running on 80MHz, up to 4MB flash, and can be extended with other devices via the GPIO pins which can act individually or as SPI, I2C or UART interfaces.
The early versions of the chip were used as add-on modules which provided WiFi access to an Arduino board. The communication was done via the exposed Rx and Tx pins and by using series of AT commands. However, after a while, the manufacturer released an SDK allowing code to be uploaded directly on the ESP chip and thus removing the need for a separate driver board. But still, the experience wasn’t nice, since the tools were buggy and the code was to be done in Lua. Then, after months of adaptations, an Arduno IDE port was release targeted for ESP8266, and it was a game changer.
What I did as a POC of the entire platform is a Colored WiFi light that I can control via my phone browser. My whole idea is to have this integrated in a home automation system, but let’s go step by step.
- NodeMCU devkit (preferrably for ease of usage and testing; or other ESP8266 board properly connected via FTDI)
- A WS2812 / 2811 / NeoPixel LED strip. (any would do, just keep the number of LEDs low, so you won’t need external powering. You can even use PiMoroni’s Unicorn HAT)
- Jumper wires
- Micro USB cable (if NodeMCU) is to be used