Serial communication between ESP8266 and Arduino

Learn Serial communication between ESP8266 and Arduino. Transmit data between two ESP8266 and Arduino using RX/TX lines. How Software Serial read and write works. You can perform it on any ESP8266 and Arduino Board.

First, learn about the SoftwareSerial Library of Arduino IDE. SoftwareSerial allows serial communication on other digital pins using software to replicate the functionality. Here we are using SoftwareSerial to start Serial at 9600 Baud. In general case, the serial will start at 115200 Baud Rate because ESP8266 works on that rate.

Step 1: Required Components

ESP8266 Module x 1
Arduino Uno Board x 1
3.3V Linear Voltage Regulator (LD1117) x 1
Breadboard x 1
Jumper Wires

Step 2: Circuit Time

Make a circuit as per the given diagram after uploading the program. Connect the RX pin of ESP8266 to the TX pin of Arduino and TX pin of ESP8266 to the RX pin of Arduino. Also, common both Grounds of ESP8266 and Arduino as per diagram.

Circuit Diagram of Serial communication between ESP8266 and Arduino


Step 3: Code Time

These are two codes for ESP8266 and Arduino board.

Code for Sender ESP8266

This is code for Sender ESP8266. First included the SoftwareSerial Library and started SoftwareSerial at RX and TX pin. (pin no 3 and 1) In Setup, SoftwareSerial is started at 9600 Baud. In the loop, written ‘123’ to the Serial.



Code for Receiver Arduino

This is code for Receiver Arduino. First declared a variable to store received data. In Setup, Serial Begin at 9600 Baud. In the loop, read the serial data and store it in a variable.



Step 4: Upload the code

Upload the code to ESP8266 and Arduino Board. Make a circuit as per the given diagram after uploading code. ‘123’ will be transmitted from Sender ESP8266 to Receiver Arduino. You can transmit your data or variable like this.

Learn more about Serial Communication in Arduino.

Learn information about uploading code to ESP8266 and Arduino Board.

14 thoughts on “Serial communication between ESP8266 and Arduino”

  1. The ESP8266 is very sensitive to over-voltage. It can tolerate signals up to 3.6 V max. The data from the Arduino should go through a level shifter or voltage divider to avoid damage. The ESP8266 usually will deteriorate quickly.
    For improved reliability, it is important to have a 10 – 100 uFd capacitor right at the module power pins

  2. Hey What if I want to send more than one data from arduino and how will I retrieve at the reciever side?

Leave a Reply