Ví dụ ESP32 WebSlider Hướng dẫn Giao diện Điều khiển Hai Thanh Trượt
Tổng quan
Ví dụ WebSlider cung cấp hai thanh trượt độc lập có thể truy cập thông qua trình duyệt web. Được thiết kế cho nền tảng giáo dục ESP32 với khả năng analog được cải tiến, các tính năng điều khiển chính xác và các mô-đun giáo dục tích hợp để học PWM và điện tử analog. Mỗi thanh trượt cung cấp giá trị từ 0-255, làm cho chúng phù hợp cho điều khiển PWM, điều chỉnh độ sáng, điều khiển tốc độ động cơ và bất kỳ ứng dụng nào yêu cầu các giá trị điều khiển có đặc tính analog.

Tính năng
- Hai thanh trượt đôi: Hai thanh trượt độc lập (khoảng 0-255 cho mỗi thanh)
- Giá trị thời gian thực: Cập nhật giá trị tức thì qua giao tiếp WebSocket
- Tương thích PWM: Giá trị 8-bit (0-255) hoàn hảo cho các hàm analogWrite()
- Phản hồi trực quan: Hiển thị giá trị theo thời gian thực cho từng thanh trượt
- Nút thiết lập trước: Giá trị thiết lập trước nhanh cho các cấu hình phổ biến
- Hỗ trợ cảm ứng và chuột: Hoạt động trên máy tính để bàn, máy tính bảng và thiết bị di động
- Thiết kế đáp ứng: Phù hợp với các kích thước màn hình khác nhau
- Lưu giá trị: Các thanh trượt nhớ vị trí cuối cùng khi tải lại trang
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 làm theo các chỉ dẫn này 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 hướng dẫn ESP32 - Cài Đặt Phần Mềm.
- Kết nối bảng ESP32 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 bảng ESP32 phù hợp (ví dụ ESP32 Dev Module) và cổng COM.
- Đi tới biểu tượng Thư viện ở 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.
- Nhấn 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ấn nút Cài đặt Tất cả để cài đặt tất cả các phụ thuộc thư viện.

- Trong Arduino IDE, hãy vào File Examples DIYables ESP32 WebApps WebSlider ví dụ, hoặc sao chép đoạn mã ở trên và dán vào trình soạn thảo của Arduino IDE
- Cấu hình thông tin đăng nhập WiFi trong mã bằng cách cập nhật các dòng này:
- Nhấn nút Tải lên trên Arduino IDE để tải mã lên ESP32
- Mở Serial Monitor
- Xem kết quả trên Serial Monitor. Nó trông như dưới đây
- Nếu bạn không thấy gì, hãy khởi động lại bo mạch ESP32.
- Ghi chú đị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 điện thoại thông minh 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 Slider, bạn sẽ thấy giao diện người dùng của ứng dụng Web Slider như dưới đây:

