ESP32 Serial Monitor

Hướng dẫn này sẽ chỉ bạn cách sử dụng Serial Monitor trên Arduino IDE với ESP32

Thiết Bị Cần Thiết

1×mô-đun phát triển ESP-WROOM-32
1×Alternatively, ESP32 Uno-form board
1×Alternatively, ESP32 S3 Uno-form board
1×Cáp USB Type-C
1×(Tùy chọn) DC Power Jack
1×breadboard
1×Dây Jumper
1×(Khuyến nghị) Screw Terminal Expansion Board for ESP32
1×(Khuyến nghị) Breakout Expansion Board for ESP32
1×(Khuyến nghị) Power Splitter for ESP32

Or you can buy the following kits:

1×DIYables ESP32 Starter Kit (ESP32 included)
1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)

Về Serial Monitor

Khi bạn lập trình cho ESP32, bạn cần có một cách để biết code ESP32 chạy như thế nào ⇒ sử dụng công cụ Serial Monitor trong Arduino IDE. Nó được thiết kế cho hai mục đích:

  • ESP32 → PC: Code của bạn trên ESP32 gửi dữ liệu qua Serial. Serial Monitor trên PC nhận dữ liệu và hiển thị. Điều này rất hữu ích cho việc debug và giám sát
  • PC → ESP32: Bạn gõ dữ liệu và gửi từ PC đến ESP32. Điều này hữu ích để gửi lệnh từ PC của bạn đến ESP32

Bạn cần một cáp micro USB giữa PC và ESP32. Cáp này cũng được sử dụng để upload code lên ESP32.

Cách Sử Dụng Serial Monitor

Mở Serial Monitor

Bạn chỉ cần click vào biểu tượng trên Arduino IDE như hình bên dưới:

how to open serial monitor on Arduino ide

Các Thành Phần trên Serial Monitor

Serial Monitor bao gồm 8 thành phần

  1. Output console (Bảng điều khiển xuất): thành phần này hiển thị dữ liệu nhận được từ ESP32.
COM6
Send
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  1. Checkbox Autoscroll (Tự động cuộn): thành phần này cung cấp tùy chọn để bật/tắt tự động cuộn trên output console.
COM6
Send
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  1. Checkbox Show timestamp (Hiển thị thời gian): thành phần này cung cấp tùy chọn để thêm timestamp trước dữ liệu.
COM6
Send
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  1. Nút Clear output (Xóa xuất): Khi nút này được nhấp, văn bản trên output console sẽ được xóa.
COM6
Send
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  1. Lựa chọn Baud rate: thành phần này cung cấp tùy chọn để chọn tốc độ giao tiếp (baud rate) giữa PC và ESP32. Giá trị này PHẢI giống với giá trị được sử dụng trong code ESP32 (trong hàm Serial.begin()).
COM6
Send
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  1. Textbox (Hộp văn bản): thành phần này cho phép bạn gõ các ký tự sẽ được gửi đến bo mạch ESP32 khi bạn nhấp nút Send
COM6
Send
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  1. Lựa chọn Ending (Ký tự kết thúc): thành phần này cung cấp tùy chọn để chọn các ký tự kết thúc được thêm vào dữ liệu gửi đến ESP32. Các tùy chọn có sẵn bao gồm:
    • No line ending: không thêm gì
    • Newline: thêm ký tự xuống dòng (LF, hoặc '\n')
    • Carriage return: thêm ký tự về đầu dòng (CR, hoặc '\r')
    • Both NL and CR: thêm cả ký tự xuống dòng và về đầu dòng
    COM6
    Send
    Autoscroll Show timestamp
    Clear output
    9600 baud  
    Newline  
    1. Nút Send (Gửi): khi nút này được nhấp, Serial Monitor sẽ gửi dữ liệu trong Textbox cộng với các ký tự kết thúc đến ESP32
    COM6
    Send
    Autoscroll Show timestamp
    Clear output
    9600 baud  
    Newline  

ESP32 Đến PC

Cách gửi dữ liệu từ bo mạch ESP32 đến PC:

  • Đặt baud rate và khởi tạo cổng Serial bằng cách sử dụng hàm Serial.begin()
