ESP32 Serial Plotter

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

Phần Cứng 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 (bo mạch thí nghiệm)
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 Plotter

Serial Plotter là một công cụ trên Arduino IDE có thể nhận dữ liệu từ ESP32 qua Serial và vẽ nó thành đồ thị. Serial Plotter có thể vẽ dữ liệu của nhiều cảm biến trên cùng một màn hình.

Để nhận dữ liệu từ ESP32, bạn cần sử dụng cáp micro USB để kết nối ESP32 và PC

Serial Plotter bao gồm hai thành phần:

  • hộp lựa chọn: dùng để chọn baudrate của serial
  • đồ thị: màn hình hiển thị dữ liệu trực quan
    • Trục X: biểu thị thời gian. Có 500 điểm. Thời gian giữa mỗi điểm là khoảng thời gian giữa hai lần gọi hàm Serial.println() liên tiếp.
    • Trục Y: biểu thị giá trị dữ liệu nhận được từ ESP32. Trục Y tự động thay đổi tỷ lệ khi giá trị dữ liệu tăng hoặc giảm.

Cách Mở Serial Plotter

Trên Arduino IDE, nhấp vào Serial Plotter như hình dưới:

how to open serial plotter

Cách vẽ Một Đường trên Đồ thị

Để vẽ một đường trên đồ thị, chúng ta chỉ cần gửi dữ liệu kết thúc bằng ký tự "\r\n". Chúng ta có thể sử dụng hàm Serial.println()

Serial.println(variable);

※ Lưu ý:

Serial.println() tự động thêm ký tự "\r\n" vào cuối dữ liệu.

Code Ví Dụ

Code ESP32 dưới đây đọc giá trị từ chân analog input và gửi nó đến Serial Plotter

/* * 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-plotter */ void setup() { Serial.begin(9600); } void loop() { int variable_1 = analogRead(A0); Serial.println(variable_1); delay(100); }

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.
  • Sao chép code trên và dán vào Arduino IDE.
  • Biên dịch và upload code lên board ESP32 bằng cách nhấp nút Upload trên Arduino IDE
  • Mở Serial Plotter
  • Chọn baurate 9600
  • Xem đồ thị trên Serial Plotter
serial plotter example single line

Cách vẽ nhiều đường trên Đồ thị

Để vẽ nhiều biến số, chúng ta cần phân tách các biến bằng ký tự "\t" hoặc " ". Giá trị cuối cùng BẮT BUỘC phải kết thúc bằng ký tự "\r\n".

Chi tiết:

  • Biến đầu tiên
Serial.print(variable_first);
  • Các biến ở giữa
Serial.print("\t"); // or Serial.print(" ") Serial.print(variable_nth);
  • Biến cuối cùng
Serial.print("\t"); // or Serial.print(" ") Serial.println(variable_last);

Code Ví Dụ

Code ESP32 dưới đây đọc giá trị từ 4 chân analog input và gửi chúng đến Serial Plotter

/* * 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-plotter */ void setup() { Serial.begin(9600); } void loop() { int variable_1 = analogRead(A0); int variable_2 = analogRead(A1); int variable_3 = analogRead(A2); int variable_4 = analogRead(A3); Serial.print(variable_1); Serial.print(" "); // a tab '\t' or space ' ' character is printed between the two values. Serial.print(variable_2); Serial.print(" "); // a tab '\t' or space ' ' character is printed between the two values. Serial.print(variable_3); Serial.print(" "); // a tab '\t' or space ' ' character is printed between the two values. Serial.println(variable_4); // the last value is terminated by a carriage return and a newline characters. delay(100); }

Kết quả trên Serial Monitor:

serial plotter multiple lines

Ví dụ về 3 Sóng Sin

Code ESP32 dưới đây in giá trị của ba sóng sin đến Serial Plotter

/* * 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-plotter */ void setup() { Serial.begin(9600); } void loop() { for (int i = 0; i < 360; i += 5) { float sine_1 = 1 * sin(i * M_PI / 180); float sine_2 = 2 * sin((i + 90) * M_PI / 180); float sine_3 = 5 * sin((i + 180) * M_PI / 180); Serial.print(sine_1); Serial.print("\t"); // a tab '\t' or space ' ' character is printed between the two values. Serial.print(sine_2); Serial.print("\t"); // a tab '\t' or space ' ' character is printed between the two values. Serial.println(sine_3); // the last value is terminated by a carriage return and a newline characters. delay(100); } }

Kết quả trên Serial Plotter:

serial plotter sine wave

Nếu bạn muốn plotter này trên web, hãy xem ESP32 - Web Plotter (Biểu Đồ Trên Web)

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