ESP32 - 모션 센서 - LED 스트립 | ESP32 - Motion Sensor - LED Strip

이 가이드에서는 ESP32, HC-SR501 모션 센서, 그리고 LED 스트립을 사용하여 매끄러운 조명 자동화 시스템을 만드는 방법을 깊이 있게 다룰 것입니다. 이 시스템은 인체 감지시 LED 스트립을 활성화하도록 전문적으로 설계되어, 다음을 포함한 다양한 용도에 유용하고 적합하도록 만들어졌습니다.

준비물

1×ESP-WROOM-32 Dev Module 쿠팡 | Amazon
1×USB Cable Type-C 쿠팡 | Amazon
1×HC-SR501 Motion Sensor Amazon
1×DotStar RGB LED Strip Amazon
1×5V Power Adapter Amazon
1×DC Power Jack 쿠팡 | Amazon
1×Jumper Wires Amazon
1×(Recommended) ESP32 Screw Terminal Adapter 쿠팡 | Amazon
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

LED 스트립 및 모션 센서에 대하여

LED 스트립 및 모션 센서에 대해 잘 모르시나요? 핀아웃, 기능, 프로그래밍을 포함한 이 주제들에 대한 종합적인 튜토리얼을 아래에서 살펴보세요:

NeoPixel, WS2812B, 또는 DotStar LED 스트립 중 어느 것을 사용해도 됩니다. 배선의 단순성을 위해, 이 튜토리얼은 구체적으로 DotStar LED 스트립을 사용합니다. 다른 LED 스트립 유형에 코드를 적용하는 것은 간단하며, 단순히 위의 튜토리얼을 참고하시면 됩니다.

선연결

ESP32 Motion Sensor LED strip Wiring Diagram

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

ESP32 및 다른 구성 요소에 전원을 공급하는 방법에 대해 잘 알지 못하는 경우, 다음 튜토리얼에서 안내를 찾을 수 있습니다: ESP32 전원 공급 방법.

초기 설정

Time Delay AdjusterScrew it in anti-clockwise direction fully.
Detection Range AdjusterScrew it in clockwise direction fully.
Repeat Trigger SelectorPut jumper as shown on the image.
esp32 motion sensor initial setting

ESP32 코드 - 모션 센서가 LED 스트립을 제어합니다

/* * 이 ESP32 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP32 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp32/esp32-motion-sensor-led-strip */ #include <Adafruit_DotStar.h> #define NUMPIXELS 144 // DotStar 스트립 내의 LED 개수 #define DOTSTAR_DATA_PIN 16 // ESP32 핀 GPIO16이 DotStar의 데이터 핀에 연결됨 #define DOTSTAR_CLOCK_PIN 17 // ESP32 핀 GPIO17이 DotStar의 클록 핀에 연결됨 #define MOTION_SENSOR_PIN 25 // ESP32 핀 GPIO25가 모션 센서의 OUTPUT 핀에 연결됨 int motion_state = LOW; // 모션 센서 핀의 현재 상태 int prev_motion_state = LOW; // 모션 센서 핀의 이전 상태 Adafruit_DotStar strip(NUMPIXELS, DOTSTAR_DATA_PIN, DOTSTAR_CLOCK_PIN, DOTSTAR_BRG); void setup() { Serial.begin(9600); strip.begin(); // NeoPixel 스트립 객체 초기화 (필수) strip.show(); // 가능한 빨리 모든 픽셀을 끔 strip.setBrightness(255); pinMode(MOTION_SENSOR_PIN, INPUT); // ESP32 핀을 입력 모드로 설정 } void loop() { prev_motion_state = motion_state; // 이전 상태 저장 motion_state = digitalRead(MOTION_SENSOR_PIN); // 새로운 상태 읽기 if (prev_motion_state == LOW && motion_state == HIGH) { // 핀 상태 변경: LOW -> HIGH Serial.println("Motion detected!"); // led 스트립을 켭니다. for (int pixel = 0; pixel < NUMPIXELS; pixel++) { // 빨간색 int r = 255; // 원하는 색상으로 변경 int g = 0; // 원하는 색상으로 변경 int b = 0; // 원하는 색상으로 변경 strip.setPixelColor(pixel, g, r, b); // 각 픽셀에 대한 색상 설정 } strip.show(); } else if (prev_motion_state == HIGH && motion_state == LOW) { // 핀 상태 변경: HIGH -> LOW Serial.println("Motion stopped!"); strip.clear(); // LED 스트립 상의 모든 픽셀을 끕니다 strip.show(); } }

사용 방법

ESP32를 처음 사용하는 경우, Arduino IDE에서 ESP32 환경 설정 방법을 확인하세요.

위 이미지와 같이 배선을 하세요.

ESP32 보드를 마이크로 USB 케이블을 사용하여 PC에 연결하세요.

PC에서 Arduino IDE를 엽니다.

올바른 ESP32 보드(예: ESP32 Dev Module)와 COM 포트를 선택하세요.

USB 케이블을 통해 ESP32를 PC에 연결하세요.

Arduino IDE를 열고, 올바른 보드와 포트를 선택하세요.

Arduino IDE의 왼쪽 바에 있는 Libraries 아이콘을 클릭하세요.

“Adafruit DotStar”를 검색하고, Adafruit의 DotStar 라이브러리를 찾으세요.

DotStar 라이브러리를 설치하려면 Install 버튼을 클릭하세요.

ESP32 DotStar library

의존성을 설치하라는 요청을 받게 됩니다. Install All 버튼을 클릭하십시오.

ESP32 DotStar library
  • 위의 코드를 복사하고 Arduino IDE로 열기
  • 코드를 ESP32에 업로드하기 위해 Arduino IDE에서 Upload 버튼을 클릭하세요
  • 센서 앞에서 손을 움직이세요
  • LED 스트립을 확인하세요

코드를 수정하여 조명 효과를 추가할 수 있습니다.

동영상

비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!