I got interested interested in ESP8266 WiFi module after reading New Chip Alert: The ESP8266 WiFi Module (It’s $5) article. Why is it cool? It’s a WiFi module with an SOC, making it somewhat similar to TI’s CC300. ESP8266 is an UART to WiFi module that you can pick for less than $5 USD.
ESP8266 is a really cheap and easy way to connect any small microcontroller platform (for example Arduino) wirelessly to Internet. The microcontroller on the module takes care of all the WiFi, TCP/IP stack, and the overhead found in an 802.11 network. It’s addressable over SPI and UART, making this an exceptionally easy choice for anyone wanting to build an Internet of Things thing. You can use AT commands to connecyt to WiFi networks and open TCP connections without need to have TCP/IP stack running in your own microcontroller: 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.
The ESP826 module I bought from Electrodragon is simple having only the ESP8266 IC and one other IC in it. The WiFi antenna is integrated to circuit board. The whole module is just size of post stamp.
The other side of the he module des not have any components, just 8 pins I have attached wires to in this picture.
The ESP8266 is a chip that turned a lot of heads recently, stuffing a WiFi radio, TCP/IP stack, and all the required bits to get a microcontroller on the Internet into a tiny, $5 module. It’s an interesting chip, not only because it’s a UART to WiFi module, allowing nearly anything to get on the Internet for $5, but because there’s a user-programmable microcontroller in this board.
There’s a catch, right, there’s always a catch on the cheap products. One thing is that ESP8266 pretty much doesn’t exist outside China. Ordering from China is not a problem nowdays, but when all the documentation is in Chinese, that can be a problem. But fortunately there has been projects to get ESP8266 translated data sheet.
I had enough information, so I need to get one module to test. I ended up ordering ESP8266 module from Electrodragon (check module data). ESP8266 from Banggood.com would have been cheaper bit taken longer time to get because ESP8266 module was listed to out of stock at the time.
The module and IO pins run at 3.3V. For testing I used USB To RS232/TTL PL2303HX Cable Adapter and 5V to 3.3V regulator module to do the connection. I used separate 3,.3V regulator module because I wanted to guarantee that the module can get enough current (over 200 mA on peaks) (some other USB-serial adapter ICs have 3.3V regulators built in them but can’t give enough current out). Wi07c ESP8266 module data and different project examples got me started pretty well.
Test commands at 115200-N-8-1 serial port settings:
AT+CIPSEND=0,n: Where n is the length of the request string.
The results with those were promising. Wiring ESP8266 to your favorite microcontroller platform has pretty much everything you would need to do with an Internet of Things thing. That’s good enough, but things are even better.
It has turned out that it is possible to do run your own coode on the module itself: An SDK for the ESP8266 WiFi Chip turns the ESP8266 into something much better than a UART to WiFi module; now you can create a Internet of Things thing with just $5 in hardware. You can write the software using C programming language and GCC compiler to processor in the module (80MHz Tensilica). Included in the SDK are sources for an SSL, JSON, and lwIP library, making this a solution for pretty much everything you would need to do with an Internet of Things thing. Looks interesting, I just have to find time to test that out…
Review articles on ESP8266
Sites on ESP8266 information:
ESP8266 Retro Browser – Accessing a web site with an ESP8266 serial WiFi module and an Arduino Mega
An ESP8266 Based Smartmeter
Checking Email With The ESP8266 – reads the subject and sender lines from the latest email and displays it on an LCD
ESP8266 Wifi Temperature Logger – using the ESP8266 and Arduino to update a remote Thingspeak server
Places to order:
Source code examples: