알렉사 음성 제어 LED 크리스마스 트리: DIY 제작 가이드
필요한 부품 및 소모품
| 부품 |
수량 |
| 아마존 알렉사 에코 (Amazon Echo) |
1 |
| 아두이노 윤 (Arduino Yun) |
1 |
| 점퍼 와이어 (Jumper wires) |
1 |
| WS2811 LED 스트랜드 (50개 LED × 2줄) |
1 |
프로젝트 개요
이 프로젝트는 알렉사 음성 명령으로 크리스마스 트리의 LED 조명을 제어하는 DIY 가이드입니다. 사용자 정의 알렉사 스킬과 AWS 클라우드 서비스, 아두이노 윤을 연동하여 음성으로 트리 색상 변경, 점등/소등, 크리스마스 쇼 모드 실행 등을 제어할 수 있습니다.
하드웨어 구성
- 아두이노 윤 (Linino OS 탑재) 1개
- WS2811 LED 스트랜드 (50개 LED) 2개
- 점퍼 와이어 3개
- 전원 어댑터 및 2.1mm × 5.5mm DC 커넥터
- 마이크로 USB 케이블
- 아마존 에코 / 도트 / 탭 중 1개
소프트웨어 아키텍처
음성 명령 처리 흐름은 다음과 같습니다:
- 사용자가 알렉사에게 "크리스마스 트리 열기" 또는 "트리 켜기" 같은 명령 발화
- 알렉사 클라우드에서 ASR(음성 인식) 및 NLU(자연어 이해) 처리
- AWS 람다(Lambda)에서 호스팅된 스킬 코드로 인텐트 전달
- 색상 지정 시 다이나모DB(DynamoDB)에 저장, 미지정 시 마지막 저장 색상 조회
- 액션 및 색상 명령을 AWS IoT 사물 그림자(Thing Shadow)에 기록
- 아두이노 윤이 MQTT 델타 토픽을 폴링하여 명령 수신
- LED 스트랜드 제어 후 업데이트 토픽으로 완료 상태 보고
- 알렉사가 응답 음성 및 크리스마스 효과음(MP3, S3 저장) 재생
람다 함수, S3 버킷(MP3 파일), IAM 역할(IoT 및 다이나모 권한)만 설정하면 됩니다. 다이나모 테이블과 사물 그림자는 최초 스킬 호출 시 자동 생성됩니다.
상태 표시 (첫 번째 LED로 알림)
- 빨간색 1회 점멸: AWS IoT 연결 설정 실패
- 빨간색 2회 점멸: AWS IoT 연결 시도 실패
- 빨간색 3회 점멸: AWS IoT 연결 구성 실패
- 초록색 점멸: AWS IoT 연결 성공
- 파란색 점멸: AWS IoT 토픽 폴링 중 (정상 대기)
- 노란색 점멸: AWS IoT 토픽 폴링 오류
시작 시 와이파이 연결까지 빨간색 점멸이 나타날 수 있으며, 연결 완료 후 초록색 → 파란색 점멸로 전환됩니다. 노란색 점멸 시 10회 재시도 후 자동 재연결을 시도합니다.
소스 코드 및 회로도
깃허브 저장소: https://github.com/KayLerch/alexa-xmas-tree
자바 기반 AWS 람다 함수 코드와 아두이노 윤 스케치가 포함되어 있습니다.