Arduino WebPlotter Example 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. Được thiết kế cho Arduino Uno R4 WiFi và nền tảng giáo dục DIYables STEM V4 IoT với khả năng xử lý dữ liệu nâng cao, tính năng vẽ biểu đồ thời gian thực và tích hợp liền mạch với hệ thống giám sát cảm biến. Hoàn hảo cho việc trực quan hóa dữ liệu cảm biến, debug thuật toán hoặc giám sát hiệu suất hệ thống theo thời gian thực.

Tính năng
- Vẽ biểu đồ dữ liệu thời gian thực: Trực quan hóa dữ liệu cảm biến khi nó được truyền từ Arduino
- Nhiều chuỗi dữ liệu: Vẽ biểu đồ tối đa 8 luồng dữ liệu khác nhau đồng thời
- Tự động điều chỉnh tỷ lệ: Tự động điều chỉnh tỷ lệ trục Y dựa trên phạm vi dữ liệu
- Giao diện tương tác: Zoom, pan và phân tích xu hướng dữ liệu
- Truyền thông WebSocket: Cập nhật tức thì với độ trễ tối thiểu
- Thiết kế responsive: Hoạt động trên desktop, tablet và thiết bị di động
- Cấu hình có thể tùy chỉnh: Tiêu đề biểu đồ, nhãn trục và phạm vi có thể điều chỉnh
- Mở rộng nền tảng: Hiện được triển khai cho Arduino Uno R4 WiFi, nhưng có thể mở rộng cho các nền tảng phần cứng khác. Xem DIYables_WebApps_ESP32
Phần cứng cần thiết
| 1 | × | Arduino UNO R4 WiFi | ||
| 1 | × | Alternatively, DIYables STEM V4 IoT | ||
| 1 | × | (Tùy chọn) DIYables STEM V4 IoT | ||
| 1 | × | Cáp USB Type-C | ||
| 1 | × | (Khuyến nghị) Screw Terminal Block Shield for Arduino UNO R4 | ||
| 1 | × | (Khuyến nghị) Breadboard Shield for Arduino UNO R4 | ||
| 1 | × | (Khuyến nghị) Enclosure for Arduino UNO R4 | ||
| 1 | × | (Khuyến nghị) Power Splitter for Arduino UNO R4 | ||
| 1 | × | (Khuyến nghị) Prototyping Base Plate & Breadboard Kit for Arduino UNO |
Or you can buy the following kits:
| 1 | × | DIYables STEM V4 IoT Starter Kit (Arduino 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
Làm theo các hướng dẫn này từng bước một:
- Nếu đây là lần đầu tiên bạn sử dụng Arduino Uno R4 WiFi/DIYables STEM V4 IoT, hãy tham khảo hướng dẫn về Arduino UNO R4 - Cài Đặt Phần Mềm.
- Kết nối bo mạch Arduino Uno R4/DIYables STEM V4 IoT với máy tính của bạn bằng cáp USB.
- Khởi động Arduino IDE trên máy tính của bạn.
- Chọn bo mạch Arduino Uno R4 thích hợp (ví dụ: Arduino Uno R4 WiFi) và cổng COM.
- Điều hướng đến biểu tượng Libraries trên thanh trái của Arduino IDE.
- Tìm kiếm "DIYables WebApps", sau đó tìm thư viện DIYables WebApps của DIYables
- Nhấn nút Install để cài đặt thư viện.

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

- Trên Arduino IDE, vào File Examples DIYables WebApps WebPlotter example, hoặc sao chép code trên và dán vào editor của Arduino IDE
- Cấu hình thông tin đăng nhập WiFi trong code bằng cách cập nhật các dòng này:
- Nhấn nút Upload trên Arduino IDE để tải code lên Arduino UNO R4/DIYables STEM V4 IoT
- Mở Serial Monitor
- Kiểm tra kết quả trên Serial Monitor. Nó sẽ giống như bên dưới
- Nếu bạn không thấy gì cả, hãy khởi động lại bo mạch Arduino.
- Ghi lại đị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 web trên smartphone hoặc PC 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ư bên dưới:

- Hoặc bạn cũng có thể truy cập trang trực tiếp bằng địa chỉ IP theo sau bởi /web-plotter. Ví dụ: http://192.168.0.2/web-plotter
- Quan sát khi Arduino tạo ra dữ liệu cảm biến mô phỏng và vẽ biểu đồ theo thời gian thực. Bạn sẽ thấy nhiều đường màu khác nhau đại diện cho các luồng dữ liệu khác nhau.
Tùy chỉnh sáng tạo - Trực quan hóa dữ liệu của bạn một cách sáng tạo
Biến đổi giao diện vẽ biểu đồ để phù hợp với yêu cầu dự án độc đáo của bạn và tạo ra những 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 số đọc cảm biến thực tế:
Phương pháp 1: Đọc một cảm biến
Phương pháp 2: Nhiều cảm biến
Phương pháp 3: Mảng giá trị
Tùy chỉnh biểu đồ
Tùy chỉnh giao diện biểu đồ
Cấu hình động
Xử lý dữ liệu nâng cao
Bộ lọc trung bình trượt
Ghi log dữ liệu với timestamps
Ví dụ tích hợp
Giám sát 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 dữ liệu hiệu quả
Gửi dữ liệu có điều kiện
Ý tưởng dự án
Ứng dụng khoa học
- Data Logger: 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 accelerometer 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 aquaponics
- Hiệu suất tấm pin mặt trời: Giám sát điện áp/dòng điện ra so với ánh sáng mặt trời
Dự án giáo dục
- Thí nghiệm vật lý: Trực quan hóa chuyển động con lắc, dao động lò xo
- Phòng thí nghiệm hóa học: Giám sát tốc độ phản ứng và thay đổi nhiệt độ
- Nghiên cứu sinh học: Theo dõi cảm biến phát triển thực vật, yếu tố môi trường
- Toán học: Vẽ biểu đồ hàm số toán học và kết quả thuật toán
Tự động hóa gia đình
- Giám sát năng lượng: Theo dõi mẫu tiêu thụ điện năng
- Tự động hóa vườn: Giám sát độ ẩm đất, mức độ ánh sáng
- Điều khiển HVAC: Trực quan hóa xu hướng nhiệt độ và độ ẩm
- Hệ thống an ninh: Vẽ biểu đồ hoạt động cảm biến chuyển động
Robot và điều khiển
- Điều hướng robot: Vẽ biểu đồ 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
- Sensor Fusion: Kết hợp nhiều số đọc cảm biến
- Quy hoạch đường đi: Trực quan hóa thuật toán di chuyển robot
Khắc phục sự cố
Các vấn đề thường gặp
1. Không có dữ liệu xuất hiện trên biểu đồ
- Kiểm tra trạng thái kết nối WiFi
- Xác minh kết nối WebSocket trong console trình duyệt
- Đảm bảo sendPlotData() đang được gọi thường xuyên
- Kiểm tra Serial Monitor để tìm thông báo lỗi
2. Biểu đồ xuất hiện giật hoặc bất thường
- Triển khai lọc dữ liệu (trung bình trượt)
- Giảm tần suất gửi dữ liệu
- Kiểm tra nhiễu cảm biến hoặc vấn đề kết nối
- Xác minh độ ổn định nguồn điện
3. Vấn đề hiệu suất trình duyệt
- Giảm số 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
- Sử dụng tăng tốc phần cứng trong trình duyệt
4. Kết nối WebSocket bị ngắt
- Kiểm tra cường độ tín hiệu WiFi
- Xác minh cài đặt router (firewall, chặn cổng)
- Triển khai logic kết nối lại trong code tùy chỉnh
- Giám sát việc sử dụng bộ nhớ Arduino
Mẹo debug
Bật ghi log chi tiết
Tạo dữ liệu thử nghiệm
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 WebApps khác
Điều khiển thời gian thực với vẽ biểu đồ
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 vẽ biểu đồ với giao diện điều khiển
- WebMonitor - Thêm khả năng debugging cùng với vẽ biểu đồ
- Ứng dụng tùy chỉnh - Xây dựng công cụ vẽ biểu đồ chuyên dụng của riêng bạn
- Phân tích dữ liệu - Triển khai phân tích thống kê dữ liệu được vẽ biểu đồ
Hỗ trợ
Để được trợ giúp thêm:
- Kiểm tra tài liệu API Reference
- Truy cập các hướng dẫn DIYables: https://newbiely.com/tutorials/arduino-uno-r4/arduino-uno-r4-diyables-webapps
- Diễn đàn cộng đồng Arduino
- Công cụ debugging WebSocket trong console developer của trình duyệt