생활 공간에 재미있는 요소를 더하고 싶으신가요?
이 프로젝트는 WS2812 LED 스트립과 장애물 회피 모듈을 사용하여 러닝 라이트(흐르는 빛)를 만드는 것입니다. 장애물이 감지되면 러닝 라이트의 방향이 바뀌어, 집이나 사무실 인테리어에 멋진 분위기를 더합니다.
구매 링크 - ICBanq - ESP32 스타터 키트
준비물 ESP32, 확장 보드, 점퍼 케이블, 장애물 감지 모듈, WS8212 RGB 8 LED 스트립이 필요해요.
WS2812 LED 스트립은 다양한 색상과 패턴을 표시하도록 프로그래밍할 수 있는 일련의 개별 LED로 구성됩니다.
시작하기 전에 보드 연결하기
ESP32 마이크로 컨트롤러를 프로그래밍하려면 Arduino IDE에 ESP32 보드 패키지를 설치해야 합니다. 보드 관리자 창의 검색 창에 ESP32를 입력합니다. 설치 버튼을 클릭하여 설치 프로세스를 시작합니다. 그러면 ESP32 보드 패키지가 다운로드되고 설치됩니다.
이제 Micro USB 케이블을 사용하여 ESP32 WROOM 32E를 컴퓨터에 연결합니다. 방향을 잘 보고 연결하세요.
그런 다음 Tools > Board > ESP32를 클릭하여 올바른 보드인 ESP32 Dev Module을 선택합니다.
ESP32가 컴퓨터에 연결되어 있는 경우 Tools > Port를 클릭하여 올바른 포트를 선택할 수 있습니다.
빠른 선택의 경우 ESP32는 일반적으로 자동 인식이 되지 않으므로, 직접 선택해주셔야합니다.
ESP32 Dev Module을 검색하고 선택해주세요. 그런 다음 포트를 선택하고 확인을 클릭해주세요.
이 프로젝트에서는 특정 방향으로 움직이고 장애물 회피 모듈에 의해 장애물이 감지되면 방향이 바뀌는 주행등을 표시하도록 스트립을 구성했습니다.
ESP32 코드 - 처음 연결하시는 분은
#include <Adafruit_NeoPixel.h>
// Set the number of pixels for the running light
#define NUM_PIXELS 8
// Set the data pin for the RGB LED strip
#define DATA_PIN 14
// Initialize the RGB LED strip object
Adafruit_NeoPixel pixels(NUM_PIXELS, DATA_PIN, NEO_GRB + NEO_KHZ800);
// Initialize the avoid sensor
#define AVOID_PIN 25
void setup() {
// Initialize the RGB LED strip
pixels.begin();
// Initialize the avoid sensor
pinMode(AVOID_PIN, INPUT_PULLUP);
// Set the initial LED color
uint32_t color = pixels.Color(random(256), random(256), random(256));
pixels.fill(color);
pixels.show();
}
void loop() {
// Read the input from the infrared sensor
bool avoid_value = digitalRead(AVOID_PIN);
// Generate a random color for the current pixel
uint32_t color = pixels.Color(random(256), random(256), random(256));
// If no obstacle is detected
if (avoid_value) {
for (int i = 0; i < NUM_PIXELS; i++) {
// Turn on the current pixel with the random color
pixels.setPixelColor(i, color);
// Update the RGB LED strip display
pixels.show();
// Turn off the current pixel
pixels.setPixelColor(i, 0);
delay(100);
}
}
// If detects an obstacle, change the direction of the LED strip
else {
for (int i = NUM_PIXELS - 1; i >= 0; i--) {
pixels.setPixelColor(i, color);
pixels.show();
pixels.setPixelColor(i, 0);
delay(100);
}
}
}
결과 이미지와 동영상입니다.
영상입니다.
여기까지 수고하셨습니다. 즐겁게 개발하세요~~^^
'ESP32' 카테고리의 다른 글
ESP32C3 Ultra-Low Power SoCs 소개 2 (0) | 2025.09.30 |
---|---|
ESP32C3 Ultra-Low Power SoCs 소개 1 (0) | 2025.09.30 |
ESP32 WROOM32 GPIO 할당 테이블 양식 한글 파일 (0) | 2025.09.28 |
ESP32-WROOM-32 핀아웃 참조 Pinout (0) | 2025.09.22 |
ESP32S3 Super Mini GPIO 핀 사용법 5 (0) | 2025.09.15 |
ESP32S3 Super Mini 블루투스 ChatGPT 4 (0) | 2025.09.15 |
ESP32S3 Super Mini 블루투스 사용법 3 (0) | 2025.09.15 |
ESP32S3 Super Mini WiFi 사용 2 (0) | 2025.09.15 |
더욱 좋은 정보를 제공하겠습니다.~ ^^