- 사용 된 하드웨어 구성 요소 :
- CP2102 USB-TTL 변환기를 사용하여 ESP-01 모듈 프로그래밍 :
- ESP-01과 CP2102 모듈의 연결 :
- Alexa Home Automation을위한 ESP-01 모듈 프로그래밍
- 회로도
- 가정 자동화를위한 Amazon Alexa 앱 설정
Amazon Echo 또는 Google 홈과 같은 스마트 스피커는 요즘 인기를 얻고 있으며 둘 다 사용자 지정 기술 또는 동작을 통합하여 해당 스마트 스피커를 사용하여 모든 어플라이언스를 제어 할 수 있습니다. 우리는 이전에 Raspberry Pi와 Alexa를 사용하여 자체 스마트 스피커를 구축했으며이 Raspberry Pi 스마트 스피커를 사용하여 가전 제품을 제어했습니다.
오늘날 홈 자동화는 매우 보편화되었으며 사람들은 IoT를 사용하여 가정의 모든 것을 자동화하고 있습니다. 여기에 우리가 리얼 아마존 에코를 사용하는이 튜토리얼의 스피커를 점하고있는 사용자 정의 기술을 만들 AC 가전 제품 제어 조명, 팬, 텔레비전, 소켓 같은 아마존 에코 점 스피커를 사용하여. 여기에서는 Arduino UNO 및 ESP8266-01 Wi-Fi 모듈을 사용하여 Echo dot 스피커를 AC 기기와 연결합니다. 이 튜토리얼을 마치면 Alexa를 통해 모든 어플라이언스를 제어 할 수 있습니다.
사용 된 하드웨어 구성 요소:
- Arduino UNO
- ESP-01 모듈
- Amazon Alexa 에코 도트
- CP2102 USB-TTL 변환기
- 브레드 보드
- 5V 릴레이 모듈
- AC 기기
- 점퍼
CP2102 USB-TTL 변환기를 사용하여 ESP-01 모듈 프로그래밍:
여기서 ESP-01은 CP2102 USB-TTL 변환기를 사용하여 프로그래밍됩니다. Arduino UNO 보드를 사용하여 프로그래밍 할 수도 있습니다. 여기에서는 CP2102 모듈을 사용했으며이를 수행하는 단계는 아래에 설명되어 있습니다.
ESP-01 모듈
ESP8266 ESP-01은 IoT 애플리케이션 설계에 매우 인기있는 Wi-Fi 모듈이며 Arduino UNO와 같은 마이크로 컨트롤러가 인터넷에 연결할 수 있도록하는 데 사용됩니다. 이 모듈은 소형 컴퓨터처럼 작동 할 수있는 자체 포함 된 SOC (System on a Chip)입니다. 사전 설치된 AT 펌웨어가 함께 제공되므로 Arduino IDE를 사용하여 프로그래밍 할 수 있습니다. 링크를 따라 가면 Arduino IDE를 사용한 ESP-01 Wi-Fi 트랜시버 및 프로그래밍에 대해 자세히 알아볼 수 있습니다.
핀 설명:
VCC: 3.3V DC로 공급할 수있는 ESP-01의 전원 공급 장치 핀
GND: ESP-01의 접지 참조 핀
TXD: UART 송신기 핀으로 사용
RXD: UART 수신기 핀으로 사용
RESET: 모듈을 재설정하는 데 사용되며 활성 LOW 핀입니다.
CH_PD: 활성 HIGH 핀인 칩 인 에이블 핀입니다.
GPIO0: 이 핀은 두 가지 용도로 사용됩니다. 하나는 범용 입 / 출력이고 다른 하나는 ESP-01의 프로그래밍 모드를 활성화하는 것입니다.
GPIO2: 이것은 범용 입력 / 출력 핀입니다.
ESP-01과 CP2102 모듈의 연결:
아래 그림은 CP2102 USB-TTL 컨버터 의 핀아웃 다이어그램을 보여줍니다. 아래 표에 따라 ESP-01 모듈을 CP2102 USB-TTL 컨버터 모듈과 연결합니다.
ESP-01 모듈 |
CP2102 모듈 |
VCC |
3.3V |
GND |
GND |
RXD |
TXD |
TXD |
RXD |
CH_PD |
3.3V |
초기화 |
연결되지 않음 |
GPIO0 |
GND |
GPIO2 |
연결되지 않음 |
위의 연결이 성공적으로 완료되면 회로는 다음과 같이 보일 것입니다.
그런 다음 프로그래밍을 위해 CP2102 모듈을 PC에 연결합니다. ESP-01에 코드를 업로드하기 전에 먼저 통신 포트를 확인하십시오. 이를 위해 시작->으로 이동하여 장치 관리자를 검색하십시오. 그런 다음 COM 및 포트를 클릭하십시오. 이 옵션 에서는 아래 이미지 와 같이 " Silicon labs CP21xx USB-UART Bridge "와 같은 USB-TTL 변환기 이름이있는 COM 포트를 가져와야 합니다.
위의 단계를 성공적으로 완료 한 후 Arduino IDE를 열고 Tools 메뉴 에서 “ Generic ESP8266 Module ” 로 보드를 선택하고 이전 단계에서 얻은 COM 포트를 선택합니다.
Alexa Home Automation을위한 ESP-01 모듈 프로그래밍
이 프로젝트의 끝에 완전한 코드가 제공됩니다. 다음은 ESP-01 모듈에 업로드 할 코드에 대한 단계별 설명입니다. 첫 번째 단계는 필요한 모든 라이브러리를 포함하는 것입니다. 여기 링크에서 "fauxmoESP.h"라이브러리를 다운로드 할 수 있습니다.
# 포함 # 포함
이 단계에서는 ESP-01을 인터넷에 연결하는 데 필요한 모든 자격 증명을 정의해야합니다. 프로그램에서 네트워크 SSID 및 비밀번호 데이터를 업데이트하십시오.
#define SSID "*******"#define pass "*******"
다음으로 Alexa에서 제어해야하는 장치의 이름을 정의합니다. 제 경우에는 장치 이름을 " 침실 조명 ", " 침실 선풍기 "및 " 스마트 소켓 "으로 사용했습니다.
#define device1 "침실 조명"#define device2 "침실 팬"#define device3 "스마트 소켓"
WiFi.mode 기능 은 ESP-01 모듈을 Station 모드로 설정하는 데 사용되고 WiFi.begin 기능 은 ESP-01 모듈을 네트워크의 SSID와 암호를 인수로 사용하는 인터넷에 연결하는 데 사용됩니다.
WiFi.mode (WIFI_STA); WiFi.begin (ssid, pass);
다음 부분은 서버 생성, Alexa 장치의 포트 번호 활성화, 장치 활성화 등과 같은 Fauxmo 클래스 의 모든 기능을 초기화하는 것입니다. 그런 다음 앞에서 생성 한 fauxmo.addDevice 를 사용하여 모든 장치를 추가합니다.
fauxmo.createServer (true); fauxmo.setPort (80); fauxmo.enable (true); fauxmo.addDevice (device1); fauxmo.addDevice (device2); fauxmo.addDevice (device3);
다음으로 음성 명령을 미리 정의 된 장치 이름과 비교하는 함수를 작성합니다. 명령이 일치하면 Serial.print를 사용하여 Arduino 직렬 터미널에 문자를 보냅니다 .
fauxmo.onSetState ((unsigned char device_id, const char * device_name, bool state, unsigned char 값) {if (strcmp (device_name, device1) == 0) {if (state) Serial.print ("1"); else Serial.print ("2");}}
에서 무효 루프 () 함수 fauxmo.handle 기능은 알렉사에서 들어오는 데이터를 확인하고 그것을 사용하여 조치를 취할 것입니다 onSetstate () 함수를.
void loop () {fauxmo.handle (); }
이제 마지막에 제공된 전체 코드를 ESP-01 모듈에 업로드하고 성공적인 업로드를 확인합니다.
Arduino 코드:
그 후 Arduino에 코드를 업로드 할 차례입니다. Arduino의 코드는 매우 간단합니다. UART 터미널을 통해 ESP-01 모듈에서 보낸 문자 만 수신하고이를 비교하여 릴레이로 켜기 / 끄기 신호를 보냅니다. Arduino 용 Complete 프로그램은 다음과 같습니다.
char 데이터; void setup () {Serial.begin (115200); pinMode (7, OUTPUT); pinMode (6, OUTPUT); pinMode (5, OUTPUT); digitalWrite (7, LOW); digitalWrite (6, LOW); digitalWrite (5, LOW); } void loop () {if (Serial.available ()> 0) {data = Serial.read (); Serial.print (데이터); Serial.print ("\ n"); if (데이터 == '1') digitalWrite (7, HIGH); 그렇지 않으면 if (data == '2') digitalWrite (7, LOW); 그렇지 않으면 if (데이터 == '3') digitalWrite (6, HIGH); 그렇지 않으면 if (data == '4') digitalWrite (6, LOW); 그렇지 않으면 if (데이터 == '5') digitalWrite (5, HIGH); 그렇지 않으면 if (data == '6') digitalWrite (5, LOW); }}
성공적으로 업로드 한 후 Arduino에 코드를 연결하고 다음 회로도에 따라 하드웨어를 연결하십시오.
회로도
Alexa를 사용한 홈 오토메이션 의 회로 다이어그램 은 다음과 같습니다.
여기에서는 Perfboard의 모든 구성 요소를 납땜하여 Arduino 실드 역할을합니다.
마찬가지로 Perfboard에 릴레이 모듈도 구축했습니다.
가정 자동화를위한 Amazon Alexa 앱 설정
하드웨어 설정 및 코딩을 성공적으로 완료했으면 이제 Alexa Android 앱을 설정할 차례입니다. 먼저이 앱을 통해 주변의 스마트 기기를 검색해야합니다. 이렇게하려면 Alexa 장치를 켠 다음 Alexa 앱을 열고 " 장치 " 옵션 을 클릭 한 다음 " 장치 추가 "를 묻는 "+"기호를 클릭합니다. 그런 다음“ 장치 추가 ”를 클릭하고 장치 유형에서“ 기타 ”를 클릭 한 다음 장치 검색을 선택합니다. 그런 다음 Alexa 앱이 최대 45 초까지 걸릴 수있는 장치를 검색해야합니다.
참고: 또는 " Alexa, discover devices " 라는 음성 명령을 사용하여 장치를 검색 할 수도 있습니다 .
장치 검색이 완료되면 코드에 지정된 이름으로 3 개의 새 장치를 받게됩니다. 제 경우에는 침실 조명 , 침실 선풍기 및 스마트 소켓 입니다. 이제 설정을 테스트 할 준비가되었습니다. " Alexa, 침실 조명 켜기 "라고 말하여 테스트하면 "좋아"라는 피드백이 반환되고 조명이 켜집니다. 마찬가지로 다른 모든 명령을 테스트 할 수 있습니다.
Amazon Echo 점 제어 가전 제품 의 전체 설정 은 다음과 같습니다.
데모 비디오가있는 ESP-01의 전체 코드는 다음과 같습니다.