ESP32 Sound Sensor (Cảm Biến Âm Thanh)
Cảm biến âm thanh có khả năng phát hiện sự hiện diện của âm thanh trong môi trường xung quanh. Nó có thể được sử dụng để tạo ra những dự án phản ứng với âm thanh thú vị như đèn kích hoạt bằng tiếng vỗ tay hoặc máy cho thú cưng ăn phản ứng với âm thanh.
Trong hướng dẫn này, chúng ta sẽ học cách sử dụng ESP32 và cảm biến âm thanh để phát hiện âm thanh. Chúng ta sẽ tìm hiểu những nội dung sau:
- Kết nối cảm biến âm thanh với ESP32
- Lập trình ESP32 để phát hiện âm thanh bằng cảm biến âm thanh

Sau đó, bạn có thể linh hoạt điều chỉnh code để kích hoạt LED hoặc đèn (sử dụng relay) khi phát hiện âm thanh, hoặc thậm chí cho phép servo motor quay.
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 | × | Digital Sound Sensor | ||
| 1 | × | Analog Sound Sensor | ||
| 1 | × | breadboard | ||
| 1 | × | dây jumper | ||
| 1 | × | (Tùy chọn) 5V Power Adapter for ESP8266 | ||
| 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ề Cảm Biến Âm Thanh
Cảm biến âm thanh có thể được sử dụng để phát hiện âm thanh trong môi trường xung quanh. Có hai loại module cảm biến âm thanh:
- Module cảm biến âm thanh digital: xuất tín hiệu digital (ON/OFF)
- Module cảm biến âm thanh analog: xuất cả tín hiệu analog và digital
Độ nhạy của đầu ra digital có thể được điều chỉnh bằng cách sử dụng potentiometer tích hợp.
Pinout Cảm Biến Âm Thanh Digital
Cảm biến âm thanh digital có ba chân:
- Chân VCC: cần được kết nối với VCC (3.3V đến 5V)
- Chân GND: cần được kết nối với GND (0V)
- Chân OUT: là chân đầu ra: HIGH khi im lặng và LOW khi phát hiện âm thanh. Chân này cần được kết nối với chân input của ESP32.

Cảm biến âm thanh có potentiometer tích hợp tiện lợi cho phép bạn dễ dàng điều chỉnh độ nhạy. Ngoài ra, nó còn có hai đèn LED báo hiệu:
- Một đèn LED báo hiệu trạng thái nguồn điện.
- Đèn LED khác báo hiệu trạng thái âm thanh, bật khi phát hiện âm thanh và tắt khi im lặng.
Pinout Cảm Biến Âm Thanh Analog
Cảm biến âm thanh analog có bốn chân:
- Chân +: cần được kết nối với 5V
- Chân G: cần được kết nối với GND (0V)
- Chân DO: là chân đầu ra digital: HIGH khi im lặng và LOW khi phát hiện âm thanh. Chân này cần được kết nối với chân digital input của ESP32.
- Chân AO: là chân đầu ra analog: xuất giá trị analog biểu thị mức âm thanh. Chân này cần được kết nối với chân analog input của ESP32.

Cảm biến âm thanh analog có potentiometer tích hợp tiện lợi cho phép bạn dễ dàng điều chỉnh độ nhạy cho đầu ra digital. Ngoài ra, nó còn có hai đèn LED báo hiệu:
- Một đèn LED báo hiệu trạng thái nguồn điện.
- Đèn LED khác báo hiệu trạng thái âm thanh, bật khi phát hiện âm thanh và tắt khi im lặng.
Cách Hoạt Động
Module bao gồm potentiometer tích hợp tiện lợi cho phép bạn điều chỉnh độ nhạy âm thanh. Dưới đây là cách hoạt động của chân output của cảm biến:
- Khi phát hiện âm thanh, chân output được đặt ở mức LOW.
- Khi không phát hiện âm thanh, chân output được đặt ở mức HIGH.
Sơ Đồ Kết Nối
- Cách kết nối ESP32 và cảm biến âm thanh sử dụng breadboard

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.
- Cách kết nối ESP32 và cảm biến âm thanh sử dụng screw terminal block breakout board

Cách Lập Trình Cho Cảm Biến Âm Thanh
- Khởi tạo chân ESP32 ở chế độ digital input bằng cách sử dụng hàm pinMode(). Ví dụ, chân GPIO18
- Đọc trạng thái của chân ESP32 bằng cách sử dụng hàm digitalRead().
Code ESP32 - Phát Hiện Âm Thanh
Các Bước Nhanh
- Nếu đây là lần đầu tiên bạn sử dụng ESP32, hãy xem ESP32 - Cài Đặt Phần Mềm.
- Sao chép code trên và mở bằng Arduino IDE
- Nhấp nút Upload trên Arduino IDE để upload code lên ESP32
- Vỗ tay trước cảm biến âm thanh
- Xem kết quả trên Serial Monitor.
Hãy lưu ý rằng nếu bạn nhận thấy đèn LED trạng thái luôn sáng hoặc tắt, ngay cả khi có âm thanh, bạn có thể cần điều chỉnh potentiometer để tinh chỉnh độ nhạy âm thanh của cảm biến.
Bây giờ, chúng ta có thể tự do tùy chỉnh code và làm cho nó kích hoạt LED hoặc đèn khi phát hiện âm thanh. Chúng ta thậm chí có thể làm cho servo motor quay theo đầu vào âm thanh. Để có hướng dẫn chi tiết hơn và các bước thực hiện từng bước, bạn có thể tham khảo các hướng dẫn được cung cấp ở cuối hướng dẫn này.
Khắc Phục Sự Cố
Nếu bạn gặp bất kỳ vấn đề nào với chức năng của cảm biến âm thanh, hãy cân nhắc các bước khắc phục sự cố sau:
- Giảm rung động: Rung động cơ học và tiếng ồn gió có thể ảnh hưởng đến hiệu suất của cảm biến âm thanh. Để giảm thiểu những nhiễu loạn này, hãy thử gắn cảm biến âm thanh trên bề mặt ổn định.
- Cân nhắc về phạm vi cảm biến: Hãy nhớ rằng cảm biến âm thanh này có phạm vi cảm biến hạn chế khoảng 10 inch. Để có kết quả chính xác, hãy thử tạo âm thanh gần cảm biến hơn.
- Kiểm tra nguồn cấp: Đảm bảo rằng nguồn cấp sạch và không có nhiễu, vì cảm biến âm thanh nhạy cảm với nhiễu nguồn cấp do tính chất analog của 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.