Arduino UNO + ESP8266 WiFi Module



This instructable will show you how to connect an ESP8266 WiFi Module to an Arduino UNO.

EDIT: For info on how to install the ESP8266 library, see here.

Step 1: Wiring

Wire the ESP8266 Module, the Arduino UNO, and the breadboard as seen in the image.

When complete the pins should be connected as follows (ESP8266 pin-out is shown for reference):

  • ESP8266 TX — Arduino UNO TX
  • ESP8266 GND — Breadboard GND
  • ESP8266 CH-PD — Breadboard 3.3V
  • ESP8266 GPIO2 — Breadboard LED
  • ESP8266 RST — Breadboard RST button — Arduino UNO GND
  • ESP8266 GPIO0 — Breadboard 3.3V/Breadboard FLASH button — Arduino UNO GND
  • ESP8266 VCC — Breadboard 3.3V
  • ESP8266 RX — Arduino UNO RX

Step 2: Flashing

  1. To flash your ESP8266 module, first check that the GPIO0 pin on the ESP8266 is connected to the FLASH button on the breadboard.
  2. If there is a program currently running on your Arduino, upload an empty project file to the Arduino to avoid interference while flashing WiFi module.
  3. Open the attached Arduino project and replace the SSID and PASSWORD at the top with your WiFi-network info
  4. Open your serial monitor (ctrl+shift+m), set the baud rate to 115200, and the line formatting option to "Both NL CR"
  5. Press the RST button while holding down the FLASH button on the breadboard — you should see a blue light on the Wi-Fi module and the TX led on the Arduino will light up. You must upload code while the TX led is lit.
  6. Now, compile and upload code (see video for procedure and expected results).
  7. Record the IP printed in the serial monitor for use in step 3. If the flash fails try the above steps again. If the serial monitor is printing "." repeatedly, you have entered your WiFi information incorrectly.

Note: the RST button connects the RST pin on the Wi-Fi module to ground. The FLASH button connects the GPIO0 pin on the Wi-Fi module to ground.


Step 3: Usage

Now, for normal operation, connect GPIO0 to the 3.3V rail on the breadboard. This can be done by moving the wire connecting GPIO0 to the button over to the positive rail of the breadboard.

To connect to your ESP8266 module, ensure you are connected to the same network as it is, and go to the IP address from step 2 in your browser. Alternatively, connect directly to the ESP8266’s WiFi network on your laptop and navigate to IP in your browser (in my experience this is far less reliable, using a shared network is preferred).

3 People Made This Project!

  • Arduino UNO + ESP8266 WiFi Module

Did you make this project? Share it with us!


*6 WAYS* to Make a Cardboard Robot Costume REALLY Robotic

Motion Galaxy Lamp

 Lighted 3D Moon Phase Clock

Vintage Mini Amp

3D Printed Student Design Challenge

Reclaimed Materials Contest

Organization Contest



the tx light is not lighting up? please help


Question 1 year ago on Step 2

Hello I am new to WiFi and UNO and I like to know how things work. In order to be able to change it and make it behave the way I like.
I do not understand step 5 of the flashing :
Press the RST button while holding down the FLASH button on the
breadboard — you should see a blue light on the Wi-Fi module and the TX
led on the Arduino will light up. You must upload code while the TX led
is lit.

Is this the right sequence: ?
press and hold flash button (On)
then press the reset button (On)
Release the Restet button (Off)
wait for the Arduino to program over USBasp and to finish the programming and verification.
Then release the flash button (Off).
I have had a working led on/ led of html page and UNO, but I do not know how It happend and why. After loading Blink to the ardunio UNO the WiFi dit not work on the Serial monitor nor on the wifi html page.
I like to know how to make the UNO send a lightintencity value from de ADC A0 to the ESP8266 over WiFi to a phone with P2P wifi connection each 1ms.
Can someone please share this knowledge here? Or maybe you know a place to look for further information about this kind of topics.
Thanks in advance.


it worked fine for the first couple of minutes, but lost control after. Did I do something wrong?


Reply 1 year ago

sounds like your wifi connection is dropping! the script i provided will not attempt a reconnect after a dropped connection, but you could pretty easily add in some logic for that in the loop(). i’d do a little googling to see what functionality the esp8266 package offers and add a check/reconnect step!


Reply 1 year ago

I’ll try that, thank you!


Question 2 years ago on Step 3

everything is fine , I upload the program successfully. but serial monitor is not showing anything.

Screenshot from 2019-07-10 10-46-32.png


Answer 1 year ago

Faced the same issue; ensure that you start the serial monitor before the code is completely uploaded.


Answer 2 years ago

Did you make sure your baudrate and line endings are set properly? (See step 2, part 4)


Reply 2 years ago

Ive got the same issue, no serial monitor, double checked connection, baudrate and the other setting are fine aswell