ESP8266 Trình vẽ đồ thị nối tiếp

Phần cứng cần chuẩn bị

1×ESP8266 NodeMCU ESP-12E
1×Recommended: ESP8266 NodeMCU ESP-12E (Uno-form)
1×USB Cable Type-A to Type-C (for USB-A PC)
1×USB Cable Type-C to Type-C (for USB-C PC)
1×(Khuyến nghị) Screw Terminal Expansion Board for ESP8266
1×(Khuyến nghị) Power Splitter for ESP8266 Type-C

Or you can buy the following kits:

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

Giới thiệu Serial Plotter

Serial Plotter là một tính năng của Arduino IDE. Nó cho phép ESP8266 đọc nhiệt độ, độ ẩm hoặc bất kỳ loại dữ liệu cảm biến nào khác và gửi dữ liệu đó đến Serial Plotter. Sau đó Serial Plotter nhận dữ liệu này và hiển thị ở dạng sóng. Serial Plotter không chỉ có thể hiển thị dữ liệu từ một cảm biến mà còn hiển thị dữ liệu của nhiều cảm biến trên cùng một đồ thị.

Dữ liệu được trao đổi giữa Serial Plotter và ESP8266 thông qua một cáp USB. Chính cáp này được dùng để nạp chương trình lên ESP8266. Do đó, để có thể sử dụng Serial Plotter, cần kết nối ESP8266 với máy tính bằng cáp này.

Serial Plotter có một hộp lựa chọn để chọn tốc độ baud của serial và một đồ thị. Trục X của đồ thị đại diện cho thời gian, với 500 điểm. Khoảng thời gian giữa mỗi điểm được xác định bởi thời gian giữa hai lần gọi liên tiếp của hàm Serial.println(), thường bằng thời gian thực thi của hàm loop(). Trục Y của đồ thị hiển thị các giá trị nhận được từ ESP8266, và nó tự động điều chỉnh khi giá trị tăng hoặc giảm.

Cách mở Serial Plotter

Nhấp vào biểu tượng Serial Plotter ở phía bên phải của Arduino IDE.

cách mở serial plotter

Vẽ một đường thẳng trên đồ thị

Để tạo ra một đồ thị duy nhất, chúng ta chỉ cần gửi dữ liệu và kết thúc nó bằng ký tự “\r\n”.

Cụ thể, chúng ta cần sử dụng hàm Serial.println().

Serial.println(variable);

※ Lưu ý:

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

Mã ví dụ

Lấy giá trị từ một chân đầu vào analog và vẽ nó trên Serial Plotter. Đây là một ví dụ về cách làm như vậy.

/* * Mã ESP8266 NodeMCU này được phát triển bởi newbiely.vn * Mã ESP8266 NodeMCU 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/esp8266/esp8266-serial-plotter */ void setup() { Serial.begin(9600); } void loop() { int y1 = analogRead(A0); Serial.println(y1); delay(100); }

Hướng dẫn từng bước

Để bắt đầu với ESP8266 trên Arduino IDE, hãy làm theo các bước sau:

  • Xem ESP8266 - Cài đặt phần mềm nếu đây là lần đầu bạn sử dụng ESP8266.
  • Nối các thành phần như được hiển thị trong sơ đồ.
  • Kết nối board ESP8266 với máy tính của bạn bằng cáp USB.
  • Mở Arduino IDE trên máy tính của bạn.
  • Chọn board ESP8266 phù hợp, chẳng hạn (ví dụ: NodeMCU 1.0 (ESP-12E Module)), và cổng COM tương ứng của nó.
  • Sao chép mã và mở nó trong Arduino IDE.
  • Nhấp vào nút Upload trong IDE để gửi mã tới ESP8266.
  • Mở Serial Plotter.
  • Đặt tốc độ baud là 9600.
  • Xem đồ thị trên Serial Plotter.
ví dụ về máy vẽ nối tiếp: một đường thẳng

Vẽ nhiều đường trên đồ thị

Để vẽ đồ thị cho nhiều biến, chúng ta phải phân tách chúng khỏi nhau bằng ký tự “\t” hoặc ký tự " ". Giá trị cuối cùng phải được kết thúc bằng ký tự “\r\n”.

  • 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);

Mã ví dụ

Lấy giá trị từ bốn chân analog đầu vào và hiển thị chúng trên Serial Plotter.

/* * Mã ESP8266 NodeMCU này được phát triển bởi newbiely.vn * Mã ESP8266 NodeMCU 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/esp8266/esp8266-serial-plotter */ void setup() { Serial.begin(9600); } void loop() { int y1 = random(0, 30); int y2 = random(0, 50); int y3 = random(20, 80); int y4 = random(40, 100); Serial.print(y1); Serial.print(" "); // a space ' ' or tab '\t' character is printed between the two values. Serial.print(y2); Serial.print(" "); // a space ' ' or tab '\t' character is printed between the two values. Serial.print(y3); Serial.print(" "); // a space ' ' or tab '\t' character is printed between the two values. Serial.println(y4); // the last value is followed by a carriage return and a newline characters. delay(100); }

Sử dụng nhiều biểu đồ: Tạo nhiều biểu đồ để minh họa dữ liệu.

ví dụ về máy vẽ đồ thị nối tiếp với nhiều đường thẳng

Ví dụ về 3 dạng sóng hình sin

/* * Mã ESP8266 NodeMCU này được phát triển bởi newbiely.vn * Mã ESP8266 NodeMCU 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/esp8266/esp8266-serial-plotter */ void setup() { Serial.begin(9600); } void loop() { for(int i = 0; i < 360; i += 15) { float y1 = 1 * sin(i * M_PI / 180); float y2 = 2 * sin((i + 90)* M_PI / 180); float y3 = 5 * sin((i + 180)* M_PI / 180); Serial.print(y1); Serial.print("\t"); // a space ' ' or tab '\t' character is printed between the two values. Serial.print(y2); Serial.print("\t"); // a space ' ' or tab '\t' character is printed between the two values. Serial.println(y3); // the last value is followed by a carriage return and a newline characters. delay(100); } }

Đồ thị của nhiều sóng sin. Một đại diện cho nhiều sóng sin được thể hiện trên đồ thị.

sóng sin của máy plotter nối tiếp

Nếu bạn muốn xem máy vẽ này trên điện thoại thông minh hoặc máy tính của bạn, hãy truy cập bài hướng dẫn ESP8266 - Máy vẽ đồ thị 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.