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:

ESP32 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 sơ đồ chân
image source: diyables.io

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.
analog cảm biến âm thanh sơ đồ chân
image source: diyables.io

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
ESP32 cảm biến âm thanh sơ đồ đấu dây

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.

how to connect ESP32 and cảm biến âm thanh

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
pinMode(18, INPUT);
  • Đọc trạng thái của chân ESP32 bằng cách sử dụng hàm digitalRead().
int soundState = digitalRead(18);

Code ESP32 - Phát Hiện Âm Thanh

/* * Mã ESP32 này được phát triển bởi newbiely.vn * Mã ESP32 này được cung cấp để sử dụng công khai, không có ràng buộc. * Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: * https://newbiely.vn/tutorials/esp32/esp32-sound-sensor */ #define SENSOR_PIN 18 // ESP32 pin GPIO18 connected to the OUT pin of the sound sensor int lastState = HIGH; // the previous state from the input pin int currentState; // the current reading from the input pin void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); // initialize the ESP32's pin as an input pinMode(SENSOR_PIN, INPUT); } void loop() { // read the state of the the ESP32's input pin currentState = digitalRead(SENSOR_PIN); if (lastState == HIGH && currentState == LOW) Serial.println("The sound has been detected"); else if (lastState == LOW && currentState == HIGH) Serial.println("The sound has disappeared"); // save the the last state lastState = currentState; }

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.
COM6
Send
The sound has been detected The sound has disappeared The sound has been detected The sound has disappeared
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

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.

Tham Chiếu Hàm

Bình Luận