메뉴 전체보기

회원메뉴

ESP32-C3 및 Blynk를 탑재한 Wi-Fi 제어형 WS2812 LED 램프 > 게시판

본문 바로가기

쇼핑몰 검색

NO. 3127
제목 : ESP32-C3 및 Blynk를 탑재한 Wi-Fi 제어형 WS2812 LED 램프
2026-08-30 10:34

소개: ESP32-C3 및 Blynk를 탑재한 Wi-Fi 제어형 WS2812 LED 램프


이 프로젝트에서는 다음을 사용하여 작은 RGB LED 램프를 만드는 방법을 보여드리겠습니다. ESP32-C3, 8×8 WS2812 LED 매트릭스, 그리고 Blynk.

이 램프는 맞춤형 Blynk 인터페이스를 통해 스마트폰으로 제어할 수 있습니다. 램프를 켜고 끌 수 있으며, 미리 설정된 여러 색상 중에서 선택할 수 있습니다. 또한 Blynk 인터페이스에는 램프의 현재 상태와 색상을 나타내는 이미지가 표시됩니다.

이 프로젝트에서는 맞춤형 LED 컨트롤러 PCB를 사용하지만, 동일한 원리를 브레드보드나 다른 ESP32 기반 구성에 적용할 수도 있습니다.

이 컨트롤러는 74AHCT125N 레벨 시프터 를 사용하여 ESP32-C3의 3.3V 논리 신호를 WS2812 LED에서 사용하는 5V 논리 레벨로 변환합니다.

아래 링크를 통해 이 프로젝트에 대한 전체 동영상 튜토리얼을 확인하실 수 있습니다



제작할 것

완성된 램프에는 다음과 같은 구성 요소가 포함됩니다:

  1. ESP32-C3 마이크로컨트롤러
  2. 8×8 WS2812 RGB LED 매트릭스
  3. 74AHCT125N 논리 레벨 변환기
  4. Blynk 스마트폰 인터페이스
  5. 5V 전원 공급 장치
  6. 3D 프린팅으로 제작된 램프 외장

이 램프에는 선택할 수 있는 다섯 가지 색상이 있습니다:

  1. 흰색
  2. 빨강
  3. 파랑
  4. 녹색
  5. 핑크




STEP 1. 준비물


준비물


준비물


준비물


다음 구성 요소가 필요합니다:

  1. ESP32-C3 개발 보드
  2. 8×8 WS2812 LED 매트릭스
  3. 74AHCT125N 논리 레벨 변환기
  4. 맞춤형 LED 컨트롤러 PCB 또는 브레드보드
  5. 5V 직류 전원 공급 장치
  6. DC 전원 소켓
  7. 듀폰 전선
  8. M3 나사
  9. 양면 테이프
  10. 3D 프린팅으로 제작된 램프 외함

컨트롤러 PCB는 WS2812 매트릭스용 전용 커넥터를 제공하며, ESP32-C3와 LED를 연결하는 데 필요한 레벨 변환 회로를 포함하고 있습니다.




STEP 2. LED 컨트롤러의 작동 원리


ESP32-C3는 3.3V 로직으로 작동하는 반면, WS2812 LED는 5V 전원으로 구동됩니다.

74AHCT125N은 74AHCT125N 논리 레벨 버퍼로 사용됩니다. 이 장치는 ESP32-C3에서 나오는 3.3V 신호를 WS2812 데이터 입력에 적합한 5V 신호로 변환합니다.

기본 신호 경로는 다음과 같습니다:

ESP32-C3 → 74AHCT125N → WS2812 LED 매트릭스

LED 매트릭스는 5V 전원으로 구동됩니다.

이 프로젝트에서는 컨트롤러를 WS2812 LED를 제어하는 용도로만 사용합니다. 컨트롤러에서 제공하는 다른 기능은 필요하지 않습니다.




STEP 3. LED 매트릭스 연결하기


LED 매트릭스 연결하기


이번 프로젝트에서는 제가 직접 제작한 맞춤형 LED 컨트롤러 PCB를 사용했습니다. 이 PCB는 여러 LED 프로젝트에 사용할 수 있도록 설계한 것으로, 몇 가지 추가 구성 요소와 기능이 포함되어 있지만 이는 이 램프에는 필요하지 않습니다.