Serial.begin(baudrate);
  • Gửi dữ liệu đến Serial Monitor bằng một trong các hàm sau:
  • Ví dụ, gửi "Hello World!" đến Serial Monitor

    Serial.println("Hello World!");

    Ví Dụ Sử Dụng

    Code ví dụ bên dưới gửi "newbiely.com" từ ESP32 đến Serial Monitor mỗi giây

    /* * Mã ESP32 này được phát triển bởi newbiely.vn * Mã ESP32 này được cung cấp để sử dụng công khai, không có ràng buộc. * Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: * https://newbiely.vn/tutorials/esp32/esp32-serial-monitor */ void setup() { Serial.begin(9600); } void loop() { Serial.println("newbiely.com"); delay(1000); }

    Các Bước Nhanh

    • Nếu đây là lần đầu tiên bạn sử dụng ESP32, hãy xem ESP32 - Cài Đặt Phần Mềm.
    • Copy code trên và paste vào Arduino IDE.
    • Biên dịch và upload code lên bo mạch ESP32 bằng cách nhấp nút Upload trên Arduino IDE
    • Mở Serial Monitor trên Arduino IDE
    • Chọn baurate 9600
    • Xem kết quả trên Serial Monitor
    COM6
    Send
    newbiely.com newbiely.com newbiely.com newbiely.com
    Autoscroll Show timestamp
    Clear output
    9600 baud  
    Newline  
    • Thử thay đổi hàm Serial.println() thành hàm Serial.print()

PC Đến ESP32

Cách gửi dữ liệu từ PC đến ESP32

  • Trên PC:
    • Gõ text trên Serial Monitor
    • Nhấp nút Send.

    Sau đó bạn viết code ESP32 để đọc dữ liệu và xử lý:

    • Đặt baud rate và bắt đầu cổng Serial
    Serial.begin(baudrate);
    • Kiểm tra xem có dữ liệu đến hay không
    if(Serial.available()) { // TODO }
    • Đọc dữ liệu từ cổng Serial bằng một trong các hàm sau:
    • Ví dụ:

      String data = Serial.readStringUntil("\r\n");

      Ví Dụ Sử Dụng

      Code ví dụ ESP32 bên dưới đọc lệnh từ Serial để bật/tắt LED tích hợp.

      • Nếu text nhận được (lệnh) là "ON", bật LED
      • Nếu text nhận được (lệnh) là "OFF": tắt LED
      Làm thế nào ESP32 có thể nhận biết một lệnh? Ví dụ, khi chúng ta gửi các ký tự "OFF", làm thế nào ESP32 có thể phân biệt lệnh là "O", "OF" hay "OFF"?

      ⇒ Chúng ta cần gửi một ký tự kết thúc cùng với lệnh ⇒ chúng ta có thể thêm ký tự xuống dòng ('\n'). Để thêm ký tự xuống dòng, chọn tùy chọn "newline" trên Serial Monitor trước khi gửi dữ liệu. ESP32 sẽ đọc dữ liệu cho đến ký tự xuống dòng. Trong trường hợp này, ký tự xuống dòng được gọi là terminator hoặc delimiter.

      /* * Mã ESP32 này được phát triển bởi newbiely.vn * Mã ESP32 này được cung cấp để sử dụng công khai, không có ràng buộc. * Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: * https://newbiely.vn/tutorials/esp32/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 newline character if (command == "ON") { digitalWrite(LED_BUILTIN, HIGH); // turn on LED Serial.println("Turn LED ON"); } else if (command == "OFF") { digitalWrite(LED_BUILTIN, LOW); // turn off LED Serial.println("Turn LED OFF"); } } }

      Các Bước Nhanh

      • Nếu đây là lần đầu tiên bạn sử dụng ESP32, hãy xem ESP32 - Cài Đặt Phần Mềm.
      • Copy code trên và paste vào Arduino IDE.
      • Biên dịch và upload code lên bo mạch ESP32 bằng cách nhấp nút Upload trên Arduino IDE
      • Mở Serial Monitor trên Arduino IDE
      • Chọn baurate 9600 và tùy chọn newline
      • "ON" hoặc "OFF" và nhấp nút Send
      COM6
      Send
      Autoscroll Show timestamp
      Clear output
      9600 baud  
      Newline  
      • Xem trạng thái LED tích hợp trên bo mạch ESP32. Chúng ta sẽ thấy trạng thái LED là ON hoặc OFF tương ứng.
      • Chúng ta cũng thấy trạng thái LED trên Serial Monitor
      COM6
      Send
      Turn LED ON
      Autoscroll Show timestamp
      Clear output
      9600 baud  
      Newline  
      • Gõ lệnh "ON" hoặc "OFF" nhiều lần.

Video Tutorial

Việc sản xuất video tốn rất nhiều thời gian. Nếu video hướng dẫn hữu ích cho việc học của bạn, hãy đăng ký kênh YouTube để ủng hộ. Nếu nhu cầu đủ cao, chúng tôi sẽ cố gắng làm thêm nhiều video.

Bình Luận