Introduction: ESP8266 Wi Fi Module Explain and Connection

Picture of ESP8266 Wi Fi Module Explain and Connection

Hi.

I am Matej and in this instructable I'm going to show you how to use the ESP8266 Wi-fi module. I know that there is a lot of videos and forums telling how to use this device, but none of them were colorfull or easy enaugh to understand. I also didn't manage to make the device work by following other's people steps. I hope that you will find this tutorial usefull.

I also apologize for any misspelling.

*A little update. As promised, I made another instructable. This is about much easier wireless comunication, the Bluetooth. I Combine Bluetooth AND ULTRASONIC SENSOR. I also used this in my car for a school project. Make sure to check that one out :) *

*UPDATE*

MAKE SURE YOU WATCH MY NEW INSTRUCTABLE ON AN ARDUINO WEATHER STATION WITH BLUETOOTH THAT WILL SOON CONTAIN ESP8266 AS I PROMISED I WILL DO A PROJECT WITH IT AND A WEATHER SERVER SOUNDS FANTASTIC.:

https://www.instructables.com/id/DIY-Weather-Statio...

Step 1: THE ESP8266

Picture of THE ESP8266

To make everything work, you need to understand what each part does and what is the pinout for that part.

I'll start with the ESP8266. As shown in the picture, ESP8266 has 8 pins, 4 in the row of 2. The first pin on the top left is GND. The two pins right from the GND are GPIO 2 and 0. I'm not going to use these pins, as they are not impirtant for the operation. The pin on the top right side is the RX pin and the pin on the lower left is TX. These are the pins for comunication. The middle pins on the bottom are CH_PD(chip power-down) and RST(reset).

The main thing to remember is, that this device works with 3.3V;even the RX and TX pins. Arduino or many USB to serial converters work with 5V. The solution for this project is in the next step.

Step 2: THE FTDI232R

Picture of THE FTDI232R

For this project I used this FTDI232R module. I bought it from ebay to have a reliable USB to serial converter. I didn't noticed it when I bought this part, but when I got it I saw, that it has a jumper to switch the operation from 5V to 3.3V. This makes everything easy, as we can connect the two parts together as it will be shown in the later picture.

I also soldered an extra connector for the 3.3V power to make connecting easy.

If your device doesn't have this option, than I will tell you how to work with 5v devices in the next few steps.

