ESP8266 Cảm biến âm thanh

Cảm biến âm thanh có khả năng phát hiện sự có mặt của âm thanh trong môi trường xung quanh. Nó có thể được sử dụng để tạo ra các dự án phản hồi theo âm thanh, như đèn bật lên khi vỗ tay hoặc một máy cho ăn thú cưng phản hồi theo tín hiệu âm thanh.

Hướng dẫn này chỉ cho bạn cách sử dụng ESP8266 và cảm biến âm thanh để phát hiện âm thanh. Chúng ta sẽ khám phá:

cảm biến âm thanh ESP8266 NodeMCU nodemcu

Sau đó, bạn có thể chỉnh sửa mã nguồn để kích hoạt LED hoặc một đèn (sử dụng rơ-le) khi phát hiện âm thanh, hoặc thậm chí làm cho động cơ servo quay.

Phần cứng cần chuẩn bị

1×ESP8266 NodeMCU ESP-12E
1×Recommended: ESP8266 NodeMCU ESP-12E (Uno-form)
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×dây jumper
1×(Khuyến nghị) Screw Terminal Expansion Board for ESP8266
1×(Khuyến nghị) Power Splitter for ESP8266 Type-C

Or you can buy the following kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)

Giới thiệu 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 nó. Có hai loại mô-đun cảm biến âm thanh:

  • Mô-đun cảm biến âm thanh số: xuất ra giá trị tín hiệu số (BẬT/TẮT)
  • Mô-đun cảm biến âm thanh analog: xuất ra cả giá trị tín hiệu analog và tín hiệu số

Độ nhạy của đầu ra kỹ thuật số có thể được điều chỉnh bằng cách sử dụng một biến trở tích hợp.

Bố trí các chân của cảm biến âm thanh số

Cảm biến âm thanh gồm ba chân:

  • Chân VCC: cần được kết nối tới VCC (3.3V đến 5V)
  • Chân GND: cần được kết nối tới GND (0V)
  • Chân OUT: là chân đầu ra: HIGH khi yên tĩnh và LOW khi có âm thanh được phát hiện. Chân này cần được kết nối tới chân đầu vào của ESP8266.
sơ đồ chân cảm biến âm thanh
image source: diyables.io

Cảm biến âm thanh đi kèm với một biến trở tiện dụng cho phép bạn dễ dàng điều chỉnh độ nhạy của nó. Thêm vào đó, nó có hai đèn LED hiển thị:

  • Một đèn LED báo hiệu trạng thái nguồn
  • Một đèn LED khác báo hiệu trạng thái âm thanh: nó sáng khi có âm thanh được phát hiện và tắt khi không có âm thanh

Bố trí chân của cảm biến âm thanh analog

Cảm biến âm thanh tương tự gồm bốn chân:

  • + pin: cần được kết nối với 5V
  • G pin: cần được kết nối với GND (0V)
  • DO pin: là một chân ra tín hiệu số: HIGH khi yên tĩnh và LOW khi có âm thanh được phát hiện. Chân này cần được kết nối với chân đầu vào số (digital input) của ESP8266.
  • AO pin: là một chân ra tín hiệu analog: phát ra giá trị tương tự cho mức âm thanh. Chân này cần được kết nối với chân đầu vào analog của ESP8266.
sơ đồ chân của cảm biến âm thanh analog
image source: diyables.io

Cách hoạt động

Mô-đun này có một biến trở tích hợp tiện lợi cho phép bạn điều chỉnh độ nhạy âm thanh. Đây là cách cảm biến hoạt động:

  • Khi có âm thanh được phát hiện, chân đầu ra của cảm biến được đặt ở mức thấp.
  • Khi không có âm thanh được phát hiện, chân đầu ra của cảm biến được đặt ở mức cao.

Sơ đồ đấu dây

  • Sơ đồ nối dây giữa ESP8266 và cảm biến âm thanh khi cấp nguồn bằng cổng USB
sơ đồ nối dây cảm biến âm thanh ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

