ESP32 Cảm Biến Chuyển Động Điều Khiển MP3 Player

Trong hướng dẫn này, chúng ta sẽ khám phá cách sử dụng ESP32, cảm biến chuyển động HC-SR501, và MP3 player để bắt đầu phát một tệp audio đã ghi sẵn khi phát hiện chuyển động. Dự án này rất linh hoạt và có thể được tùy chỉnh cho nhiều ứng dụng khác nhau, chẳng hạn như cung cấp hướng dẫn âm thanh tự động hoặc cảnh báo khi phát hiện sự hiện diện của con người.

Linh Kiện 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 Chuyển Động HC-SR501
1×Module MP3 Player Serial
1×Thẻ Micro SD
1×Loa Aux 3.5mm
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ề MP3 Player và Cảm Biến Chuyển Động

Chưa quen với MP3 player và cảm biến chuyển động, bao gồm sơ đồ chân, chức năng và cách lập trình? Hãy khám phá các hướng dẫn toàn diện về những chủ đề này dưới đây:

Sơ Đồ Đấu Nối

sơ Đồ Đấu nối ESP32 cảm biến chuyển Động mp3 player

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.

Chuẩn Bị

  • Lưu trước tệp mp3 đã ghi sẵn mà chúng ta muốn phát vào thẻ micro SD.
  • Lắp thẻ micro SD vào module MP3 player
  • Kết nối module MP3 player với ESP32
  • Kết nối loa với module MP3 player
  • Kết nối loa với nguồn điện.
  • Kết nối cảm biến chuyển động với ESP32.
  • Thực hiện cài đặt cho cảm biến chuyển động theo bảng dưới đây
Núm Điều Chỉnh Thời Gian TrễVặn ngược chiều kim đồng hồ hoàn toàn.
Núm Điều Chỉnh Phạm Vi Phát HiệnVặn cùng chiều kim đồng hồ hoàn toàn.
Công Tắc Chọn Chế Độ LặpĐặt jumper như hình ảnh hiển thị.
cài đặt ban đầu cảm biến chuyển động ESP32

Code ESP32 - Cảm Biến Chuyển Động Điều Khiển MP3 Player

/* * 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-motion-sensor-mp3-player */ #define CMD_PLAY_NEXT 0x01 #define CMD_PLAY_PREV 0x02 #define CMD_PLAY_W_INDEX 0x03 #define CMD_SET_VOLUME 0x06 #define CMD_SEL_DEV 0x09 #define CMD_PLAY_W_VOL 0x22 #define CMD_PLAY 0x0D #define CMD_PAUSE 0x0E #define CMD_SINGLE_CYCLE 0x19 #define DEV_TF 0x02 #define SINGLE_CYCLE_ON 0x00 #define SINGLE_CYCLE_OFF 0x01 #define MOTION_SENSOR_PIN 21 // The ESP32 pin GPIO21 connected to motion sensor's pin int prev_motion_state; // the previous state of motion sensor int motion_state; // the current state of motion sensor void setup() { Serial.begin(9600); Serial2.begin(9600, SERIAL_8N1, 16, 17); delay(500); // wait chip initialization is complete mp3_command(CMD_SEL_DEV, DEV_TF); // select the TF card delay(200); // wait for 200ms pinMode(MOTION_SENSOR_PIN, INPUT); // set arduino pin to input mode motion_state = digitalRead(MOTION_SENSOR_PIN); } void loop() { prev_motion_state = motion_state; // save the last state motion_state = digitalRead(MOTION_SENSOR_PIN); // read new state if (motion_state == LOW && prev_motion_state == HIGH) { // pin state change: LOW -> HIGH Serial.println("Motion detected!"); mp3_command(CMD_PLAY, 0x0000); // Play the first mp3 file } else if (motion_state == HIGH && prev_motion_state == LOW) { // pin state change: HIGH -> LOW Serial.println("Motion stopped!"); } } void mp3_command(int8_t command, int16_t dat) { int8_t frame[8] = { 0 }; frame[0] = 0x7e; // starting byte frame[1] = 0xff; // version frame[2] = 0x06; // the number of bytes of the command without starting byte and ending byte frame[3] = command; // frame[4] = 0x00; // 0x00 = no feedback, 0x01 = feedback frame[5] = (int8_t)(dat >> 8); // data high byte frame[6] = (int8_t)(dat); // data low byte frame[7] = 0xef; // ending byte for (uint8_t i = 0; i < 8; i++) { Serial2.write(frame[i]); } }

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 theo sơ đồ trên.
  • Kết nối bo mạch ESP32 với PC qua cáp micro USB
  • Mở Arduino IDE trên PC của bạn.
  • Chọn đúng bo mạch ESP32 (ví dụ: ESP32 Dev Module) và cổng COM.
  • Kết nối ESP32 với PC qua cáp USB
  • Mở Arduino IDE, chọn đúng bo mạch và cổng
  • Copy code trên và mở bằng Arduino IDE
  • Nhấn nút Upload trên Arduino IDE để tải code lên ESP32
  • Di chuyển tay trước cảm biến
  • Kiểm tra âm thanh từ MP3 player

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.

Bình Luận