ESP32 - Serial Monitor

Hardware Required

1×ESP-WROOM-32 Dev Module
1×Micro USB Cable
Please note: These are affiliate links. If you buy the components through these links, We may get a commission at no extra cost to you. We appreciate it.

About Serial Monitor

Serial Monitor is one of the tools in Arduino IDE. It is used for two purposes:

  • ESP32 → PC: Receives data from ESP32 and display data on screen. This is usually used for debugging and monitoring
  • PC → ESP32: Sends data (command) from PC to ESP32.

Data is exchanged between Serial Monitor and ESP32 via USB cable, which is also used to upload the code to ESP32. Therefore, To use Serial Monitor, we MUST connect ESP32 and PC via this cable.

How To Use Serial Monitor

Open Serial Monitor

Click the Serial Monitor icon

How to open serial monitor on Arduino IDE

Items on Serial Monitor

  1. Output console: display data received from ESP32.
  2. COM6
    Send
    Autoscroll Show timestamp
    Clear output
    9600 baud  
    Newline  
  3. Autoscroll checkbox: option to select between automatically scroll and not scroll.
  4. COM6
    Send
    Autoscroll Show timestamp
    Clear output
    9600 baud  
    Newline  
  5. Show timestamp checkbox: option to show timestamp prior to data displayed on Serial Monitor.
  6. COM6
    Send
    Autoscroll Show timestamp
    Clear output
    9600 baud  
    Newline  
  7. Clear output button: clear all text on the output console.
  8. COM6
    Send
    Autoscroll Show timestamp
    Clear output
    9600 baud  
    Newline  
  9. Baud rate selection: select communication speed (baud rate) between ESP32 and PC. This value MUST be the same as the value used in ESP32 code (in Serial.begin() function).
  10. COM6
    Send
    Autoscroll Show timestamp
    Clear output
    9600 baud  
    Newline  

※ NOTE THAT:

When we select baud rate (even the value is not changed), ESP32 is reset. Therefore, this is one way to reset ESP32.

  1. Textbox: user can type characters to send to ESP32
  2. COM6
    Send
    Autoscroll Show timestamp
    Clear output
    9600 baud  
    Newline  
  3. Ending selection: select the ending characters appended to data sent to ESP32. Selection includes:
    • No line ending: append nothing
    • Newline: append newline (LF, or '\n') character
    • Carriage return: append carriage return (CR, or '\r') character
    • Both NL and CR: append both newline and carriage return (CRLF, or '\r\n') characters
    • COM6
      Send
      Autoscroll Show timestamp
      Clear output
      9600 baud  
      Newline  
  4. Send button: when the button is pressed, Serial Monitor sends data in textbox plus the ending characters to ESP32
  5. COM6
    Send
    Autoscroll Show timestamp
    Clear output
    9600 baud  
    Newline  

ESP32 To PC

To send data from ESP32 to PC, we need to use the following ESP32 code:

  • Set baud rate and begin Serial port by using Serial.begin() function
Serial.begin(baudrate);
Serial.println("Hello World!");

Example Use

In this example, we will send the “esp32io.com” from ESP32 to Serial Monitor every second

/* * Created by esp32io.com * * This example code is in the public domain * * Tutorial page: https://esp32io.com/tutorials/esp32-serial-monitor */ void setup() { Serial.begin(9600); } void loop() { Serial.println("esp32io.com"); delay(1000); }

Quick Steps

  • If this is the first time you use ESP32, see how to setup environment for ESP32 on Arduino IDE
  • Copy the above code and paste it to Arduino IDE
  • Click Upload button on Arduino IDE to compile and upload code to ESP32 board
  • Open Serial Monitor on Arduino IDE
  • Select baurate 9600
  • See the output on Serial Monitor
  • COM6
    Send
    esp32io.com esp32io.com esp32io.com esp32io.com
    Autoscroll Show timestamp
    Clear output
    9600 baud  
    Newline  
  • Try changing Serial.println() function to Serial.print() function

PC To ESP32

How to send data from PC to Aduino and read it on ESP32

You will type text on Serial Monitor and then click Send button.

ESP32 reads data and process it. To read data, we need to use the following ESP32 code:

  • Set baud rate and begin Serial port
Serial.begin(baudrate);
  • Check whether data is available or not
if(Serial.available()) { // TODO }
String data = Serial.readStringUntil("\r\n");

Example Use

In this example, we will send the commands from Serial Monitor to ESP32 to turn on/off a built-in LED. The commands include:

  • “ON”: turn on LED
  • “OFF”: turn off LED
How ESP32 can receive a complete command? For example, when we send “OFF” command, how ESP32 can know the command is “O”, “OF” or “OFF”?

⇒ When sending a command, we will append a newline character ('\n') by selecting “newline” option on Serial Monitor. ESP32 will read data until it meets the newline character. In this case, the newline character is called delimiter.

/* * Created by esp32io.com * * This example code is in the public domain * * Tutorial page: https://esp32io.com/tutorials/esp32-serial-monitor */ void setup() { Serial.begin(9600); pinMode(LED_BUILTIN, OUTPUT); // set the digital pin as output: } void loop() { if(Serial.available()) // if there is data comming { String command = Serial.readStringUntil('\n'); // read string until meet newline character if(command == "ON") { digitalWrite(LED_BUILTIN, HIGH); // turn on LED Serial.println("LED is turned ON"); // send action to Serial Monitor } else if(command == "OFF") { digitalWrite(LED_BUILTIN, LOW); // turn off LED Serial.println("LED is turned OFF"); // send action to Serial Monitor } } }

Quick Steps

  • If this is the first time you use ESP32, see how to setup environment for ESP32 on Arduino IDE
  • Copy the above code and paste it to Arduino IDE
  • Click Upload button on Arduino IDE to compile and upload code to ESP32 board
  • Open Serial Monitor on Arduino IDE
  • Select baurate 9600 and newline option
  • Type “ON” or “OFF” and click Send button
  • COM6
    Send
    Autoscroll Show timestamp
    Clear output
    9600 baud  
    Newline  
  • See the built-in LED's state on ESP32 board. We will see LED's state is ON or OFF, respectively.
  • We also see LED's state on Serial Monitor
  • COM6
    Send
    LED is turned ON
    Autoscroll Show timestamp
    Clear output
    9600 baud  
    Newline  
  • Try typing “ON” or “OFF” command some times.

Video Tutorial

We are considering to make the video tutorials. If you think the video tutorials are essential, please subscribe to our YouTube channel to give us motivation for making the videos.

※ NOTE THAT:

Note that this tutorial is incomplete. We will post on our Facebook Page when the tutorial is complete. Like it to get updated.

※ NOTICES

  • We are AVAILABLE for HIRE. See how to hire us to do your project
  • If this tutorial is useful for you, please support us to make more tutorials.
  • We spent a lot of time and effort to create the content for this tutorial, please respect our work! Please do not copy the content to share on other websites. Howerver, please feel free to share the link of this tutorial anywhere