동일한 PCB를 제작할 필요는 없습니다. 이 프로젝트에 필요한 부품만 사용해 직접 PCB를 만들거나 브레드보드에 회로를 구성할 수 있습니다. 아래 배선은 관련 연결을 보여 줍니다.

  1. ESP32-C3 GPIO3 → 74AHCT125N 1A
  2. 74AHCT125N 1Y → 직렬 저항 → WS2812 DIN
  3. 74AHCT125N 1OE → GND 로 연결하여 채널을 활성화합니다.
  4. 5V → ESP32-C3, 74AHCT125N VCC 및 WS2812 +5V
  5. 모든 GND 연결은 공통이어야 합니다.

74AHCT125N은 ESP32-C3의 3.3V 데이터 신호를 WS2812 LED에 적합한 5V 로직 신호로 변환합니다.

1000 µF 전해 콘덴서를 LED 스트립 근처의 5V와 GND 레일 사이에 연결하면 LED 밝기가 변할 때 발생하는 전류 변동을 완화하는 데 도움이 됩니다.

데이터 신호가 WS2812 스트립의 DIN/입력 단자 에 연결되어 있는지 확인하십시오.

신호 경로:

ESP32-C3 GPIO3 → 74AHCT125N → 저항 → WS2812 DIN


더 간단한 방법

회로를 단순화하려면 74AHCT125N 레벨 시프터를 생략하고 WS2812 데이터 입력을 ESP32-C3의 3.3V GPIO 핀에 직접 연결할 수 있습니다. 예를 들어 GPIO3입니다.

이 경우 ESP32-C3와 LED 스트립 모두에 5V 전원 공급 장치로 전원을 공급하고, 두 장치의 접지를 서로 연결한 다음 GPIO3를 LED 스트립의 DIN 핀에 직접 연결하면 됩니다.

이렇게 하면 대부분의 경우 작동할 가능성이 높으며, 실제로 많은 WS2812 설치가 이 방식으로 작동합니다. 그러나 WS2812는 5V로 전원을 공급할 때 5V 로직 레벨 데이터 신호 를 사용하도록 규정되어 있습니다. 저는 3.3V 신호가 실제로 종종 작동한다는 점에 의존하기보다 권장 방식을 따르고 싶어 레벨 시프터를 사용하기로 했습니다.

따라서 이 프로젝트에 레벨 시프터가 반드시 필요한 것은 아니지만, ESP32-C3와 WS2812 LED 사이에 더 안정적이고 기술적으로 올바른 인터페이스를 제공합니다.




STEP 4. Arduino 라이브러리 설치하기


이 프로젝트는 Arduino IDE를 사용하여 프로그래밍됩니다.

Arduino 라이브러리 관리자를 통해 다음 라이브러리를 설치하십시오:

Adafruit NeoPixel

이 프로젝트는 Adafruit NeoPixel 라이브러리를 사용하여 WS2812 LED를 제어합니다.

처음에는 FastLED를 사용할까 생각했지만, 제 ESP32 환경에서는 타이밍 호환성 문제가 발생했습니다. Adafruit NeoPixel을 사용하니 LED와 안정적으로 통신할 수 있었습니다.

링크: https://github.com/adafruit/adafruit_neopixel

Blynk

ESP32-C3가 Blynk Cloud와 통신할 수 있도록 Blynk 라이브러리를 설치하십시오.

링크: https://github.com/Blynk-Technologies/blynk-library


또한 Arduino IDE에 적절한 ESP32 보드 지원 기능이 설치되어 있어야 합니다.





STEP 5. Arduino IDE에 ESP32 보드 지원 설치하기


Arduino IDE에 ESP32 보드 지원 설치하기


ESP32 보드 지원 설치 Arduino IDE에서 ESP32를 처음 사용하는 경우 먼저 ESP32 보드 패키지를 설치해야 합니다.

  1. Arduino IDE를 열고 Arduino IDE 에서 다음으로 이동하세요: File → Preferences.
  2. Additional Boards Manager URLs’에 다음 URL을 추가하세요:
  3. https://espressif.github.io/arduino-esp32/package_esp32_index.json
  4. OK’를 클릭하세요.
  5. 다음으로 Tools → Board → Boards Manager로 이동합니다.
  6. ESP32 ”를 검색하고 esp32 by Espressif Systems를 설치합니다.
  7. 설치가 완료되면 Tools → Board → ESP32 Arduino에서 ESP32-C3 보드를 선택합니다.





