라즈베리파이에서 파이썬을 실행해 아마존 에코가 구글 크롬캐스트를 제어할 수 있도록 하는 업데이트된 가이드입니다.
개요
알렉사와 크롬캐스트 연결하기
알렉사로 크롬캐스트를 제어할 수 있을까 궁금하셨나요? 이 단계별 튜토리얼은 라즈베리파이, MySQL, AWS Lambda를 사용해 이를 실현하는 방법을 설명합니다.
참고: 최신 스크립트와 프로젝트 파일은 GitHub 저장소를 참조하세요.
이 접근 방식은 LoveMyEcho의 "AlexaDev Tuesday: Innovative Alexa Skills Spotlight"에서 강조되었으며, 개발자가 복잡한 통합 과제를 해결하는 방법을 보여줍니다.
왜 라즈베리파이인가?
파이의 작은 크기, 낮은 전력 소비, 라스비안과의 호환성은 알렉사가 크롬캐스트에 도달하는 데 필요한 MySQL 데이터베이스, 파이썬 스크립트, 네트워크 구성을 호스팅하기에 이상적입니다.
작동 원리
- 사용자가 "알렉사, 크롬캐스트 실행"이라고 말하면 스킬이 시작됩니다.
- 알렉사가 요청된 명령(기본적으로 유튜브 검색)을 스킬로 보냅니다.
- 스킬이 명령을 라즈베리파이의 MySQL 테이블에 기록합니다.
- 백그라운드 파이썬 프로세스가 테이블을 읽고 요청을 크롬캐스트 명령으로 변환해 실행합니다.
- 실행 후 데이터베이스 항목이 제거됩니다.
- 알렉사가 사용자에게 완료를 확인합니다.
1단계: 라즈베리파이 포트 포워딩 준비
시작 전 파이가 인터넷에 연결되어 있고 IP 주소를 알고 있는지 확인하세요.
파이 IP 찾기:
- 파이나 다른 PC에서 터미널 열기.
ifconfig(리눅스) 또는 ipconfig(윈도우) 실행해 기본 게이트웨이 찾기.
게이트웨이 주소로 라우터 관리 페이지에 접속해 다음 포트 포워딩 구성:
- 3306 – MySQL (기본 포트)
- 80 – phpMyAdmin (선택 사항)
- 22 – SSH (선택 사항)
보안 주의: 이 포트들을 노출하면 네트워크가 위험에 노출될 수 있습니다. 강력한 비밀번호를 사용하고 신뢰할 수 있는 IP로 접근을 제한하는 것을 고려하세요.
2단계: 라즈베리파이에 MySQL 설치
파이에서 다음 명령 실행:
sudo apt-get update && sudo apt-get install mysql-server --fix-missing
sudo mysql_secure_installation으로 설치를 안전하게 하고 스킬 전용 사용자 생성.
3단계: phpMyAdmin 설치 (선택 사항)
튜토리얼을 따라 phpMyAdmin을 설정해 데이터베이스 관리를 쉽게 하세요.
제공된 build.sql을 실행해 필요한 스키마 생성.
4단계: 스크립트 구성
index.py와 raspberry.py를 열고 플레이스홀더 교체:
- RASP_PI_DNS – MySQL 서버 호스트명 또는 IP
- MYSQL_USER – MySQL 사용자명
- MYSQL_PASS – MySQL 비밀번호
- DB_NAME – 데이터베이스 이름
- CHROMECAST_NAME – 대상 크롬캐스트 기기 이름
5단계: AWS Lambda에 스킬 배포
speechAssets와 raspberry.py를 제외한 모든 파일을 압축한 후:
- AWS 관리 콘솔에 로그인해 Lambda 열기.
- "Create function" 클릭, 블루프린트 건너뛰기, 이름
alexaChromecast, Python 3.9 런타임 선택.
- "Upload a .zip file" 선택 후 아카이브 업로드.
- 핸들러를
index.lambda_handler로, 역할을 "Basic execution"로, 타임아웃을 30초로 설정.
6단계: 아마존 개발자 콘솔에서 스킬 생성
- Amazon Developer Console 방문 후 Alexa Skills Kit 열기.
- "Add a New Skill" 클릭, 이름 "Alexa Chromecast", 호출 이름 "chromecast"로 설정.
speechAssets 폴더의 intentSchema.json과 sample-utterances.txt 업로드.
- Lambda ARN을 "Endpoint" 필드에 붙여넣기. 계정 연결 비활성화.
7단계: 라즈베리파이 스크립트 실행
raspberry.py를 파이로 전송(USB 또는 WinSCP). 다음으로 실행:
python3 raspberry.py
8단계: (선택 사항) 부팅 시 자동 시작 설정
다음 내용을 담은 셸 스크립트 launcher.sh 생성:
#!/bin/bash
sudo python3 /path/to/raspberry.py
부팅 시 launcher.sh를 실행하는 크론 작업 추가:
@reboot /path/to/launcher.sh
알렉사 개발자 콘솔의 "Test" 탭에서 스킬 테스트. 모든 구성이 올바르면 음성 명령으로 크롬캐스트를 제어할 수 있습니다.
비디오 데모: 여기서 보기.