Xem thêm Sơ đồ chân ESP8266Cách cấp nguồn cho ESP8266.

  • Sơ đồ đấu nối giữa ESP8266 và cảm biến âm thanh khi cấp nguồn qua Vin
sơ đồ nối dây cảm biến âm thanh ESP8266 NodeMCU vin

This image is created using Fritzing. Click to enlarge image

Cách Lập Trình Cho Cảm Biến Âm Thanh

  • Khởi tạo chân ESP8266 ở chế độ đầu vào kỹ thuật số bằng cách sử dụng hàm pinMode(). Ví dụ, chân D7
pinMode(D7, INPUT);
  • Đọc trạng thái của chân ESP8266 bằng cách sử dụng hàm digitalRead().
int soundState = digitalRead(D7);

Mã ESP8266 - Phát hiện âm thanh

/* * Mã ESP8266 NodeMCU này được phát triển bởi newbiely.vn * Mã ESP8266 NodeMCU 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/esp8266/esp8266-sound-sensor */ #define SENSOR_PIN D7 // The ESP8266 pin D7 connected to the OUT pin of the sound sensor int prev_state = HIGH; // The previous state from the input pin int sound_state; // The current reading from the input pin void setup() { // Initialize the Serial to communicate with the Serial Monitor. Serial.begin(9600); // initialize the ESP8266's pin as an input pinMode(SENSOR_PIN, INPUT); } void loop() { // read the state of the the ESP8266's input pin sound_state = digitalRead(SENSOR_PIN); if (prev_state == HIGH && sound_state == LOW) Serial.println("The sound has been detected"); else if (prev_state == LOW && sound_state == HIGH) Serial.println("The sound has disappeared"); // save the the last state prev_state = sound_state; }

Hướng dẫn từng bước

Để bắt đầu với ESP8266 trên Arduino IDE, hãy làm theo các bước sau:

  • Hãy xem hướng dẫn cách thiết lập môi trường cho ESP8266 trên Arduino IDE nếu đây là lần đầu bạn sử dụng ESP8266.
  • Nối các thành phần như hình vẽ.
  • Kết nối bo mạch ESP8266 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 bo mạch ESP8266 phù hợp, như (ví dụ NodeMCU 1.0 (ESP-12E Module)), và cổng COM tương ứng của nó.
  • Sao chép mã ở trên và mở bằng Arduino IDE.
  • Nhấp vào nút Tải lên trên Arduino IDE để tải mã lên ESP8266.
  • Vỗ tay trước cảm biến âm thanh.
  • Kiểm tra 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  

Xin lưu ý rằng nếu bạn nhận thấy đèn LED luôn sáng hoặc tắt, bất kể có âm thanh hay không, bạn có thể điều chỉnh độ nhạy của cảm biến âm thanh bằng cách điều chỉnh biến trở.

Bây giờ, với mã được tùy biến, chúng ta có thể làm cho nó kích hoạt một đèn LED hoặc một nguồn sáng khi phát hiện âm thanh. Thậm chí chúng ta có thể làm cho động cơ servo quay. Đối với hướng dẫn chi tiết và thông tin bổ sung, vui lòng tham khảo các bài 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 sự cố với cảm biến âm thanh không hoạt động đúng cách, hãy thử các bước khắc phục sự cố sau:

  • Giảm rung động: Các rung động cơ học và tiếng ồn từ gió có thể ảnh hưởng đến hiệu suất của cảm biến âm thanh. Gắn nó lên một bề mặt ổn định có thể giúp giảm thiểu những nhiễu này.
  • Xem xét phạm vi cảm biến: Hãy lưu ý rằng cảm biến âm thanh này có phạm vi cảm biến giới hạn, khoảng 25 cm. Để thu được các giá trị đo chính xác, hãy phát âm thanh ở gần cảm biến hơn.
  • Kiểm tra nguồn cấp điện: Đảm bảo nguồn cấp điện 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 do đặc tính analogue 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ài hướng dẫn liên quan