(I bought this ft232r and came in a nice package http://www.ebay.com/itm/400800529480?ru=http%3A%2F%2Fwww.ebay.com%2Fsch%2Fm.html%3F_ssn%3Dsseariver2009%26_armrs%3D1%26_from%3DR40%26_sacat%3D0%26_nkw%3D400800529480%26_rdc%3D1 )

Step 3: CONNECTING THE PARTS TOGETHER

Picture of CONNECTING THE PARTS TOGETHER

The picture shows how to connect the two parts together.

The CH_PD and the RST pins must be high(connected to 3.3V) to have a normal operation.

If you have any questions about the connections or that your part isn't working, write in the comments :)

Step 4: A Little Bit of Hardware

Picture of A Little Bit of Hardware

As you have already noticed, those 8 pins of the ESP8266 are not breadboard friendly. So that's why I made an adapter with female and male headers. I hope that the pictures describe it well.

Step 5: Connecting to the Computer

Picture of Connecting to the Computer

The pictures are showing the final resault. if you connected everything right, like I sowed you before, you're good to go.

To connect the FTDI232R to the computer, I used this USB mini cable. Than I installed the drivers and connected power to the ESP8266.

Step 6: Talking to the ESP8266

Picture of Talking to the ESP8266

To comunicate with the ESP8266, I used Arduino IDE( http://arduino.cc/en/main/software ) and don't be confused of the version 1.5.8. I have Arduino DUE, so I need that version.

So, when you open the IDE, choose the correct serial port for your FTDI and click on the Serial monitor.

Once you have opened the Serial monitor, you must set the first option to NL & CR and the baud rate. When it comes to baud rate you have 2 choises. I bought this esp8266 around 3 weeks ago. Therefore, it has firmware 902 apart from older esp8266 that have firmware 900. For this newer model, the default baud rate is 9600, for the older is 115200.

Once you set that, type in the box AT and it sould return OK. This device comunicates via AT comments( http://www.electrodragon.com/w/Wi07c )

(every command step is a separate picture)

To check firmware type AT+GMR

To set the module to accept connections type AT+CWMODE=3(my was already in this mode, as shown in the picture)

To search Wi fi networks around type AT+CWLAP
It will display Wi fi networks around you

To connect to a network type AT+CWJAP="Wifi SSID","password"

To find your IP adress type AT+CIFSR

After every command it returns you OK

You can also see it transmiting Wi fi signal on the last picture.

Step 7: COMMUNICATION WITH 5 VOLT DEVICES

Picture of COMMUNICATION WITH 5 VOLT DEVICES

So, if you have a communicator like ftdi, that doesn't have an option to set the logic voltage, do the following.

Almost every USB to serial converter has built-in voltage regulator for 3.3 volts(the chip operates with that). So, you can find that pin or a pad and connect it to the pins like normal. FOr the communication is a liitle bit trickier.

The signal from the esp8266 from TX pin is 3.3V which is enaugh for the communicator. But the 5v from the TX of the communicator can kill the esp8266!!!!!! Therefore you must build a voltage devider. If you don't know what that is; it's a simple construction made of resistor. In our case, we will use 1k and 2k resistor. We connect these two in series with TX pin of the communicator to 1k resistor and GND to the 2k resistor. The junction between the resistor is connected to the RX of the ESP8266.

The picture describes this perfect.

Step 8: OTHER

You can also watch this guy who also explained how to update the firmware for older models. He did all the same, but I showed it much slower and colorfull. Credits to him as well. ( https://www.youtube.com/watch?v=9QZkCQSHnko )

Now I'm working with connecting ESP8266 to Arduino(Uno or Due) for email notifier and making use of a little ethernet board, to make wifi spot.

If you have any questions you can write down in the comments. I will respond to as much as I can.

Thank you for watching :)

Comments

Jason Turcotte made it! (author)2015-07-31

Thanks for this. I used it as a guide to get me started.

hi, can you explaine hot to wire breadboard\ywrobot 3.3/5 v and esp 8266?

YOUR CAPS LOCK IS ON!!!!1!!

I'm glad it helped you started. Make something nice and share it. :)

imann7 made it! (author)2017-11-26

hello

please help,I have 2 board. how can connect it to arduino ?

i have

Matej Blagšič (author)imann72017-11-26

If the module and breakout board are compatible with each other, than first solder module onto it and solder some male headers onto that breakout board. Connect everything to arduino as I wrote in the article.

BenaL (author)2017-11-24

Can it be hooked with lily tiny/ twinkle ?

Matej Blagšič (author)BenaL2017-11-25

Yes you can. I would implement a SoftwareSerial library and connect it to esp8266 and talk to it and get data via serial. There are other ways but this is one that i could think for. But that means to sacrifise 2 pins!

JHolland181 (author)2017-11-08

Good afternoon,

Thank you for the write up/tutorial! Is the only bit of coding in step 6?

MihirD7 (author)2017-11-01

Hi,
I am struggling with ESP8266 for past 2 weeks.

I have made all the connections as you and several other tutorials have mentioned. I am using an external power source for the ESP.

I am not getting any response for AT. The serial monitor just remains blank. I have tried with different baud rates(9600 & 115200). I have noticed that whenever I connect CH_PD pin to 3.3V, my onboard red LED of ESP goes off. When I remove the CH_PD pin from 3.3V, the LED turns back on. All the tutorials have mentioned that the CH_PD pin must be kept at 3.3V. But on making this connection my LED goes off and the voltage between GND&VCC and also GND&CH_PD drops to about 0.8V when measured with a multimeter. Can you please suggest what needs to be done to get the ESP8266 working.

Matej Blagšič (author)MihirD72017-11-01

I would think that from your description of the problem that your esp8266 board is faulty as it shorts something inside and therefore yor input voltage drops. I would suggest to check for shots, wiring and if nothing works, then you can start blaming the board. Faulty esp chips are not rare. At my university, a third of them died from "improper soldering" and a lot of them died because of too many flashes. That way the board bricks itself. Keep me updated.

MihirD7 (author)Matej Blagšič2017-11-02

Hi,
To check the possibility of esp8266 burning out, i bought a new esp module today. However, exact same problem persists. Following are the connections that I have done:

ESP GND -> external GND
ESP Vcc -> external 3.3V
ESP RST -> external 3.3V
ESP CH_PD -> external 3.3V

My external source is a 5V power source with 2A current rating. I have used three 1k resistors to get 3.3V. I had also checked the voltages with multimeter before connecting to the esp module. All tge voltages were between 3.27V to 3.3V. I am really stuck at this and I'm not understanding what am I doing wrong. Please any help would be greatly appreciated!

Matej Blagšič (author)MihirD72017-11-03

Hi. I see. You can never, well for the most of time and only for really small current devices, use resistor dividers as power source. You can use them to step down signal voltages like between esp and 5v arduino but not for huge and fast signals as resistor dividers are slow. You should allways use fet signal switching for loads of data at high speed.
To get back to your problem, as esp uses A LOT of powerr, as for 70-80mA the resistor divider colapses and therefore your output voltage drops. Use a proper 3.3V regulator from your 5v power source or a dedicated 3.3v power supply that can handle at least 200mA

MihirD7 (author)Matej Blagšič2017-11-03

It worked with a 3.3V voltage regulator!! Thanks a lot!

MihirD7 (author)Matej Blagšič2017-11-03

Thanks a lot for the info! Will surely try this.

Deepak10 (author)2017-05-21

Is it possible to connect arduino board and wifi ESP8266 module without additional FTD1232R?

Utpals19 (author)Deepak102017-09-28

Yes you can connect ESP8266 with arduino board without FTD1232R.. You need to connect the ESP8266's VCC, CH_PD and RST with 3.3 volt arduino's supply. Even you can directly connect serial UART pin of both devices. It will work but better use any voltage level converter to avoid any damage to ESP8266.

Utpals19 made it! (author)2017-09-28

Hi!! Thanks for this tutorial it's a good one n worked for me.

Syed HamzaN (author)2017-07-11

Hey. I used arduino to upload the code to my esp8266. Following is the error I am getting. Can you kindly help me with this?

Otniel96 (author)Syed HamzaN2017-07-11

check out ur usb connections is that correct? that problem can be from the board, sory for my english language

Join TechH (author)2017-07-01

You have successfully connect FDTI 232 R with esp 8266, but how to connect arduino with esp 8266 ?

Mark JanezS (author)2017-06-18

Hey, first of all, thanks for making this, and i am just curious, if you're from Slovenia... Just wondering, because i live in SLO. It's just nice to see my nation on this website...

Yep, sm ja. Hvala ti. Zaključujem srednjo, in po tem planiram naredit novo verzijo za esp8266 in nekaj v povezavi z merjenjem, kot moja vremenska postaja.

*English*

Yes, I am. Thank you. I'm finishing high school now and I'm planing to make a new version of the tutorial for esp8266 along with measuring as in my weather station project.

No, super! Veliko sreče pri zaključku srednje šole in izdelovanju novih projektov!

nalakaaminda (author)2017-04-29

Thanks I got it going

MathiasZ2 (author)2017-04-08

i made all stepps for it successful.

But it's impossible to get a WIFI connection. What's running wrong?

Greetings, Mathias

RakeshA5 (author)2016-04-02

अगर कोई भाई हिंदी समझता हो तो प्लीज मेरी प्रॉब्लम को सॉल्व करें मुझे esp 8266 ki gpo pin0 or gpo 2 से led ऑन ऑफ करनी है इंटरनेट के थ्रू मेरी सारी एटी कमांड ओके आती है सीरियल मॉनिटर पर ? लेकिन नेट से कनेक्ट नहीं हो पा रहा मेरा whatsapp नंबर है 9811340617 प्लीज मुझे whatsapp पर कांटेक्ट करें अगर कोई मेरी प्रॉब्लम को सॉल्व कर सकता हो तो आप सभी का धंयवाद

RakeshA5 (author)RakeshA52017-03-16

Hi

RakeshA5 (author)RakeshA52016-04-09

Hi

ShubhangiK1 (author)2017-01-17

How to interface ESP8266 12E with PIC microcontroller through SPI?

GeeksTipsDotCom (author)2016-12-18

Also, if you use Arduino code to program
the ESP, I highly recommend you to use ESP.config() and setup static IP,
Mask and Gateway. In this way you will save some time and delay when
connecting to your router or Access Point. ESP.eraseConfig() method can
be used to clear the cache in the end.

Arduino tutorials

Harsha Hanamshet (author)2016-11-21

My wifi module is not responding for the commands as OK

Zaveribhai (author)2016-10-29

After establishing connection how to give the data on to the internet

VaibhavB40 (author)2016-10-16

Nice article....

My que. Is how to access internet once i connected to network hosted by ESP8266.
Means how to connect ethernet / broadband modem to ESP8266 to have access internet.

Thank you
Waiting for your precious reply

You can ans me on
bagal.vaibhav74@gmail.com

jaison0501 (author)2016-09-24

When i connect all the pins as in datasheet, except ch_pd.
But when i connect ch_pd to 3.3v , the red light on esp8266 goes dim. I used 3.3v, 250 mA power supply. What is the reason for this.please give me an answer.

crondd (author)2016-09-22

can I do secured communication(https)with this?

dunk8888young (author)2016-09-19

Hi can this esp8266 be used to surf the web like normal? just wondering how to do it,i think it needs a driver to do so,can any one help me with this? ive got the devkit board so it has usb etc thanks

mythilikumaresan (author)2016-09-12

"Is the ESP8266 Uart Serial to Wi-Fi Wireless Module reliable with Arduino for long term projects?

SasikumarP (author)2016-08-26

Dear sir,

I am sasikumar right now i am using ESP8266 first i am connecting esp8266 to FTDI chip and i by using cool term i am giving the AT commands to it and it is working fine and also i tested with TELNET app what ever i am pinging the messages from mobile app it is displaying on coolterm but when i am trying to connect TX and Rx pins to LPC1343 microcontroller it is immediately going to disconnecting stage so pls help me regarding this issue..

PedroP124 (author)2016-08-03

I don't know really where to look, so if anyone can help me, i'd appreciate it. I'm working with an ESP module connected to an arduino nano. I used this sketch (https://github.com/bonggeek/Samples/blob/master/Arduino/SerialRepeater.ino). The module turns on an the communication seems to work. However, any command I type in, even just AT, gives me an ERROR response. Oddly the AT+CIOBAUD works just fine and gives me OK. Does anyone know what it might be?

AnugrahP (author)2016-07-14

Thanks for the tutorial,

I'm connecting ESP8266 with Atmega8 via uart and it further connected to an android device through TCP. It will Simply transmit the received data from Atmega to android device via TCP. Do i need to program ESP8266 for this or hoe it will work.

Thanks.

AnugrahP (author)2016-07-14

Thanks for the tutorial,

I'm going to connect it with android phone through TCP. How can I find out the socket port number of ESP8266 to be connected.

Matej Blagšič (author)2015-01-04

It's almost 1000 views. Thank you all for watching and I hope that you made something great with that. And remember, have fun :)

Hi I am using esp8266 12E module and have connected arduino with the module. Connections are as follows

ESP8266 ARDUINO

Tx Tx

Rx Rx

Vcc 3.3v

GND GND

EN 3.3v

And reset pin of Arduino to GND.

But when i am using serial monitor and AT Commands I am not getting any response.

ganeshm24 (author)kushal12112016-06-22

Hey..
if you upload blank code to ardunio and you want to acess through serial monitor of arduino then can connect these pin connection....


but if you are using serialsoftware then you should cross connect RX and Tx pin

cheers Arduino..

polar demon (author)kushal12112016-04-21

hey... just connec the Tx pin to Rx and Rx to Tx...

i think it should work....

cheers to the Arduino...

RajeshwarJ (author)2016-03-30

I'm using Arduino nano with ESP8266 but after establishing all the connections when I use serial monitor to communicate using AT commands I do not get any response.

There is no error coming up either regarding baud rate or anything, but sometimes IDE freezes.

AntInvent (author)RajeshwarJ2016-05-24

Are you using 3.3v for the serial logic? Most Nanos will be using 5v so you have to shift it to talk to the ESP8266...

geethusdayan (author)2016-04-22

hi there,

i am a newbie for esp 8266. i use it with a arduino uno. but not with a ftdi converter. i take the 3.3v supply from uno itself. every time i send an at command to 8266 the only response i am getting is ‘-1′ (minus one). whats wrong here?.. is it the absence of ftdi? pls help me out

AntInvent (author)geethusdayan2016-05-24

You also need to convert the TX and RX logic from 5v (used by the Uno) to 3.3v (used by the ESP8266). You could use the FTDI method here or purchase a logic level shifter (like this https://www.sparkfun.com/products/12009). They are very cheap and useful components so it might be worth buying a few :)

About This Instructable

668,978views

301favorites

Bio: I'm a high school student that likes electronics, Arduino projects and photography. I began working with electronics when I was 11 and got my ... More »
More by Matej Blagšič:Wi-fi weather station with BynkSimple 20 LED VU meter + datasheet guideGuide to Neopixel
Add instructable to: