RGB HexMatrix IoT 시계 – 다이내믹 LED 육각 디스플레이
부품 및 소모품
| 부품 | 수량 |
| Arduino UNO | 1 |
| NodeMCU ESP8266 브레이크아웃 보드 | 1 |
| NeoPixel WS2811 LED | 96개 |
| 5V 2.5A 스위칭 파워 서플라이 | 1 |
필수 도구
앱 및 온라인 서비스
프로젝트 개요
삼각형 픽셀 6개가 모여 육각형을 이루는 독특한 LED 매트릭스 'HexMatrix'입니다. FastLED 라이브러리 애니메이션과 직접 설계한 10세그먼트 숫자 폰트로 IoT 시계를 구현했습니다.
준비물 요약
- ESP8266 또는 아두이노 (우노/나노)
- WS2811 LED 96개
- 5V/2A 파워 서플라이
- 3D 프린터 (케이스 출력용)
1단계: 3D 프린팅
제공된 STL 파일 출력. 화면 레이어는 흰색 PLA로 출력 권장.
STL 파일 및 코드: 링크 (원문 참조)
2단계: 회로 연결
- GND → 파워 서플라이 -V
- Vin → 5V (+V)
- Data In → 아두이노/ESP8266 핀 2
- 전원 라인은 LED 스트립 끝까지 연장해 전압 강하 방지
3단계: 보드별 차이점
- 아두이노 보드: 애니메이션만 표시 가능 (시간 표시 불가, RTC/와이파이 없음)
- ESP8266 보드: NTP로 시간 동기화해 시계 표시 + 애니메이션 가능
4단계: 조립
- LED를 지그재그(Snake) 순서로 배치
- 케이스에 모든 부품 조립
- 마이크로컨트롤러 보드에 커넥터 납땜 (LED 라인 반대쪽 끝에서 연결)
5단계: 코딩
세 가지 코드 제공: HexMatrix.ino (애니메이션 전용, 모든 보드), clock1.ino, clock2.ino (ESP8266 전용 시계).
HexMatrix.ino (애니메이션)
- Arduino IDE에서 FastLED 라이브러리 설치
- 보드/포트 선택 후 업로드
Clock1 / Clock2 (ESP8266 시계)
설정 변경 사항:
// 숫자 색상 (RGB)
int r=255, g=255, b=255;
// 배경 색상 (RGB)
int br=0, bg=20, bb=10;
// 와이파이
const char* ssid = "Wifi_Name";
const char* password = "Password";
// 시간대 (한국은 UTC+9 → 9*3600 = 32400)
int timezone = 9 * 3600; // 예: 인도 -5.5 → -5.5*3600
- 보드 타입 ESP8266 선택 후 업로드
- FastLED 예제에 더 많은 애니메이션 있음
소스 코드 (일부 발췌)
clock1.ino 핵심 구조
#include
#include
#include
#define LED_PIN 2
#define NUM_LEDS 96
CRGB leds[NUM_LEDS];
void setup() {
// 와이파이 연결, NTP 설정, FastLED 초기화
}
void loop() {
time_t now = time(nullptr);
struct tm* p_tm = localtime(&now);
int hour = p_tm->tm_hour; if (hour>12) hour-=12;
int minute = p_tm->tm_min;
// 배경 그리기
background();
// 시 표시 함수 호출 (hour0~hour11)
// 분 표시 함수 호출 (min0~min59)
FastLED.show();
FastLED.clear();
FastLED.show();
}
// 각 숫자/시간별로 LED 인덱스 직접 지정해 패턴 구성
void hour12() { leds[2]=CRGB(r,g,b); leds[4]=CRGB(r,g,b); ... }
void min0() { leds[62]=CRGB(r,g,b); leds[63]=CRGB(r,g,b); ... }
// ... 총 12개 시 함수, 60개 분 함수
clock2.ino 차이점
- 배경 대신
pride() 애니메이션(무지개 효과) 실행
- FastLED 디더링/보정 설정 추가
- 나머지 숫자 표시 로직은 동일
전체 코드는 용량이 커서 다운로드 링크 참조 (clock1, clock2).
회로도