




이 프로젝트에서는 제가 어떻게 Amazon Alexa와 ESP32 4채널 릴레이 보드 를 연결하고 음성 명령으로 네 릴레이 채널을 모두 제어했는지 보여드리겠습니다.
저는 ESP32, 4개의 릴레이, 릴레이 드라이버 회로, 옵토커플러, 상태 LED, 전원 회로 및 USB Type-C 프로그래밍 인터페이스가 하나의 PCB에 구성된 기성 릴레이 컨트롤러를 사용합니다.
ESP32가 WiFi에 연결되면 Alexa는 네 릴레이 채널을 별도의 장치로 검색할 수 있습니다. 그 후 각 릴레이를 Echo Dot으로 또는 Alexa 앱에서 직접 ON 또는 OFF로 전환할 수 있습니다.
예:
"Alexa, Relay 1을 켜 줘."
"Alexa, Relay 2를 꺼 줘."
Alexa 통신에는 Espalexa 라이브러리를 사용합니다. 이를 통해 Blynk나 Arduino IoT Cloud 같은 다른 IoT 플랫폼 없이도 ESP32가 로컬 WiFi 네트워크에서 Alexa와 연동할 수 있습니다.




이 프로젝트에는 다음이 필요합니다:



이 프로젝트에서는 기성품인 ESP32 4채널 릴레이 보드 를 온라인으로 구매해 사용했습니다.
이 보드는 ESP32-WROOM-32E 를 기반으로 하며 ESP32, 4개의 릴레이, 릴레이 드라이버 회로, 옵토커플러, 상태 LED 및 USB 프로그래밍 회로가 하나의 PCB에 구성되어 있습니다.
각 릴레이에는 3개의 출력 단자가 있습니다:
일반적인 스위칭 용도에서는 COM과 NO를 사용하여 릴레이가 활성화될 때까지 부하가 연결되지 않은 상태로 유지되게 할 수 있습니다.
또한 이 보드는 ESP32 제어부와 릴레이 드라이버부 사이에 옵토커플러 절연 기능을 제공합니다.
이미 이러한 유형의 ESP32 4채널 릴레이 보드가 있다면 별도의 릴레이 회로를 제작하지 않고 바로 사용할 수 있습니다.
또한 유사한 ESP32 4채널 릴레이 보드의 회로도와 Gerber 파일 도 첨부했습니다. 회로도에는 ESP32, USB-시리얼 회로, 5V-3.3V 레귤레이터, 자동 리셋 회로, 옵토커플러, 트랜지스터 릴레이 드라이버, 플라이백 다이오드 및 4개의 5V 릴레이가 포함되어 있습니다.
이 파일을 참고 자료로 사용하거나, 직접 버전을 제작하려는 경우 Gerber 파일을 PCB 제조업체에 보낼 수 있습니다.
참고: ESP32 4채널 릴레이 보드마다 사용하는 GPIO 핀이 다를 수 있습니다. 제가 사용하는 보드는 다음 핀을 통해 4개의 릴레이를 제어합니다:
따라서 프로그램을 업로드하기 전에 사용 중인 보드의 핀 배치를 확인하십시오.



