라즈베리 파이와 알렉사로 LED 제어하기 – 초보자를 위한 단계별 가이드
필요한 부품 및 소모품
| 부품 |
수량 |
비고 |
| 라즈베리 파이 3 모델 B |
1 |
메인 컨트롤러 |
| 아두이노 우노 |
1 |
LED 제어용 |
| LED (일반) |
2 |
노란색, 녹색 등 |
| 저항 100옴 |
1 |
LED 전류 제한용 |
| 브레드보드 |
1 |
회로 구성용 |
| 아마존 알렉사 에코 |
1 |
음성 제어용 |
필요한 앱 및 온라인 서비스
- 아두이노 IDE - 펌웨어 업로드용
- Node-RED - 알렉사와 아두이노 연결 플로우 작성용
프로젝트 개요
알렉사가 라즈베리 파이를 통해 아두이노와 통신하여 LED를 제어하는 방법을 보여줍니다. Node-RED에서 'Alexa Local'과 'Arduino' 노드만 설치하면 간단하게 구현할 수 있습니다. 이 프로젝트에서는 알렉사 음성 명령으로 두 개의 LED(노란불, 초록불)를 켜고 끄는 시연을 합니다.
단계 1: 라즈베리 파이 설정
라즈베리 파이 OS를 설치하고 네트워크에 연결합니다. SSH를 활성화하고 원격 접속이 가능하도록 설정하세요.
단계 2: Node-RED 설치
라즈베리 파이에 Node-RED를 설치합니다. 공식 설치 스크립트를 사용하면 간편합니다.
bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
단계 3: 아두이노 노드 설치
Node-RED 팔레트 관리자에서 node-red-node-arduino를 검색해 설치합니다. 아두이노에는 StandardFirmata 스케치를 업로드해야 합니다. (파일 → 예제 → Firmata → StandardFirmata)
단계 4: Alexa Local 노드 설치
Node-RED 팔레트 관리자에서 node-red-contrib-alexa-local을 검색해 설치합니다. 이 노드는 알렉사가 로컬 네트워크의 장치를 발견하고 제어할 수 있게 해줍니다.
단계 5: Node-RED 플로우 구성
아래 코드 섹션의 JSON을 Node-RED 에디터에 가져오기(Import) 하세요. 두 개의 alexa-local 노드(장치명: "yellow light", "green light")가 각각 아두이노 출력 핀 11번, 12번과 연결됩니다.
테스트 및 실행
플로우를 배포(Deploy)한 후 알렉사 앱에서 장치 검색을 실행하세요. "알렉사, 노란불 켜줘", "알렉사, 초록불 꺼줘" 같은 명령으로 LED가 제어되는지 확인합니다.
Node-RED 플로우 코드
[{"id":"7cfb7d9e.1371f4","type":"alexa-local","z":"8496b3f6.919b5","devicename":"yellow light","inputtrigger":false,"x":177.10000610351562,"y":175,"wires":[["b9b6f9c0.383058","677a99d9.49b6c8"]]},{"id":"b9b6f9c0.383058","type":"debug","z":"8496b3f6.919b5","name":"","active":true,"console":"false","complete":"true","x":336.10005950927734,"y":233.00000476837158,"wires":[]},{"id":"23e77dc0.c2d532","type":"alexa-local","z":"8496b3f6.919b5","devicename":"green light","inputtrigger":false,"x":157.10000610351562,"y":287,"wires":[["b9b6f9c0.383058","b7bd4e01.3cc47"]]},{"id":"677a99d9.49b6c8","type":"arduino out","z":"8496b3f6.919b5","name":"","pin":"11","state":"OUTPUT","arduino":"4326cda4.263274","x":530.1000633239746,"y":172.6000099182129,"wires":[]},{"id":"b7bd4e01.3cc47","type":"arduino out","z":"8496b3f6.919b5","name":"","pin":"12","state":"OUTPUT","arduino":"4326cda4.263274","x":531.1000366210938,"y":290.6000061035156,"wires":[]},{"id":"4326cda4.263274","type":"arduino-board","z":"","device":"/dev/ttyACM0"}]
회로도
아두이노 11번 핀 → 저항 → 노란 LED → GND
아두이노 12번 핀 → 저항 → 녹색 LED → GND