The ESP8266 is the answer to “I want something with Wifi.” It’s basically the answer to everything IoT to so many engineering problems that have plagued the hobbyist and commercial world alike. The chip is a processor (80MHz Tensilica) with integrated RAM, some ROM, and a WiFi radio. It’s CHEAP, like $4/ea cheap! Or $5 if you want to get ESP8266 in a module type carrier board. The power consumption is reasonable (~200-250mA @ 3.3V).
By default when you buy these neat little boards, many of them come with the “AT” firmware, which is useful if you want to connect it to for example to Arduino board. You can simply connect any microcontroller to this module and start pushing data up to the Internet. This might be why it seems that ESP8266 has pretty soon become every hacker’s favorite WiFi chip.
Because ESP8266 has a programmable processor in it, it would be a good idea to look at the ways to program your IoT application to run in it. Programming of ESP8266 was first had because of lack of documentation and toolsets. Now there is a selection of tools available.
An SDK for the ESP8266 WiFi Chip turns the ESP8266 Internet of Things thing with just $5 in hardware. You can write the software using C programming language and GCC compiler. How to Directly Program an Inexpensive ESP8266 WiFi Module article tells how you can get started in programming ESP8266 using C language SDK. Programming the ESP8266 is a lot like programming an Arduino. How to Directly Program an Inexpensive ESP8266 WiFi Module article has several examples that show how easily you can communicate to Internet and control GPIO pins. There are a few options for building the toolchain on Linux and OSX, plus some options in Windows.
Another approach to programming ESP8266 is what is offered by NodeLua and NodeMcu: Lua scripting. NodeLua is the FIRST open source lua based firmware runs on ESP8266 that offers nodejs-like APIs. NodeMcu is an open-source firmware and development kit that helps you to prototype your IOT product within a few Lua script lines. There are examples how you can make NodeMcu to communicate using MQTT and connect to ThingSpeak.
Now there is third option that should interest those familiar with Arduino: After many months of coding, the Arduino IDE supports the ESP8266 module. Arduino IDE Support for the ESP8266 arduino introduces esp8266/Arduino project that brings support for ESP8266 chip to the Arduino environment.
Setup is promised to be fairly simple with downloads for Linux, OS X, and Windows. The basic IO functions of the Arduino IDE are available: pinMode, digitalRead, digitalWrite, and analogRead. Most of the WiFi functions work just like the WiFi shield library. This is a huge deal for ubiquitous IoT development. The one thing that was seriously missing from the Arduino toolbox was an ultra-cheap, easy way of building a simple Wi-Fi connected object…and here it is.
All those alternatives look interesting.