- 필수 재료 :
- 1 부 : SSH 및 VNC로 Raspberry Pi 설정
- 2 부 : Amazon 개발자 계정 설정 및 Raspberry Pi에서 Alexa 음성 서비스 구성 :
- 파트 3 : Alexa Pi 홈 자동화를위한 PubNub 및 IFTTT 설정 :
- 3-2 부 : Amazon Alexa 서비스 용 IFTTT 설정 :
- 파트 4 : 하드웨어 연결 및 회로도 :
- 5 부 : LED 제어를위한 Python 코드 :
음성으로 제어 할 수있는 스피커에 대해 생각해 본 적이 있습니까? 이런 식으로 가전 제품을 제어하고 이러한 가전 제품을 더 스마트하게 만들 수 있다면 어떨까요? AI 및 IoT 기반 시스템 의 시대로 나아가면서 음성 비서가 점점 더 인기를 얻고 있습니다. Google Assistant, Apple Siri 및 Amazon Alexa 에 대해 들어 보셨을 것 입니다. 이들은 모두 음성 기반 AI 시스템이며, 서로 다른 점은 생태계이며 Amazon Alexa 가 가장 눈에 띄는 곳 입니다. 구글, 애플, 아마존은 이미 스마트 스피커를 출시했지만 아마존이 처음으로 스마트 스피커를 도입했다. Amazon echo, Echo Dot Spot 등은 시판중인 스마트 스피커입니다.
Amazon은 널리 사용되는 음성 서비스 인 Alexa 를 사용하기위한 API를 제공합니다. 오픈 소스이며 Github에서 사용할 수 있습니다. 또한 Raspberry Pi와 같은 사용자 지정 장치에 Alexa를 설치하거나 통합하고 해당 장치에서 전체 Amazon Echo 기능을 사용할 수 있습니다.
Alexa 음성 서비스를 사용하여 음악을 재생하고 날씨에 대한 정보를 얻고 티켓을 예약하는 등의 작업을 할 수 있습니다. 당신이해야 할 일은 '질문'뿐입니다. 이 자습서에서는 Alexa Voice 서비스 를 사용하여 LED 를 켜서 Raspberry Pi GPIO를 제어 하는 방법을 알아 봅니다.
필수 재료:
하드웨어 요구 사항:
- Raspberry Pi 3 또는 Raspberry Pi 2 모델 B 및 SD 카드 (8GB 이상)
- 3.5mm AUX 케이블이있는 외부 스피커
- 모든 웹캠 또는 USB 2.0 마이크
- 릴레이 모듈
- LED
참고: 웹캠에는 마이크가 내장되어 있으므로 USB 2.0 마이크 대신이 마이크를 사용합니다.
소프트웨어 앱 및 웹 요구 사항:
- Alexa Voice Services에 계정 등록
- PubNub에 계정 등록
- IFTTT에 계정 등록
또한 Raspberry pi가 이미 Raspbian OS로 설정되어 있고 인터넷에 연결되어 있다고 가정합니다. 이것들과 함께 튜토리얼을 진행해 봅시다. Raspberry Pi를 처음 사용하는 경우 먼저 Raspberry pi 시작하기를 참조하세요.
전체 튜토리얼은 크게 다음과 같이 5 개 부분으로 나뉩니다.
- 모니터가없는 경우 SSH 및 VNC로 Raspberry Pi를 설정하고 USB 마이크 연결도 확인해야합니다.
- Amazon 개발자 설정 및 Raspberry Pi에 Alexa 설치
- Alexa Home Automation을위한 PubNub 및 IFTTT 설정
- 하드웨어 연결
- Alexa Pi GPIO 제어용 Python 코드
음성으로 LED를 제어하고 싶다면 Bluetooth 기반 음성 제어 LED 프로젝트도 확인하십시오.
1 부: SSH 및 VNC로 Raspberry Pi 설정
먼저 Raspberry Pi를 SSH 및 VNC와 연결합니다. 이를 위해 공식 Raspberry Pi 웹 사이트의 튜토리얼을 따르십시오. 링크가 아래에 제공됩니다.
SSH의 경우: SSh 링크
VNC의 경우: VNC 링크
모니터가있는 경우이 단계를 종료하고 Alexa 음성 서비스 (Avs) 설정 인 2 단계로 바로 이동할 수 있습니다. 그 전에 마이크 연결을 확인해야합니다.
Raspberry Pi로 웹캠 마이크 확인:
1. Raspberry Pi 터미널을 열고 arecord -l 명령을 입력 합니다. 그러면 아래와 같이 Raspberry Pi에 연결된 하드웨어 장치가 표시됩니다.
카드 1은 우리가 사용할 웹캠의 마이크입니다. 표시되지 않으면 웹캠에 결함이있을 수 있습니다.
2. 이제 다음과 같이 오디오 녹음 명령을 실행하여 마이크가 작동하는지 확인합니다.
arecord /home/pi/Desktop/test.wav -D sysdefault: CARD = 1
3. 녹음 된 오디오를 재생하려면 다음 명령을 입력하십시오.
omxplayer -p -o 로컬 /home/pi/Desktop/test.wav
HDMI 케이블을 사용하여 Raspberry Pi를 모니터와 연결 한 경우 기본적으로 오디오 출력은 모니터의 스피커를 통해 이루어집니다 (내장 스피커가있는 경우). 따라서 3.5mm로 변경하려면 다음 명령을 입력해야합니다.
sudo raspi-config 를 선택하고 고급 옵션으로 이동하십시오.
목록에서 오디오 선택-> Force 3.5mm 선택-> 확인을 선택하고 Raspberry Pi를 다시 시작하십시오.
이제 3.5mm 잭에서 소리가 들릴 것입니다.
참고: 마이크의 입력 음성 크기를 늘리거나 줄이려 면 터미널의 alsamixer 유형 을 선택하십시오. F6을 눌러 터미널에서 사운드 카드를 선택합니다.
F4를 눌러 마이크 dB 게인을 변경하고 원하는대로 설정합니다.
USB 2.0 마이크가있는 경우 마이크를 확인하는 단계는 동일합니다. 여기에서는 USB 마이크 용 웹캠을 사용했습니다.
2 부: Amazon 개발자 계정 설정 및 Raspberry Pi에서 Alexa 음성 서비스 구성:
Amazon Echo 스마트 스피커를 구축 한 이전 자습서에서 이미 자세히 설명했습니다. Alexa를 사용하여 Raspberry Pi GPIO 를 제어 하는 데 초점을 맞추고 있으므로 전체 프로세스를 다시 설명하지 않으므로 이전 기사를 읽고 Raspberry pi에 설치된 Alexa 음성 서비스를 사용하여 스피커를 준비하십시오.
Alexa를 테스트하려면 이름을 말하여 깨우세요! 튜토리얼의 마지막에 제공된 데모 비디오를 확인하십시오.
그녀에게 도시의 온도에 대해 물어보고 작동 여부를 확인할 수 있습니다.
파트 3: Alexa Pi 홈 자동화를위한 PubNub 및 IFTTT 설정 :
이 Alexa Pi를 사용하여 Raspberry Pi GPIO 를 제어 하려면 PubNub python SDK 및 IFTTT 의 도움이 필요합니다. Alexa를 통해 IFTTT에 명령을 내리고 PubNub는 RPi에 신호를 보내 LED를 켜거나 끕니다. 따라서 먼저 Raspberry Pi에 PubNub를 설치합니다.
파트 3-1: PubNub Python SDK 설치:
PubNub는 글로벌 네트워크에서 메시지를 게시 / 구독하기위한 메시징 API를 제공합니다. 여기에서는 IFTTT와 Alexa를 사용하여 PubNub에 메시지를 게시하여 Raspberry Pi GPIO를 낮게 / 높게 만듭니다. 이 메시지는 Raspberry Pi에 의해 수신되며 Pi는 이에 따라 LED를 켜거나 끕니다. Raspberry Pi에서 PubNub를 설정하려면 아래 단계를 따르세요.
1 단계: RPi에서 터미널을 열고 다음 명령을 실행하여 SDK를 설치합니다.
sudo pip install pubnub == 3.9.0
3.9.0 버전 만 설치하세요. 다른 버전은 마지막에 실행할 python 스크립트에서 작동하지 않습니다.
2 단계: 이제 PubNub 로 이동 하여 자격 증명으로 로그인합니다.
3 단계:. 나중에 사용할 게시 및 구독 키를 얻 습니다.
3-2 부: Amazon Alexa 서비스 용 IFTTT 설정:
IFTTT 는 사용자가 Gmail, Facebook, Instagram 및. IFTTT 는 "If This Then That"의 약어입니다.
이 프로젝트에서 IFTTT는 RPi에서 실행되는 Alexa 서비스에서받은 음성 명령을 기반으로 Raspberry Pi GPIO를 LOW / HIGH로 만드는 데 사용됩니다.
다음 단계에 따라 애플릿을 만드십시오.
1 단계: 자격 증명으로 IFTTT에 로그인하거나 계정이없는 경우 가입 하십시오.
2 단계:- 내 애플릿에서 새 애플릿을 클릭합니다.
3 단계:- + this를 클릭 합니다.
4 단계: -Amazon Alexa를 검색하고 클릭하고 Amazon 개발자 계정 세부 정보로 로그인합니다.
5 단계: 트리거 선택, 특정 문구 말하기
6 단계: - 제공 " 빛에 차례" 를 클릭, 문구 등을 트리거를 만듭니다.
7 단계: + that을 클릭 합니다.
8 단계: - 검색 , Webhooks 클릭 그 다음 선택은 웹 요청을
9 단계: Webhooks는 REST WEB 요청을 제공하고 PubNub에서 얻은 게시 및 구독 키를 사용하고 다음 URL을 수정합니다.
http://pubsub.pubnub.com//publish/pub_key/sub_key/0/alexaTrigger/0/{"requester":"Alexa","trigger":"light","status":1}
10 단계:- 수정 된 URL을 URL 텍스트 상자에 붙여 넣습니다.
11 단계: 메소드를 GET으로, 콘텐츠를 application / json으로 설정하고 저장을 클릭합니다 .
12 단계:- 동일한 단계에 따라 " 조명 끄기 "트리거를 만들고 URL을 다음과 같이 수정합니다.
pubsub.pubnub.com//publish/pub_key/sub_key/0/alexaTrigger/0/{"requester":"Alexa","trigger":"light","status":0
13 단계: 이제 데모를위한 모든 웹 구성 요소가 준비되었습니다.
파트 4: 하드웨어 연결 및 회로도:
이 프로젝트에서는 테스트 목적으로 간단한 LED가 필요합니다. 아래는 Amazon Alexa를 사용하여 Raspberry Pi GPIO 를 제어 하기위한 회로도와 하드웨어 연결 입니다.
파이썬 스크립트에서 GPIO18을 사용할 것이므로 LED 18 릴레이를 연결하십시오. 파이썬 스크립트에서 이것을 변경할 수 있습니다.
5 부: LED 제어를위한 Python 코드:
이 튜토리얼의 끝에서 완전한 Python 스크립트 를 찾으십시오.
Python 코드에서 pubnub 키로 Pub 및 Sub 키 를 편집 해야합니다.
# Pubnub 키 초기화 pub_key = "***************************" sub_key = "*********** ************* "
이제 스크립트를 실행하십시오.
파이썬 alexaRpi.py
이제 데모를 준비했습니다. 계속하기 전에 Part 1 (3 개의 터미널)에서 세 가지 서비스를 모두 실행하고 있는지 확인하십시오.
명령을 내리려면 명령을 보낼 때마다 "Alexa"를 호출하여 Alexa 서비스를 깨워 야합니다. 신호음이 들립니다. 신호음이 들리면 " Alexa Trigger Turn on the Light. ”잠시 후 불이 켜지는 것을 볼 수 있습니다. 그런 다음 " Alexa Trigger Turn off the Light " 라고 말하면 조명이 꺼져 야합니다.
그게 다야…. 더 많은 릴레이와 Raspberry pi의 더 많은 GPIO 핀을 사용하여 많은 어플라이언스를 제어 할 수있는 경우에도 AC 어플라이언스를 제어하기 위해 릴레이를 추가 할 수 있습니다.
아래 의 전체 코드와 데모 비디오를 확인하십시오. 또한 여기에서 모든 홈 자동화 프로젝트를 확인하십시오.