STEP 6. Blynk 기기 생성하기


Blynk 기기 생성하기


Blynk 기기 생성하기


Blynk 기기 생성하기


Blynk 기기 생성하기


Blynk 기기 생성하기


Blynk 기기 생성하기


5단계: Blynk 기기 생성하기

다음을 여세요: Blynk Cloud (https://blynk.cloud)에서 새 기기를 생성합니다.

BLYNK에 익숙하지 않다면 제가 작성한 이 인스트럭터블을 확인해 보세요.

https://www.instructables.com/IoT-Made-Easy-ESP8266-Blynk-App-to-Control-LED-Rem

이 프로젝트에서 제 기기의 이름은 Cube입니다.

기기를 생성한 후 Arduino 코드에서 사용할 Blynk 인증 정보를 확인합니다.

#define BLYNK_TEMPLATE_ID "TMPL4dnYZPU1C"
#define BLYNK_TEMPLATE_NAME "CUBE"
#define BLYNK_AUTH_TOKEN "m0VoHhk55wyP74vJtqYyFVEzyW9C0iAs"


또한 데이터 소스 세 개를 생성해야 합니다.

다음과 같이 생성합니다:

데이터 소스 | 가상 핀 | 용도

Off Switch | V2 | 램프를 켜거나 끕니다

Fixed Color | V1 | 램프 색상을 선택합니다

Lamp Color | V3 | 앱에 표시되는 이미지를 업데이트합니다(램프 색상에 따라 다름)




STEP 7. Blynk 모바일 대시보드 만들기


Blynk 모바일 대시보드 만들기


Blynk 모바일 앱을 실행하고 기기에 연결하세요.

처음에는 대시보드가 비어 있습니다.

위젯을 세 개 추가하겠습니다.

켜기/끄기 스위치


[추가] 스위치 위젯을 추가하고 끄기 스위치 데이터 소스에 연결하세요.

이 데이터 소스는 가상 핀 V2을 사용합니다.

이 스위치에는 두 가지 가능한 값이 있습니다:

  1. 0 = 램프 꺼짐
  2. 1 = 램프 켜짐

스위치를 켜면 램프는 처음에 백색광을 사용합니다.


세그먼트 스위치


[추가] 세그먼트 스위치 위젯을 추가하고 고정 색상 데이터 소스에 연결하세요.

이 데이터 소스는 가상 핀 V1을 사용합니다.

가능한 값은 다음 여섯 가지입니다:

기능

0 흰색

1 빨간색

2 파란색

3 녹색

4 분홍색

5 꺼짐

처음 다섯 값은 색상을 선택합니다.

값 5는 램프가 꺼진 상태를 나타내도록 예약되어 있습니다.

세그먼트 스위치는 램프가 켜져 있을 때만 표시됩니다.


이미지 갤러리


마지막 위젯은 이미지 갤러리입니다.

이 위젯은 램프에 명령을 보내는 대신 램프로부터 정보를 수신합니다.

다음 상태의 램프를 보여 주는 이미지의 URL을 제공하세요:

  1. 꺼짐
  2. 흰색
  3. 빨간색
  4. 파란색
  5. 녹색
  6. 분홍색

이미지는 원하는 온라인 이미지 호스팅 서비스에 호스팅할 수 있습니다.

각 이미지에는 색상 값에 해당하는 인덱스가 있습니다.

이미지 갤러리를 램프 색상 데이터 소스의 V3에 연결하세요.

이렇게 하면 애플리케이션이 현재 램프 상태에 해당하는 이미지를 표시할 수 있습니다.

예를 들어:

  1. V3 = 0 → 흰색 램프 이미지
  2. V3 = 1 → 빨간색 램프 이미지
  3. V3 = 2 → 파란색 램프 이미지
  4. V3 = 3 → 녹색 램프 이미지
  5. V3 = 4 → 분홍색 램프 이미지
  6. V3 = 5 → 램프 꺼짐 이미지





STEP 8. Blynk 인터페이스의 작동 원리


제어 시스템은 꽤 간단합니다.

Blynk 앱에서 색상을 선택하면, 해당 값이 다음을 통해 ESP32-C3로 전송됩니다. V1.

아두이노 코드는 해당 값을 수신한 후, 이를 사용하여 이에 해당하는 RGB 색상을 선택합니다.

그러면 LED가 갱신됩니다.

동일한 값이 다음을 통해 Blynk로 다시 전송됩니다. V3.

이미지 갤러리는 이 값을 받아 해당 이미지를 표시합니다.

즉, 앱에 표시되는 이미지는 항상 램프의 현재 색상을 반영합니다.

전원 스위치가 꺼지면 ESP32-C3는:

  1. LED를 끕니다.
  2. V3에 값 5를 전송합니다.
  3. 이미지 갤러리가 비활성화 상태의 이미지로 바뀝니다.
  4. 색상 선택기가 숨겨져 있습니다.

램프를 다시 켜면 이전에 선택했던 색상이 다시 적용됩니다.




STEP 9. 아두이노 코드


이 아두이노 스케치는 WS2812 매트릭스를 제어하고 Blynk와 통신합니다.

이 LED 스트립은 Adafruit NeoPixel 라이브러리를 사용하여 제작되었습니다.

중요한 매개변수는 다음과 같습니다. LED 데이터 핀 그리고 LED의 개수.

8×8 행렬의 경우, LED의 개수는 다음과 같습니다:

8 × 8 = 64개의 LED

또한 이 프로그램에는 사용 가능한 색상 목록과 다음을 저장하는 변수들이 포함되어 있습니다:

  1. 램프가 켜져 있는지 꺼져 있는지
  2. 현재 선택된 색상

헬퍼 함수는 색상 인덱스를 받아 해당 RGB 값을 찾아낸 뒤, 그 색상을 64개의 LED 모두에 적용합니다.

그런 다음 Blynk 핸들러가 사용자 인터페이스를 처리합니다:

V2 – 켜기/끄기

V2가 변경될 때:

  1. 0을 입력하면 LED가 꺼집니다.
  2. 1은 현재 선택된 색상으로 램프를 켭니다.
  3. V3가 업데이트되어 올바른 이미지가 표시됩니다.
  4. 색상 선택기는 상황에 따라 숨겨지거나 표시됩니다.

V1 – 색상

V1이 변경될 때:

  1. 선택한 색상 인덱스가 저장됩니다.
  2. 램프가 켜져 있으면 LED 매트릭스가 갱신됩니다.
  3. 동일한 색상 인덱스가 V3로 전송됩니다.

V3 – 이미지 갤러리

ESP32-C3는 V3를 사용하여 Blynk 앱에 어떤 이미지를 표시해야 하는지 알려줍니다.

프로젝트 리소스에서 전체 소스 코드를 다운로드할 수 있습니다.




STEP 10. 3D 프린팅으로 제작된 램프 케이스


3D 프린팅으로 제작된 램프 케이스


3D 프린팅으로 제작된 램프 케이스


3D 프린팅으로 제작된 램프 케이스


3D 프린팅으로 제작된 램프 케이스


3D 프린팅으로 제작된 램프 케이스


3D 프린팅으로 제작된 램프 케이스


케이스의 경우, 원래 설계를 몇 가지 변경했습니다.

램프 갓은 더 견고하게 만들기 위해 다시 출력했습니다.

또한 베이스를 다음 항목이 포함되도록 수정했습니다:

  1. LED 컨트롤러 장착 지점
  2. M3 나사 구멍
  3. DC 전원 소켓용 개구부
  4. 전자 부품을 위한 공간

램프를 조립한 후 컨트롤러와 전자 부품을 가리기 위한 하단 커버도 출력했습니다.




STEP 11. 램프 준비 완료:)


램프 준비 완료:)


램프 준비 완료:)


이제 여러분은 완벽하게 작동하는 클라우드에 연결된 LED 제어 램프를 ESP32-C3와 Blynk를 사용해 만들었습니다.

앞으로 진행될 프로젝트에도 많은 관심 부탁드립니다. 즐거운 제작 시간 되세요!

이 프로젝트가 마음에 드셨나요? Ko-fi에서 저에게 커피 한 잔 사주시는 건 어떨까요?


원문: https://www.instructables.com/WiFi-Controlled-WS2812-LED-Lamp-With-ESP32-C3-and-/

좋아요 0
게시판

회사명 공방유니언 주소 각 공방 주소 참조
사업자 등록번호 0000 대표 공방유니언 전화 019-60105846 팩스 0000 이메일 gongbangunion@gmail.com
통신판매업신고번호 0000 개인정보관리책임자 공방유니언
Copyright © 2017 공방유니언. All Rights Reserved.