Ví dụ ESP32 WebPlotter Hướng dẫn Trực quan hóa Dữ liệu thời gian thực
Tổng quan
Ví dụ WebPlotter tạo ra một giao diện trực quan hóa dữ liệu thời gian thực có thể truy cập qua bất kỳ trình duyệt web nào. Dành cho nền tảng giáo dục ESP32 với khả năng xử lý dữ liệu được nâng cao, các tính năng vẽ đồ thị thời gian thực và tích hợp liền mạch với các hệ thống giám sát cảm biến. Hoàn hảo để trực quan hóa dữ liệu cảm biến, gỡ lỗi thuật toán, hoặc giám sát hiệu suất hệ thống theo thời gian thực.

Các tính năng
- Vẽ đồ thị dữ liệu thời gian thực: Hiển thị dữ liệu cảm biến khi chúng được truyền từ Arduino
- Nhiều chuỗi dữ liệu: Vẽ tối đa 8 luồng dữ liệu khác nhau đồng thời
- Tự động cân chỉnh thang trục Y: Tự động điều chỉnh thang trục Y dựa trên phạm vi dữ liệu
- Giao diện tương tác: Phóng to, kéo và phân tích xu hướng dữ liệu
- Giao tiếp WebSocket: Cập nhật tức thì với độ trễ tối thiểu
- Thiết kế đáp ứng: Hoạt động trên máy tính để bàn, máy tính bảng và thiết bị di động
- Cấu hình có thể tùy chỉnh: Tiêu đề đồ thị, nhãn trục và phạm vi có thể điều chỉnh
Phần cứng cần chuẩn bị
| 1 | × | mô-đun phát triển ESP-WROOM-32 | ||
| 1 | × | Alternatively, ESP32 Uno-form board | ||
| 1 | × | Alternatively, ESP32 S3 Uno-form board | ||
| 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 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) |
Hướng dẫn thiết lập
Các bước nhanh
Hãy thực hiện các hướng dẫn này theo từng bước một:
- Nếu đây là lần đầu tiên bạn sử dụng ESP32, hãy tham khảo bài hướng dẫn ESP32 - Cài Đặt Phần Mềm.
- Kết nối bo mạch ESP32 với máy tính của bạn bằng một cáp USB.
- Khởi động Arduino IDE trên máy tính của bạn.
- Chọn bo mạch ESP32 phù hợp (ví dụ ESP32 Dev Module) và cổng COM.
- Điều hướng đến biểu tượng Libraries ở thanh bên trái của Arduino IDE.
- Tìm kiếm "DIYables ESP32 WebApps", sau đó tìm thư viện DIYables ESP32 WebApps do DIYables phát hành.
- Nhấp nút Cài đặt để cài đặt thư viện.

- Bạn sẽ được yêu cầu cài đặt một số phụ thuộc thư viện khác
- Nhấp nút Cài đặt Tất cả để cài đặt toàn bộ các phụ thuộc thư viện.

- Trong Arduino IDE, đi tới Tệp tin Ví dụ DIYables ESP32 WebApps WebPlotter ví dụ, hoặc sao chép mã ở trên và dán nó vào trình chỉnh sửa của Arduino IDE
- Cấu hình thông tin xác thực WiFi trong mã bằng cách cập nhật các dòng sau:
- Nhấp vào nút Tải lên trên Arduino IDE để tải mã lên ESP32
- Mở Serial Monitor
- Kiểm tra kết quả trên Serial Monitor. Nó trông như hình dưới đây.
- Nếu bạn không thấy gì hiển thị, hãy khởi động lại bảng ESP32.
- Ghi nhớ địa chỉ IP được hiển thị và nhập địa chỉ này vào thanh địa chỉ của trình duyệt trên điện thoại thông minh hoặc máy tính của bạn.
- Ví dụ: http://192.168.0.2
- Bạn sẽ thấy trang chủ như hình dưới đây:

- Nhấp vào liên kết Web Plotter, bạn sẽ thấy giao diện người dùng của ứng dụng Web Plotter như ở dưới đây:

