The ESP8266 has been gaining quite some popularity in the Internet of Things space. It is affordable and tiny and has multiple programming options. You can use Lua or C code to program the chip and it can virtually do anything you can also do with an Arduino.
Some folks in the ESP8266 community have been debating about how great it would be if there were a third programming options. The ESP8266 should be made compatible with Arduino code! Richard Sloan and Ivan Grokhotkov eventually stepped to the plate and did the work to add the ESP8266 as a board to the Arduino IDE. And that is great news for the Arduino afficionados, because at $5 each, you can afford to buy 5 or 6 ESP8266 chips for the price of a single Arduino board.
Please find a very interesting interview with Richard Sloan on makezine.com on their considerations and thoughts.
Giving it a try
I wanted to give Arduino programming on the ESP8266 a try and see if it’s difficult to get started and how mature the environment is.
Installing it was really a walk in the park. Once you have the Arduino IDE installed, it’s a matter of:
- Adding a board configuration to the IDE (Enter http://arduino.esp8266.com/stable/package_esp8266com_index.json into Additional Board Manager in the preference dialog)
- Installing it (from Tools > Board menu -> Boards Manager, install esp8266 platform)
- Selecting it (from Tools > Board menu)
That’s it, the code that you’re keying into the Arduino IDE will then automatically be compiled and flashed to the ESP8266 using the usual Arrow-button.
When it comes down to the installation and first attempts to compile something, the IDE and installation feels very easy, solid and mature.
When it comes down to libraries and drivers, quite a lot of the existing Arduino code can be re-used. I was for example very impressed with an example by Settakan Suwannawat, who linked up a TFT touch screen to the ESP8266.
However, network/Wifi functionality doesn’t seem so straight forward, and the community isn’t very far in re-implementing some of the core networking functionality yet. There is a web-server and web-client, but e.g. SSL and MQTT are not supported yet.
It’s still very early though, and hopefully support for a more elaborate set of protocols will come.
I want that TFT touch screen
Yes, I want it badly, I do like what Settakan did:
I just want a slightly larger version. It really looks like an excellent component to build a room-controller for on the wall in a home-automation setup. And I’m afraid I couldn’t resist the temptation and already went to AliExpress to order this panel:
I’ll probably prototype it using the Arduino IDE first, similar to what Settakan Suwannawat did, but I’ll probably eventually try to build it using the native ESP8266 SDK to pull in MQTT and SSL support.