The ESP8266 WiFi Module is a self contained SOC with integrated TCP/IP protocol stack that can give any microcontroller access to your WiFi network. The ESP8266 is capable of either hosting an application or offloading all Wi-Fi networking functions from another application processor. Each ESP8266 module comes pre-programmed with an AT command set firmware, meaning, you can simply hook this up to your Arduino device and get about as much WiFi-ability as a WiFi Shield offers (and that's just out of the box)! The ESP8266 module is an extremely cost effective board with a huge, and ever growing, community.
This module has a powerful enough on-board processing and storage capability that allows it to be integrated with the sensors and other application specific devices through its GPIOs with minimal development up-front and minimal loading during runtime. Its high degree of on-chip integration allows for minimal external circuitry, including the front-end module, is designed to occupy minimal PCB area. The ESP8266 supports APSD for VoIP applications and Bluetooth co-existance interfaces, it contains a self-calibrated RF allowing it to work under all operating conditions, and requires no external RF parts.
There is an almost limitless fountain of information available for the ESP8266, all of which has been provided by amazing community support. In the Documents section below you will find many resources to aid you in using the ESP8266, even instructions on how to transforming this module into an IoT (Internet of Things) solution!
Note: The ESP8266 Module is not capable of 5-3V logic shifting and will require an external Logic Level Converter. Please do not power it directly from your 5V dev board.
If a board needs code or communicates somehow, you're going to need to know how to program or interface with it. The programming skill is all about communication and code.
Skill Level: Competent - The toolchain for programming is a bit more complex and will examples may not be explicitly provided for you. You will be required to have a fundamental knowledge of programming and be required to provide your own code. You may need to modify existing libraries or code to work with your specific hardware. Sensor and hardware interfaces will be SPI or I2C.
See all skill levels
If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.
Skill Level: Competent - You will be required to reference a datasheet or schematic to know how to use a component. Your knowledge of a datasheet will only require basic features like power requirements, pinouts, or communications type. Also, you may need a power supply that?s greater than 12V or more than 1A worth of current.
See all skill levels
Based on 1 ratings:
9 of 9 found this helpful:
A lot of bang for the buck! Overall it’s a pretty solid little board. It comes preloaded with firmware that implements an AT command interface. I recommend updating to the latest AT command firmware, especially if you are going to use UDP mode of communication.
I haven’t used it with TCP connections, but the UDP mode seems to be very robust. I’ve had it running for over 3 days sending UDP packets every 2 seconds and it’s still going strong, no hiccups with WiFi connection or serial data transmission to and from the module. I’m sure my awesome software design and coding has something to do with it, but the module is holding its own :)
Range seems pretty good, I had no problem connecting to my router indoors from anywhere inside, and I even took my setup on a breadboard out to the furthest point in my yard, about 150 feet from the house and was able to connect to my router down in the basement through solid concrete poured foundation. Not too shabby.
Since they are so economical I bought 2, and I’m glad I did, as the description mentions do not hook this up to more than 3.3 volts. When I went to update my firmware on one of the boards I didn’t have my glasses on and inadvertently connected the GPIO0 to USB 5v rather than ground the next terminal over. When I noticed the mix-up I switched it to ground and successfully flashed the new image, but when I try to boot up normal it just spews garbage out of the serial port, so it is very sensitive to the wrong voltage.
I don’t have any issues with the board, but I can’t bring myself to give it a 5 star rating as I believe that should be saved for special circumstances, even though this module is lots of bang for the buck I feel like there could be a better ESP8266 board so I’ll call it a 4.5 and recommend you play around with one if you haven’t already.
Looking for answers to technical questions?
We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.
Log in or register to post comments.
I made a few cool tutorials for these modules:
How To Make Phone Calls and Send SMS With ESP8266 and Arduino
You can also use the ESP8266 as a stand alone micro:
How To Flash The NodeMcu Firmware On The ESP8266
and add more pins to it:
How To Add More GPIO Pins To The ESP8266
I have two tutorial playlists in my channel:
ESP8266 With Arduino
ESP8266 on its own with NodeMcu
and you can get the code for all these in my website
What version of the arduino IDE are you using? mine doesn't recognize the wifi.httpPost() function.
Will you carry any of the other common packages (or possibly roll your own with breadboard-friendly pin spacing)? This would be great for IoT considering the ability to leverage the module without an external MCU. Unfortunately I've gotten a couple ESP-03s from ebay and they were lemons.
I'm not crazy about the 2X header either. If Sparkfun does roll their own some day, PLEASE rethink the header and use a single row. It would be nice if it could interface directly with a pro-mini too.
Does anyone know if there's an AT command to just return the IP address of the ESP8266? I'd rather not have to parse it out if I don't have to.
Currently AT+CIFSR returns:
+CIFSR:APIP,"192.168.5.2" +CIFSR:APMAC,"2a:ee:32:a2:97:2b" +CIFSR:STAIP,"192.168.1.128" +CIFSR:STAMAC,"28:ee:32:a2:97:2b"
Most tutorials out there seem to suggest it should just return the IP and not all the extra info.
It looks like you have it configured for both Station and AP mode, so it has two IPs, one for each mode. If you set it to station only "AT+CWMODE=1" you will get less data to parse.
That said, the command I use to get just the station IP is "AT+CIPSTA?". If you need to use both Station and AP mode you can also get the AP IP address with "AT+CIPAP?".
On my site I have some write-ups on a prototype project I am working on, I still have more articles to publish on the subject, but this one discusses the commands I'll be using for various tasks.
And now programmable with the Arduino IDE!!!!! github.com/igrr/Arduino
We've now moved this to the esp8266 account: http://github.com/esp8266/Arduino
You should carry the olimex version: http://microcontrollershop.com/product_info.php?products_id=7067
The way I use these is I put pins on the outer connections, those are the pwr, gnd, rx, tx. Then it fits in breadboard. Then I use 4 pin female connector on the remaining 4 center pins. CH-PD has to be at vcc so I soldered that one. Works great and you can use jumper wires for programming or using the GPIO's.
Holy crap, how is it so cheap?
well ... why has it taken so long?! Finally! a wifi module to add to small projects that doesn't cost more than the all the other components! This breaks some barriers.
Yes, I'm also wondering why others are so much more if this one is so cheap.
Look at the price for 5x from China and re-evaluate your question.
Pity that it is the old version and not the newer one like this one:
They are shielded (good idea for an RF device!) and have a lot more I/O pins broken out - the module has a full featured OS and for simpler applications it can function completely standalone (there is a free toolchain available for it), without another MCU. But it sucks when you have only about 2 available I/O lines.
Whether the module costs $2 from China and it takes a month or two to get it (if it arrives at all) or whether it costs $7 from SparkFun and you get it quickly and reliably is up to you to decide whether it is worth for you.
Any thing from China tho...
Ummm where do you think these come from? China
really!? i though sparkfun was 100% original and jut had a terrible business model
Can't tell if you're joking.. SF has an excellent business model. They resell (sell their own in-house designs) at huge margins. Almost any electronic component you buy is most likely manufactured in China, Taiwan, Thailand, etc. and SparkFun is no exception. Why is that a bad thing? Everything coming out of factories is QC'd.
It's almost impossible to get ANY device that does not have at least some parts made/assembled in China. No matter who you order it from.
The ESP8266 I recently received from SparkFun is running version 0.9.5 of the AT firmware with a baud rate of 115200. This was too fast for my Arduino (especially for software serial). To lower the baud rate to 9600 I had to connect it to my computer via FTDI and send it the command AT+CIOBAUD=9600. Also, the wiki link in the Documents section labels the inner pins as "NC". This is incorrect. The pins are labeled correctly at http://www.electrodragon.com/w/File:ESP8266_V091.png. Make sure to connect the CH_PD pin to VCC. I had to discover this via a lot of searching and trial and error. Hopefully this saves someone some time.
I realize Sparkfun is just sourcing these modules from China, but I still expect a certain level of quality in product posting, such as including a pinout! I just want a picture, on the product page, telling me for certain what pins do what. You must have tested it - so somebody at Sparkfun knows how to connect the module. I shouldn't have to crawl through posts and unrelated links hoping to find a pinout. Come on guys! Thought you were better than that - it's why I buy Sparkfun.
I’ve bought a few of these from Sparkfun and they have been working great for me. See my review titled “The little module that could, and probably will!” Most people seem to use this module with TCP connections. I am using it with UDP sockets and there isn’t a lot of information out there. If you need information on using UDP sockets check out this series of articles I have published on a prototype I am creating using the ESP8266 with UDP. Also you can check out my Google+ collection on the ESP8266 prototype here.
I looked through all the product links, but I didn't see an actual pinout for this particular product. They're not labeled on the board itself; am I missing something obvious?
Why are there export restrictions when it was imported in the first place? I know... silly question, just ignore me. I love these, they are awesome.
It should be noted that the last three modules I got from here had no firmware installed on them. Easy fix with the electrodragon firmware installer but it did make me doubt my sanity for a moment.
Here's a library I made for these modules that makes logging data to data.sparkfun.com (or other phant servers) a breeze: esphant-arduino
Does it support/provide SSL? I can't find any details about it so I'm guessing not.
I read on some of the linked sites that this supports WPA2-PSK. Can this be confirmed (and added to the features list)?
Also, is there more info on how to use this as an IoT solution on it's own?
I can't vouch for the WPA2-PSK, but you can find more info on how to write/compile new FW for it here: http://www.esp8266.com/wiki/doku.php?id=loading_firmware
A kit is available containing an ESP-12 development system and all parts needed to get started tinkering with a 1-wire sensor system. Here is the store website link for that:
ESP UNO-WIRE KIT
You could have stocked a great, OSHW, EU-made version, that has all the GPIO pins available at a breadboard friendly spacing: https://www.olimex.com/Products/IoT/ The price is pretty good, too.