
ESP32 보드와 음성 출력 장치, n8n 워크플로우를 연결하면 일정이나 날씨를 음성으로 들려주는 브리핑 봇을 구상할 수 있습니다. 영상은 사용자가 직접 제작한 봇과 제작 과정을 소개합니다. 이 글은 원문에 있는 구성과 입력을 정리한 안내이며 현재 환경에서 회로나 코드를 다시 실행한 검증 결과는 아닙니다.
어떤 장치를 만드나요?
영상은 ESP32-C3가 정해진 시간이나 버튼 입력으로 깨어나 서버에 브리핑을 요청하고, 반환된 음성을 스피커로 재생하며 OLED에 상태를 표시하는 구조를 설명합니다. n8n 워크플로우는 일정·날씨 정보와 언어 모델, 음성 합성을 연결하는 역할입니다.
준비물
- ESP32-C3 SuperMini 보드
- SSD1306 OLED와 MAX98357A I2S 오디오 앰프, 스피커
- 버튼, 연결선, 적절한 전원과 조립 도구
- Arduino IDE, 보드 지원 패키지와 필요한 라이브러리
- n8n 실행 환경과 일정·날씨·AI·음성 합성 서비스 계정
부품 가격과 배송비는 판매처와 시점에 따라 달라집니다. 공개 소스가 무료라는 것과 서버·외부 API 사용료가 없다는 것은 다릅니다. 전원 및 배선은 실제 구입한 보드와 부품의 사양을 확인하세요.
1. 부품을 연결하기 전에 핀을 확인합니다
원문은 앰프에 BCLK GPIO 2, LRC GPIO 3, DIN GPIO 1, SD GPIO 10을 사용하고, OLED의 SDA와 SCL을 각각 GPIO 8과 9에 연결하는 예시를 제시합니다. 버튼은 GPIO 4와 GND를 사용합니다. 이는 영상의 구성 예시이며 보드 제조사와 사용 가능한 핀, 부팅 조건에 따라 그대로 적용되지 않을 수 있습니다. 연결 전 부품 데이터시트와 실제 보드의 핀 배치를 확인하고 전원을 끈 상태에서 작업하세요.
2. n8n 브리핑 흐름을 준비합니다
원문은 웹훅 요청을 받아 캘린더와 날씨를 조회하고, AI로 브리핑을 작성해 음성으로 변환한 뒤 장치에 응답하는 흐름을 소개합니다. 각 서비스의 인증, 사용량 제한과 비용을 확인하고 개인 일정에 접근하는 계정 권한을 필요한 범위로 제한합니다.
원문에는 esp32_bot.json 워크플로우 파일과 Arduino .ino 소스가 언급되지만, 확인한 티스토리 추출본에는 실제 다운로드 주소가 없습니다. 따라서 파일을 이미 확보했다고 가정하거나 없는 다운로드 링크를 만들지 않습니다. 파일을 확보한 경우 영상의 내용과 현재 n8n 환경을 대조해 사용하세요.
3. 보드의 네트워크와 요청 주소를 설정합니다
영상은 Arduino 코드에서 Wi-Fi와 n8n 웹훅 주소를 바꾸는 예시를 보여 줍니다. 아래 값은 채워야 할 자리표시자입니다.
const char *ssid = "YOUR_WIFI_SSID";
const char *password = "YOUR_WIFI_PASSWORD";
const String webhook_url = "https://YOUR_N8N_DOMAIN/webhook/YOUR_WEBHOOK_ID";
실제 비밀번호나 웹훅 주소를 공개 저장소에 올리지 마세요. 코드 버전마다 위치는 달라질 수 있습니다. 원문의 제작 프롬프트와 상세 요구사항은 티스토리 원문과 영상에서 확인할 수 있습니다.
4. 작은 단계로 동작을 확인합니다
먼저 보드 전원과 디스플레이, 버튼, 오디오 출력을 각각 확인한 뒤 네트워크와 서버 연동을 추가하세요. 일정 요청과 음성 파일이 도착했는지, 알람과 수동 버튼이 의도한 대로 작동하는지도 확인합니다. 원문에 나온 Wi-Fi 출력 조절과 재부팅은 제작자가 특정 환경에서 사용한 대응 사례이며 모든 보드의 오류를 해결한다고 보장할 수 없습니다.
다음 한 걸음
내 환경에서 막힌 부분은 실행 단계와 함께 질문해 주세요. 바꿔 만든 결과도 함께 나눌 수 있습니다.