ESP32는 Amazon Echo Dot과 동일한 WiFi 네트워크에 연결됩니다. Alexa가 ESP32를 인식할 수 있도록 이 프로젝트에서는 Espalexa 라이브러리를 사용합니다.
Espalexa는 ESP32가 Alexa에서 호환 가능한 스마트 홈 장치로 표시되도록 합니다. 장치 검색을 처리하고 Alexa가 전송하는 ON/OFF 명령을 수신하므로, 자체 Alexa 스킬을 만들거나 별도의 IoT 플랫폼을 사용할 필요가 없습니다.
코드에서는 각 릴레이를 다음과 같이 Espalexa에 별도의 장치로 추가합니다: Relay 1, Relay 2, Relay 3 및 Relay 4.
다음과 같이 말하면:
"Alexa, 릴레이 1을 켜 줘"
Alexa가 WiFi 네트워크를 통해 명령을 보냅니다. ESP32의 Espalexa가 명령을 수신하고, ESP32가 릴레이 1에 연결된 GPIO를 전환합니다.
네 개의 릴레이 모두 동일한 과정으로 작동합니다.
따라서 기본 통신 흐름은 다음과 같습니다:
Alexa / Echo Dot → WiFi Router → ESP32 + Espalexa → Relay → Appliance
코드를 업로드하기 전에 Arduino IDE에 ESP32 지원과 Espalexa 라이브러리를 설치해야 합니다.
먼저 ESP32 board package 가 설치되어 있는지 확인합니다.
그런 다음 다음을 엽니다:
Sketch > Include Library > Manage Libraries
다음을 검색합니다:
Espalexa
그런 다음 설치합니다.
공식 Espalexa GitHub 저장소에서 라이브러리를 받을 수도 있습니다.
모든 설치가 끝나면 ESP32 릴레이 보드를 USB Type-C cable을 사용해 컴퓨터에 연결합니다.
이 보드에는 USB-to-serial 인터페이스가 내장되어 있으므로 별도의 FTDI 프로그래머가 필요하지 않습니다.
Arduino IDE에서 다음 메뉴를 통해 ESP32 보드를 선택합니다:
Tools > Board
그런 다음 다음 메뉴에서 올바른 포트를 선택합니다:
Tools > Port
이것으로 소프트웨어 설정에 필요한 작업이 모두 끝납니다.
2단계에서 이미 Espalexa의 기능을 설명했기 때문에 이 부분을 줄였습니다. 현재 3단계에서는 그 설명을 거의 그대로 반복하고 있습니다.
이 프로그램은 Alexa 장치 4개를 생성하고, 각 장치를 ESP32의 릴레이 출력 하나에 연결합니다.
제 보드의 릴레이 GPIO 핀은 다음과 같습니다:
다음은 프로그램을 더 깔끔하게 정리한 버전입니다:
업로드하기 전에 다음 항목을
자신의 WiFi 이름과 비밀번호로 바꿉니다.
게시하기 전에 현재 초안에 표시된 WiFi 인증 정보를 반드시 교체할 것을 강력히 권장합니다. 업로드한 초안의 코드에 실제 SSID와 비밀번호가 포함되어 있습니다.
WiFi 정보를 수정한 후:
ESP32가 연결되면 다음과 비슷한 내용이 표시됩니다:
이제 ESP32를 Alexa에 추가할 준비가 되었습니다.











다음을 확인합니다: ESP32와 Echo Dot이 동일한 WiFi 네트워크에 연결되어 있어야 합니다.
ESP32는 2.4 GHz WiFi를 사용하므로 설정하는 동안 동일한 2.4 GHz 네트워크를 사용했습니다.
다음 Amazon Alexa app 을 열고 다음으로 이동합니다:
Devices > + > Add Device
다음을 선택합니다:
Light > Other
그런 다음 다음을 탭합니다:
Discover Devices
Alexa가 로컬 네트워크에서 Espalexa가 생성한 장치를 검색합니다.
검색이 끝나면 다음과 같이 표시됩니다:
테스트를 위해 이 이름을 그대로 사용하거나, 나중에 Light, Fan, Lamp 또는 Room Light처럼 더 자연스러운 이름으로 변경할 수 있습니다.
이제 Alexa 앱이나 음성 명령으로 릴레이를 제어할 수 있습니다.
현재 게시물의 이 단계는 이미 잘 작성되어 있습니다. 주로 문장을 간결하게 줄이고, 실제로 필요하지 않은 "For best results"와 같은 표현을 삭제했습니다.







Alexa가 네 장치를 모두 검색하면 전체 설정을 테스트할 수 있습니다.
다음과 같이 말합니다:
"Alexa, turn on Relay 1."
릴레이 1이 ON으로 전환되고 상태 LED가 켜져 명령이 성공적으로 수신되었음을 보여 줍니다.
그런 다음 다음과 같이 말합니다:
"Alexa, turn off Relay 1."
릴레이와 상태 LED가 OFF로 전환됩니다.
같은 방법으로 다른 릴레이 채널도 테스트합니다:
또한 다음에서 직접 릴레이를 ON 및 OFF로 전환할 수 있습니다: Alexa 앱. 참고 프로젝트에서도 동일한 음성 명령 및 Alexa 앱 제어 방식을 보여 줍니다.
이번 시연에서는 AC 기기나 외부 부하를 연결하지 않습니다. 기판에 장착된 릴레이 LED만으로도 Alexa, WiFi, Espalexa 및 네 릴레이 채널이 모두 정상적으로 작동하는지 확인할 수 있습니다.
원문: https://www.instructables.com/ESP32-Based-Smart-Home-Automation-System-With-Alex/