Introduction: Arduino WiFi Shield Using ESP8266

Hello guys!

This project mainly focuses on creating an ESP8266 based WiFi shield for Arduino UNO.

This shield can be used to program ESP8266 in two modes.

Either through AT commands or directly through the Arduino IDE.

What is ESP8266?

The ESP8266 is a low-cost Wi-Fi microchip with full TCP/IP stack and microcontroller capability produced by the manufacturer Espressif Systems in Shanghai, China.

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 the command set firmware, meaning, you can simply hook this up to your Arduino device.


  • ESP8266
  • LM317TG
  • 10 K POT
  • 12V DC JACK
  • 1K resistor
  • 220E resistor
  • 360E resistor
  • Male and Female jumpers


The circuit mainly focuses on interfacing the ESP8266 wifi module with Arduino UNO.

The ESP8266 is a tricky module to use; it needs its own power source and a specific connection set-up to communicate with Arduino.

Always remember that the ESP8266 when purchased comes with a default firmware that is capable of communicating with AT commands. But if the module has been directly programmed with Arduino, then the default firmware will be erased and it has to be flashed again if AT commands are to be used.

Here LM317TG is used as a 3.3V voltage regulator. This 3.3V is used to power the ESP8266 module because the 3.3V from Arduino UNO will not be able to source enough current for the ESP module. The LM317 input pin can be powered by the DC input barrel jack of the Vin pin of the Arduino UNO board

The GPIO0 pin of the ESP module is connected to a jumper pin which can be toggled to connect the pin to the ground. This allows the user to set the ESP module to work either in AT command mode or Programming mode (Arduino IDE). Both the GPIO0 and GPIO2 is connected to an external connector so that these GPIO pins can also be utilized.

We have connected the Rx and Tx pin of the ESP8266 module to the 12 and 13 pins of Arduino. We did not use the hardware serial (pin 0 and 1) to make debugging easy. You can also notice that an option to connect the 16*2 DISPLAY is also provided so that it can be mounted directly on top of the shield. The LCD is powered by the 5V pin of the Arduino.

The above image is the circuit diagram.


The schematic is converted to PCB. Here Eagle CAD tool used. Kindly go through the basics of using the EAGLE CAD Tool so that small prototypes can be easily designed by yourself.

The above image shows the board layout.

Step 4: Fabricating the PCB

Now we will send our boards for fabrication. In order to get your PCB fabricated, You need to generate Gerber files from the Board layout in the Eagle CAD tool. CLICK HERE to see a video tutorial on how to generate Gerber files from EAGLE.

I personally like LIONCIRCUITS. The quality of their boards is really good and also they provide the boards in just 5 days.

Above you can find my PCB images when uploaded on Lioncircuits.