- Hoặc bạn cũng có thể truy cập trang này trực tiếp bằng địa chỉ IP theo sau là /web-plotter. Ví dụ: http://192.168.0.2/web-plotter
- Quan sát ESP32 sinh dữ liệu cảm biến giả lập và vẽ chúng theo thời gian thực. Bạn sẽ thấy nhiều đường có màu khác nhau đại diện cho các luồng dữ liệu khác nhau.
Tùy biến sáng tạo - Hiển thị dữ liệu của bạn một cách sáng tạo
Biến đổi giao diện vẽ đồ thị để phù hợp với các yêu cầu dự án độc đáo của bạn và tạo ra các trực quan hóa dữ liệu tuyệt đẹp:
Cấu hình nguồn dữ liệu
Thay thế dữ liệu mô phỏng bằng dữ liệu cảm biến thực:
Phương pháp 1: Đọc cảm biến đơn
Phương pháp 2: Nhiều cảm biến
Phương pháp 3: Mảng các giá trị
Tùy chỉnh đồ thị
Giao diện đồ thị tùy chỉnh
Cấu hình động
Xử lý Dữ liệu Nâng cao
Bộ lọc trung bình động
Ghi nhật ký dữ liệu với dấu thời gian
Ví dụ tích hợp
Quan trắc môi trường
Phản hồi điều khiển động cơ
Trực quan hóa bộ điều khiển PID
Tối ưu hóa hiệu suất
Truyền tải dữ liệu hiệu quả
Gửi dữ liệu có điều kiện
Ý tưởng dự án
Các ứng dụng khoa học
- Máy ghi dữ liệu: Ghi lại nhiệt độ, độ ẩm, áp suất theo thời gian
- Phân tích rung động: Giám sát dữ liệu gia tốc kế cho các hệ thống cơ khí
- Giám sát pH: Theo dõi chất lượng nước trong hệ thống nuôi cá kết hợp thủy canh
- Hiệu suất tấm pin mặt trời: Giám sát điện áp và dòng điện đầu ra so với ánh sáng mặt trời
Dự án Giáo dục
- Các thí nghiệm vật lý: Quan sát chuyển động của con lắc và dao động của lò xo
- Phòng thí nghiệm Hóa học: Theo dõi tốc độ phản ứng và sự thay đổi nhiệt độ
- Nghiên cứu Sinh học: Theo dõi cảm biến tăng trưởng thực vật và các yếu tố môi trường
- Toán học: Vẽ đồ thị các hàm số và đầu ra của các thuật toán
Tự động hóa gia đình
- Giám sát năng lượng: Theo dõi xu hướng tiêu thụ điện năng
- Tự động hóa vườn: Theo dõi độ ẩm đất và mức độ ánh sáng
- Điều khiển HVAC: Hiển thị xu hướng nhiệt độ và độ ẩm
- Hệ thống an ninh: Vẽ đồ thị các hoạt động của cảm biến chuyển động
Robot và Điều khiển
- Điều hướng robot: Vẽ dữ liệu vị trí và định hướng
- Điều khiển động cơ: Giám sát tốc độ, mô-men xoắn và hiệu suất
- Hợp nhất cảm biến: Kết hợp nhiều giá trị cảm biến
- Lập kế hoạch đường đi: Minh họa các thuật toán di chuyển của robot
Khắc phục sự cố
Các vấn đề phổ biến
- Không có dữ liệu hiển thị trên đồ thị
- Kiểm tra trạng thái kết nối WiFi
- Xác nhận kết nối WebSocket trong bảng điều khiển trình duyệt
- Đảm bảo sendPlotData() đang được gọi đều đặn
- Kiểm tra Trình theo dõi Serial để xem có thông báo lỗi hay không
- Đồ thị có vẻ bị rung lắc hoặc thất thường.
- Thực hiện lọc dữ liệu (trung bình động)
- Giảm tần suất gửi dữ liệu
- Kiểm tra nhiễu cảm biến hoặc sự cố kết nối
- Xác nhận sự ổn định của nguồn cấp điện
3. Các vấn đề về hiệu suất trình duyệt
- Giảm số lượng mẫu tối đa (setMaxSamples())
- Giảm tốc độ truyền dữ liệu
- Đóng các tab trình duyệt khác
- Kích hoạt tăng tốc phần cứng trong trình duyệt
- Mất kết nối WebSocket
- Kiểm tra cường độ tín hiệu WiFi
- Xác minh cài đặt của bộ định tuyến (tường lửa, chặn cổng)
- Triển khai logic tái kết nối trong mã tùy chỉnh
- Giám sát mức sử dụng bộ nhớ của ESP32
Mẹo gỡ lỗi
Bật Ghi Nhật Ký Chi Tiết
Tạo dữ liệu kiểm thử
Các tính năng nâng cao
Định dạng dữ liệu tùy chỉnh
Tích hợp với các ứng dụng web khác
Điều khiển thời gian thực với đồ thị
Các bước tiếp theo
Sau khi thành thạo ví dụ WebPlotter, hãy khám phá:
- MultipleWebApps - Kết hợp đồ thị với giao diện điều khiển
- WebMonitor - Thêm khả năng gỡ lỗi bên cạnh việc vẽ đồ thị
- Custom Applications - Xây dựng công cụ vẽ đồ thị chuyên dụng cho riêng bạn
- Data Analysis - Thực hiện phân tích thống kê cho dữ liệu đã được vẽ
Hỗ trợ
Để được hỗ trợ thêm:
- Kiểm tra tài liệu tham khảo API
- Truy cập các bài hướng dẫn DIYables: https://esp32io.com/tutorials/diyables-esp32-webapps
- Diễn đàn cộng đồng ESP32
- Công cụ gỡ lỗi WebSocket trong bảng điều khiển dành cho nhà phát triển của trình duyệt