ESP32 Cảm Biến Âm Thanh Servo Motor
Trong hướng dẫn này, chúng ta sẽ khám phá cách sử dụng cảm biến âm thanh để điều khiển servo motor. Cụ thể, chúng ta sẽ tìm hiểu hai ứng dụng thú vị:
- Công tắc âm thanh: Khi phát hiện âm thanh (ví dụ tiếng gõ), ESP32 sẽ xoay servo motor đến 90 độ nếu nó đang ở 0 độ, và về 0 độ nếu nó đang ở 90 độ.
- Relay kích hoạt bằng âm thanh: Khi phát hiện âm thanh, ESP32 sẽ xoay servo motor đến 90 độ trong một khoảng thời gian cụ thể, sau đó xoay trở lại 0 độ.
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 | × | Cảm Biến Âm Thanh | ||
| 1 | × | động cơ servo | ||
| 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ề Servo Motor và Cảm Biến Âm Thanh
Nếu bạn chưa biết về servo motor và cảm biến âm thanh (sơ đồ chân, cách hoạt động, cách lập trình...), hãy tìm hiểu trong các hướng dẫn sau:
Sơ Đồ Đấu Nối

This image is created using Fritzing. Click to enlarge image
Nếu bạn chưa rõ cách cấp nguồn cho ESP32 và các linh kiện khác, xem: Cách Cung Cấp Nguồn Điện Cho ESP32.
Code ESP32 - Công Tắc Âm Thanh chuyển đổi Góc của Servo Motor
Code dưới đây sẽ chuyển đổi góc của servo motor giữa 0 và 90 độ mỗi khi phát hiện âm thanh.
Các Bước Thực Hiện
- Nếu đây là lần đầu bạn sử dụng ESP32, hãy xem ESP32 - Cài Đặt Phần Mềm.
- Thực hiện đấu nối như hình ảnh trên.
- Kết nối board ESP32 với PC qua cáp micro USB
- Mở Arduino IDE trên PC của bạn.
- Chọn đúng board ESP32 (ví dụ: ESP32 Dev Module) và cổng COM.
- Nhấp vào biểu tượng Libraries ở thanh bên trái của Arduino IDE.
- Gõ ESP32Servo trong ô tìm kiếm, sau đó tìm thư viện servo của Kevin Harrington, John K. Bennett.
- Nhấp nút Install để cài đặt thư viện servo motor cho ESP32.

- Kết nối ESP32 với PC qua cáp USB
- Mở Arduino IDE, chọn đúng board và cổng
- Sao chép code trên và mở bằng Arduino IDE
- Nhấp nút Upload trên Arduino IDE để tải code lên ESP32
- Vỗ tay trước cảm biến âm thanh
- Quan sát sự thay đổi của servo motor
Code ESP32 - Servo Motor kích hoạt bằng Âm Thanh trong một khoảng thời gian
Code dưới đây sẽ xoay servo motor đến 90 độ trong một khoảng thời gian khi phát hiện âm thanh. Sau khoảng thời gian đó, servo motor sẽ xoay trở lại 0 độ.
Xin lưu ý rằng code được đề cập ở trên sử dụng hàm delay() để đơn giản hóa. Tuy nhiên, nếu bạn thêm code khác, nó có thể bị chặn trong thời gian delay. Để giải quyết vấn đề này, code sau đây thực hiện cách tiếp cận không chặn bằng cách sử dụng hàm millis() thay vì delay để tránh bị chặn.
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.