- 하드웨어 요구 사항
- Alexa 음성 제어 LED에 대한 프로젝트 흐름
- 통신을위한 Adafruit 계정 설정
- IFTTT를 사용하여 Alexa를 Adafruit IO에 연결
- ESP12 코드 설명
- 일:
이전 자습서에서 Amazon Echo 스피커를 구축하는 방법과 Alexa Voice를 사용하여 Raspberry Pi GPIO를 제어하는 방법을 살펴 보았습니다. 이제 우리는 AlexaPi 및 ESP-12E (또는 모든 ESP 보드)를 사용하여 전 세계 어디에서나 가전 제품 을 제어 하는 IoT 프로젝트를 만들고 있습니다.
하드웨어 요구 사항
- AVS가 설치된 Raspberry Pi
- USB 2.0 마이크 / 웹캠
- ESP-12E
- 릴레이 모듈
- LED / AC 전구
올바르게 구성된 Amazon 개발자 계정과 함께 Alexa 음성 서비스가 설치된 Raspberry Pi를 준비해야합니다. 따라서 아래 자습서를 통해 Alexa 서비스를 준비하십시오.
- Raspberry Pi를 사용하여 나만의 Amazon Echo 구축
Alexa 음성 제어 LED에 대한 프로젝트 흐름
이 IoT 제어 LED 프로젝트에 대해 다음 순서도를 따를 것입니다.
그래서 그 과정은 다음과 같습니다. 먼저 USB 마이크를 통해 Raspberry Pi에 입력이 제공됩니다. 이제이 녹음은 Alexa 음성 서비스로 전송되고 음성 인식 후 AVS는 데이터를 IFTTT로 전송하고 IFTTT 에서 조건을 트리거합니다. 레시피에 따르면 IFTTT는 작업을 수행하기 위해 MQTT 브로커 인 Adafruit IO에 명령을 보냅니다. 그러면 ESP 12e 는 MQTT 프로토콜을 통해 Adafruit IO에서 데이터를 수신하고 명령에 따라 LED가 켜지거나 꺼집니다.
여기에서는 마이크 용 USB WebCam을 사용했습니다. 이미 Alexa Voice 서비스를 사용 하여 전구를 켰지 만 로컬로 연결된 기기 만 처리 할 수 있습니다.
Alexa Voice 서비스가 설치된 Raspberry Pi가 이미 설치되어 있다고 가정하므로 아래의 두 단계를 유지하며 하나씩 설명하겠습니다.
- 통신을위한 Adafruit 계정 설정
- IFTTT를 사용하여 Alexa를 Adafruit IO에 연결
- ESP12에서 코드 업로드
통신을위한 Adafruit 계정 설정
먼저 Adafruit IO 에서 피드를 만듭니다. 피드는 IFTTT에서 보낸 데이터를 저장합니다. 피드를 만들려면 다음 단계를 따르세요.
1 단계:- 자격 증명으로 Adafruit IO에 로그인하거나 계정이없는 경우 가입합니다.
2 단계: 내 계정 클릭 -> 대시 보드
3 단계: - 를 클릭하면 작업 및 새 대시 보드를 만듭니다 .
4 단계: 피드에 이름과 설명을 입력하고 만들기를 클릭합니다.
5 단계: 키 버튼을 클릭 하고 AIO 키를 기록해두면 코드에서이 키를 사용합니다.
6 단계: '+'버튼을 클릭하여 새 블록을 만들고 토글 버튼을 클릭합니다.
7 단계:- 이제 피드 이름을 입력하고 만들기를 클릭합니다. 그런 다음 피드를 선택하고 다음 단계를 클릭하십시오.
8 단계: 블록 설정에서 Button ON 텍스트 필드 에 '1'을 쓰고 Button OFF 텍스트 필드 에 '0'을 씁니다.
9 단계: 피드가 성공적으로 생성되었습니다.
IFTTT를 사용하여 Alexa를 Adafruit IO에 연결
IFTTT에서 애플릿 / 레시피를 만들려면 다음 단계를 따르십시오.
1 단계: 자격 증명으로 IFTTT에 로그인하거나 계정이없는 경우 가입 하십시오.
2 단계:- 내 애플릿에서 새 애플릿을 클릭합니다.
3 단계:- + this를 클릭 합니다.
4 단계: -Amazon Alexa를 검색하고 클릭하고 Amazon 개발자 계정 세부 정보로 로그인합니다.
5 단계: 트리거 선택, 특정 문구 말하기
6 단계: - 제공 " 빛에 차례" 를 클릭, 문구 등을 트리거를 만듭니다.
7 단계: + that을 클릭 합니다.
8 단계: Adafruit를 검색 하고 클릭합니다.
9 단계: 자격 증명을 사용하여 Adafruit 계정에 로그인합니다. Send data to Adafruit를 클릭합니다.
Adafruit IO에서 방금 생성 한 피드 이름을 선택합니다. 이제 저장할 데이터에 '1'을 주면 LED가 켜짐을 의미합니다. 작업 만들기를 클릭합니다.
10 단계:- 동일한 단계에 따라 애플릿을 만들어 LED를 끕니다 . 저장할 데이터 필드에 '0'만 입력하면됩니다. 모든 단계는 동일하게 유지됩니다.
작업의 절반을 완료했습니다. 이제 ESP-12E를 프로그래밍 할 시간입니다.
ESP12 코드 설명
Arduino IDE로 ESP12를 프로그래밍합니다. 이 튜토리얼의 끝에 완전한 코드 가 제공됩니다.
먼저이 링크에서 다운로드 할 수 있는 Adafruit Mqtt 라이브러리 가 필요합니다. Arduino IDE를여십시오. 예제로 이동 -> adafruit mqtt 라이브러리-> mqtt_esp8266
AIO 키 및 Wi-Fi 자격 증명에 따라이 코드 를 편집합니다.
먼저 ESP8266WIFI 및 Adafruit MQTT에 대한 모든 라이브러리를 포함했습니다.
#포함
우리는 당신의 와이파이의 SSID 및 암호 정의 당신이 당신의 ESP-12E를 연결하려는합니다.
#define WLAN_SSID "xxxxxxxx" #define WLAN_PASS "xxxxxxxxxxx"
이 섹션 에서는 각각 “ io.adafruit.com ”및“ 1883 ”으로 고정 된 Adafruit 서버 및 서버 포트 를 정의합니다.
#define AIO_SERVER "io.adafruit.com" #define AIO_SERVERPORT 1883
아래 필드를 피드를 만드는 동안 Adafruit 사이트에서 복사 한 사용자 이름 및 AIO 키로 바꿉니다.
#define AIO_USERNAME "********"# define AIO_KEY "******************************"
그런 다음 ESP8266 WiFiClient 클래스를 만들어 MQTT 서버에 연결합니다.
WiFiClient 클라이언트;
WiFi 클라이언트와 MQTT 서버 및 로그인 세부 사항 을 전달 하여 MQTT 클라이언트 클래스를 설정 하십시오.
Adafruit_MQTT_Client mqtt (& client, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY);
변경 사항을 구독하기 위해 'light'라는 피드를 설정합니다.
Adafruit_MQTT_Subscribe light = Adafruit_MQTT_Subscribe (& mqtt, AIO_USERNAME "/ feeds / light");
에서 설정 기능, 우리는 당신이 출력을 얻을하고자하는 ESP-12E의 PIN을 선언합니다. D0 핀을 출력으로 사용하고 있습니다. 그런 다음 ESP-12e를 Wi-Fi 액세스 포인트에 연결합니다.
void setup () { Serial.begin (115200); 지연 (10); pinMode (D0, OUTPUT); Serial.println (F ("Adafruit MQTT 데모")); // WiFi 액세스 포인트에 연결합니다. Serial.println (); Serial.println (); Serial.print ("연결 중"); Serial.println (WLAN_SSID); WiFi.begin (WLAN_SSID, WLAN_PASS); while (WiFi.status ()! = WL_CONNECTED) { …. …. …
라이트 피드에 대한 MQTT 구독을 설정하십시오.
mqtt.subscribe (& light); }
에서는 루프 기능하겠습니다 MQTT 서버에 연결 MQTT_connect ()을 사용하여 살아 있는지 확인; 함수.
무효 루프 () { MQTT_connect ();
이제 'light'피드를 구독하고 adafruit IO에서 문자열을 가져와 atoi ()를 사용하여이 문자열을 숫자로 변환합니다 . 함수를 사용하고 digitalWrite ()를 사용하여이 숫자를 PIND0에 기록합니다 . 함수.
Adafruit_MQTT_Subscribe * 구독; while ((subscription = mqtt.readSubscription (5000))) { if (subscription == & light) { Serial.print (F ("Got_light:")); Serial.println ((char *) light.lastread); uint16_t num = atoi ((char *) light.lastread); digitalWrite (16, num); }
일:
ESP-12E를 노트북에 연결하고 아래 코드를 업로드하십시오 (코드에서 자격 증명을 편집하는 것을 잊지 마십시오).
LED 또는 릴레이를 핀 D0에 연결합니다. 이제 Alexa 서비스가 RPi에서 실행 중인지 확인하십시오.
명령을 내리려면 명령을 보낼 때마다 "Alexa"를 호출하여 Alexa 서비스를 깨워 야합니다. 신호음이 들립니다. 신호음이 들리면 " Alexa Trigger Turn on the Light. ”잠시 후 불이 켜지는 것을 볼 수 있습니다. 그런 다음 " Alexa Trigger Turn off the Light " 라고 말하면 조명이 꺼져 야합니다.
그게 다야…. ESP-12E의 GPIO 핀을 추가하고 IFTTT에서 다른 문구로 다른 애플릿을 만들어 위 코드에 더 많은 어플라이언스를 추가 할 수 있습니다.
아래의 전체 코드와 데모 비디오를 확인하십시오. 또한 여기에서 모든 홈 오토메이션 프로젝트를 확인하십시오.