Trong hướng dẫn này, chúng ta sẽ học cách điều khiển còi báo động chủ động bằng vi điều khiển ESP32 và một transistor. Dự án bao gồm việc bật và tắt còi, tạo ra âm thanh bíp. Với khả năng Wi-Fi và Bluetooth tích hợp của ESP32, bạn có thể mở rộng dự án này thành các ứng dụng IoT phức tạp hơn trong tương lai.
Các linh kiện chúng ta sẽ sử dụng bao gồm bo mạch ESP32, còi báo động chủ động, một transistor (S8050) và một điện trở. Bằng cách nối dây các linh kiện này một cách chính xác, chúng ta có thể điều khiển âm thanh của còi thông qua ESP32. Ngoài ra, chúng tôi sẽ cung cấp tổng quan ngắn gọn về cách nối dây và mã cần thiết để khởi động dự án này. Để làm rõ hơn, hãy xem video đi kèm với hướng dẫn này (trong video ở phút 00:00).
Transistor S87050
Giải thích về phần cứng
Các thành phần chính của dự án này bao gồm vi điều khiển ESP32, còi báo động chủ động và transistor S8050. ESP32 là một vi điều khiển mạnh mẽ có cả Wi-Fi và Bluetooth, cho phép thực hiện nhiều dự án IoT. Còi báo động chủ động tạo ra âm thanh khi có điện áp được đặt vào, trong khi transistor S8050 hoạt động như một công tắc để điều khiển còi bằng tín hiệu điện áp thấp từ ESP32.
Transistor có ba chân: cực thu (collector), cực gốc (base) và cực phát (emitter). Khi điện áp được đặt vào chân base thông qua một điện trở, nó cho phép dòng điện chạy từ cực thu đến cực phát, do đó cấp nguồn cho còi. Thiết lập này đảm bảo chúng ta có thể điều khiển còi một cách an toàn mà không làm quá tải các chân GPIO của ESP32.
Sơ đồ mạch ESP32-13-còi
Chi tiết từ bảng dữ liệu
Nhà sản xuất
SunFounder
Số hiệu linh kiện
TMBB 12 A05
Điện áp hoạt động
3–8 V
Điện áp định mức
5 V
Dòng điện tối đa
30 mA
Tần số dao động
2700 ± 300 Hz
Sử dụng điện trở 1 kΩ để giới hạn dòng điện đến cực gốc của transistor.
Đảm bảo còi báo động chủ động được kết nối đúng với các cực dương và âm.
Kiểm tra kỹ các kết nối chân để tránh đoản mạch.
Sử dụng bảng mạch breadboard để kết nối và điều chỉnh dễ dàng hơn.
Còi có thể hoạt động ở cả 3.3V và 5V, nhưng hãy cấp nguồn theo nhu cầu của mạch của bạn.
Hướng dẫn nối dây
ESP32-13-buzzer-wriing
Để nối dây các linh kiện, hãy bắt đầu bằng cách cắm còi báo động chủ động vào breadboard. Kết nối cực dương của còi với chân 3.3V trên ESP32. Cực âm của còi nên được kết nối với chân cực thu của transistor S8050. Tiếp theo, cắm transistor S8050 vào breadboard, đảm bảo mặt phẳng hướng về phía bạn. Chân bên trái (cực thu) kết nối với cực âm của còi, chân giữa (cực gốc) kết nối với điện trở 1 kΩ, và chân bên phải (cực phát) kết nối với đất.
Bây giờ, lấy đầu còn lại của điện trở 1 kΩ và kết nối nó với chân GPIO 14 trên ESP32. Cuối cùng, kết nối chân cực phát của transistor với thanh nối đất trên breadboard. Đảm bảo tất cả các kết nối được chắc chắn và kiểm tra lại sự thẳng hàng của các chân trước khi cấp nguồn cho mạch.
Ví dụ mã & Hướng dẫn chi tiết
Dưới đây là tổng quan ngắn gọn về mã điều khiển còi. Đầu tiên, chúng ta định nghĩa chân kết nối với còi:
const int buzzerPin = 14; // chân còi
Dòng này thiết lập biến buzzerPin để tham chiếu đến chân 14 trên ESP32, được sử dụng để điều khiển còi.
Tiếp theo, chúng ta đặt chân còi làm đầu ra trong hàm setup():
void setup()
{
pinMode(buzzerPin, OUTPUT); // Đặt làm đầu ra
}
Điều này đảm bảo ESP32 biết sử dụng chân 14 để gửi tín hiệu bật và tắt còi.
Trong hàm loop(), chúng ta tạo một vòng lặp for để kích hoạt còi nhiều lần:
for (int i = 0; i < 50; i++) // Lặp 50 lần và phát một âm ngắn mỗi lần
{
digitalWrite(buzzerPin, HIGH); // Đặt HIGH để làm còi kêu
delay(3); // Chờ 3 mili giây
digitalWrite(buzzerPin, LOW); // LOW để tắt còi
delay(3); //
}
Vòng lặp này sẽ làm còi bíp 50 lần, mỗi lần bíp kéo dài 3 mili giây. Sau khi hoàn thành vòng lặp, có độ trễ 1 giây trước khi lặp lại.
Trình diễn / Điều gì sẽ xảy ra
Khi nối dây và mã được thiết lập chính xác, việc cấp nguồn cho ESP32 sẽ kích hoạt còi, tạo ra một chuỗi các tiếng bíp. Nếu còi không kêu, hãy kiểm tra các kết nối, đặc biệt là hướng của transistor và điện trở. Đảm bảo rằng chân GPIO chính xác đang được sử dụng trong mã và nguồn điện đủ (trong video ở phút 01:30).
812-ESP32 Tutorial 13/55- Arduino code for controlling buzzer
Ngôn ngữ: C++
const int buzzerPin = 14; // the buzzer pin
void setup()
{
pinMode(buzzerPin, OUTPUT); // Set as output
}
void loop()
{
for (int i = 0; i < 50; i++) // Loop 50 times and play a short tone each time
{
digitalWrite(buzzerPin, HIGH); // Set to HIGH to make the buzzer sound
delay(3); // Wait for 3 milliseconds
digitalWrite(buzzerPin, LOW); // LOW to turn off the buzzer
delay(3); //
}
delay(1000); // Wait for 1s before starting the next loop
}
Tiết lộ: Là một đối tác của Amazon, chúng tôi kiếm tiền từ các giao dịch đủ điều kiện. Điều này có nghĩa là chúng tôi có thể nhận được một khoản hoa hồng nhỏ nếu bạn nhấp vào liên kết và thực hiện một giao dịch mà không tốn thêm chi phí nào cho bạn.