- Hoặc bạn cũng có thể truy cập trang trực tiếp bằng địa chỉ IP theo sau là /web-slider. Ví dụ: http://192.168.0.2/web-slider
- Hãy thử di chuyển hai thanh trượt để điều khiển các giá trị analog (0-255) và xem phản hồi thời gian thực trong Trình theo dõi Serial.
Tùy biến sáng tạo - Chỉnh sửa mã nguồn cho dự án của bạn
Thiết lập Giá trị Thanh Trượt Mặc Định
Cài đặt vị trí thanh trượt ban đầu:
Cách sử dụng các thanh trượt
Các điều khiển giao diện Web
Giao diện thanh trượt cung cấp:
- Thanh trượt 1: Thanh trượt điều khiển đầu tiên có hiển thị giá trị (0-255)
- Thanh trượt 2: Thanh trượt điều khiển thứ hai có hiển thị giá trị (0-255)
- Hiển thị giá trị: Các giá trị số theo thời gian thực cho cả hai thanh trượt
- Nút thiết lập trước: Truy cập nhanh đến các giá trị phổ biến (0%, 25%, 50%, 75%, 100%)
Điều khiển các thanh trượt
Máy tính để bàn (Điều khiển chuột)
- Nhấp chuột và kéo: Nhấp chuột vào tay nắm của thanh trượt và kéo để điều chỉnh giá trị
- Vị trí nhấp chuột: Nhấp chuột bất cứ đâu trên thanh trượt để nhảy tới giá trị đó
- Điều khiển tinh chỉnh: Sử dụng những chuyển động chuột nhỏ để điều chỉnh chính xác
Điện thoại di động / Máy tính bảng (Điều khiển cảm ứng)
- Chạm và Kéo: Chạm vào đầu kéo của thanh trượt và kéo đến vị trí mới
- Chạm Vị Trí: Chạm lên thanh trượt để thiết lập giá trị
- Điều khiển mượt mà: Việc kéo bằng ngón tay cho phép thay đổi giá trị một cách mượt mà
Khoảng giá trị
Mỗi thanh trượt cung cấp:
- Giá trị tối thiểu: 0 (0% - tắt hoàn toàn)
- Giá trị tối đa: 255 (100% - cường độ tối đa)
- Độ phân giải: 256 bước rời rạc (độ chính xác 8-bit)
- Tương thích PWM: Sử dụng trực tiếp với hàm analogWrite()
Ví dụ về Lập trình
Trình xử lý thanh trượt cơ bản
Điều khiển độ sáng LED
Điều khiển vị trí của động cơ servo
Điều khiển tốc độ động cơ
Điều khiển màu LED RGB
Kỹ thuật Lập trình Nâng cao
Làm mịn giá trị
Điều khiển dựa trên ngưỡng
Hệ thống Giá trị Đặt trước
Các ví dụ về tích hợp phần cứng
Điều khiển dải LED
Điều khiển tốc độ quạt
Điều khiển âm lượng
Khắc phục sự cố
Các vấn đề phổ biến
1. Các thanh trượt không phản hồi
- Kiểm tra kết nối WebSocket trong console của trình duyệt
- Kiểm tra kết nối mạng giữa thiết bị và Arduino
- Làm mới trang trình duyệt để đặt lại kết nối
- Kiểm tra Serial Monitor để xem lỗi kết nối
2. Giá trị không đạt được phạm vi đầy đủ
- Xác nhận cài đặt phạm vi của thanh trượt trên giao diện web
- Kiểm tra các vấn đề ánh xạ giá trị trong hàm callback
- Kiểm tra với các trình duyệt hoặc thiết bị khác nhau
- Điều khiển giật cục hoặc không nhất quán
- Thực hiện làm mượt giá trị cho các thay đổi diễn ra từ từ
- Kiểm tra các vấn đề về độ trễ mạng
- Thêm cơ chế debounce cho các thay đổi giá trị nhanh
- Đầu ra PWM không hoạt động
- Xác nhận các chân có hỗ trợ PWM (kiểm tra sơ đồ chân ESP32)
- Đảm bảo hàm analogWrite() được gọi với đúng số chân
- Kiểm tra kết nối phần cứng và các yêu cầu về tải
Mẹo gỡ lỗi
Thêm gỡ lỗi toàn diện:
Ý tưởng dự án
Dự án điều khiển chiếu sáng
- Điều khiển độ sáng của ánh sáng trong phòng
- Giao diện pha màu RGB
- Điều khiển tốc độ hoạt hình của dải đèn LED
- Điều khiển cường độ ánh sáng sân khấu
Các dự án điều khiển động cơ
- Điều khiển tốc độ của robot
- Điều chỉnh tốc độ quạt
- Điều khiển lưu lượng bơm
- Tốc độ băng tải
Các dự án âm thanh
- Giao diện điều chỉnh âm lượng
- Điều khiển âm sắc và bộ cân bằng âm thanh
- Cường độ hiệu ứng âm thanh
- Điều khiển trực quan hóa nhạc
Tự động hóa gia đình
- Điều khiển khí hậu (cường độ sưởi ấm/làm mát)
- Điều khiển vị trí rèm cửa sổ
- Điều khiển lưu lượng hệ thống tưới nước
- Độ sáng/âm lượng của thiết bị thông minh
Tích hợp với các ví dụ khác
Kết hợp với WebJoystick
Sử dụng thanh trượt để giới hạn tốc độ và joystick để điều khiển hướng.
Kết hợp với WebDigitalPins
Sử dụng thanh trượt để điều khiển PWM và các chân số để bật/tắt:
Các bước tiếp theo
Sau khi thành thạo ví dụ WebSlider, hãy thử:
- WebJoystick - Để điều khiển theo hướng hai chiều (2D)
- WebDigitalPins - Để điều khiển bật/tắt rời rạc
- WebMonitor - Để gỡ lỗi giá trị của thanh trượt
- MultipleWebApps - Kết hợp thanh trượt với các điều khiển khác
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