ESP32 Cảm Biến Chuyển Động Dải LED

Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách tạo một hệ thống tự động hóa chiếu sáng hoàn chỉnh sử dụng ESP32, cảm biến chuyển động HC-SR501 và dải LED. Hệ thống này được thiết kế chuyên nghiệp để kích hoạt dải LED khi phát hiện sự hiện diện của con người, tạo ra sự linh hoạt và phù hợp với nhiều ứng dụng khác nhau, bao gồm:

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×Dải LED RGB DotStar
1×Adapter Nguồn 5V
1×Jack Nguồn DC
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ề Dải LED và Cảm Biến Chuyển Động

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

Bạn có thể linh hoạt sử dụng dải LED NeoPixel, WS2812B hoặc DotStar. Để đơn giản hóa việc kết nối, hướng dẫn này sử dụng cụ thể Dải LED DotStar. Việc điều chỉnh code cho các loại dải LED khác rất đơn giản, chỉ cần tham khảo các hướng dẫn trên để được chỉ dẫn.

Sơ Đồ Kết Nối

sơ Đồ kết nối ESP32 cảm biến chuyển Động dải LED

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ài Đặt Ban Đầu

Bộ Điều Chỉnh Thời Gian TrễVặn theo hướng ngược kim đồng hồ hoàn toàn.
Bộ Điều Chỉnh Phạm Vi Phát HiệnVặn theo hướng kim đồng hồ hoàn toàn.
Bộ Chọn Kích Hoạt LặpĐặt jumper như hiển thị trong hình ảnh.
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 Dải LED

/* * 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-led-strip */ #include <Adafruit_DotStar.h> #define NUMPIXELS 144 // Number of LEDs in DotStar strip #define DOTSTAR_DATA_PIN 16 // The ESP32 pin GPIO16 connected to the data pin of DotStar #define DOTSTAR_CLOCK_PIN 17 // The ESP32 pin GPIO17 connected to the clock pin of DotStar #define MOTION_SENSOR_PIN 25 // The ESP32 pin GPIO25 connected to the OUTPUT pin of motion sensor int motion_state = LOW; // current state of motion sensor's pin int prev_motion_state = LOW; // previous state of motion sensor's pin Adafruit_DotStar strip(NUMPIXELS, DOTSTAR_DATA_PIN, DOTSTAR_CLOCK_PIN, DOTSTAR_BRG); void setup() { Serial.begin(9600); strip.begin(); // INITIALIZE NeoPixel strip object (REQUIRED) strip.show(); // Turn OFF all pixels ASAP strip.setBrightness(255); pinMode(MOTION_SENSOR_PIN, INPUT); // set ESP32 pin to input mode } void loop() { prev_motion_state = motion_state; // store old state motion_state = digitalRead(MOTION_SENSOR_PIN); // read new state if (prev_motion_state == LOW && motion_state == HIGH) { // pin state change: LOW -> HIGH Serial.println("Motion detected!"); // turn on the led strip for (int pixel = 0; pixel < NUMPIXELS; pixel++) { // red color int r = 255; // CHANGE COLOR AS YOUR DESIRE int g = 0; // CHANGE COLOR AS YOUR DESIRE int b = 0; // CHANGE COLOR AS YOUR DESIRE strip.setPixelColor(pixel, g, r, b); // set color for each pixel } strip.show(); } else if (prev_motion_state == HIGH && motion_state == LOW) { // pin state change: HIGH -> LOW Serial.println("Motion stopped!"); strip.clear(); // turn off all pixel on LED strip strip.show(); } }

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 kết nối như hình ảnh trên.
  • Kết nối bo mạch ESP32 với PC qua cáp micro USB
  • Mở Arduino IDE trên PC.
  • 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
  • Click vào biểu tượng Libraries trên thanh bên trái của Arduino IDE.
  • Tìm kiếm "Adafruit DotStar", sau đó tìm thư viện DotStar của Adafruit
  • Click nút Install để cài đặt thư viện DotStar.
thư viện dotstar ESP32
  • Bạn sẽ được yêu cầu cài đặt dependency. Click nút Install All.
thư viện dependency dotstar ESP32
  • Copy code trên và mở bằng Arduino IDE
  • Click nút Upload trên Arduino IDE để upload code lên ESP32
  • Di chuyển tay trước cảm biến
  • Kiểm tra dải LED

Bạn có thể chỉnh sửa code để thêm hiệu ứng ánh sáng.

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