윤누리
윤누리
Admin
🧙 AI 위자드
🎻 루키 파트너
🌈 지피터스금손
🚀 SNS 챌린지 달성자
☕ 커피챗 오픈

하드웨어 1도 모르는 내가클로드코드로 고양이 음성인식 간식 급여기 만들기 (진행 중)

왜 만들었냐면 — 고양이 자동화의 시작

이번에 홈Iot 스터디 참여하면서 어떤 것을 자동화 해볼까 고민하다가... 고양이를 위한 음성 인식 급여기를 만들기로 했어요. 저희 집 첫째 고양이 로나가 소문난 먹보거든요. 제가 밥 좀 먹으려고 하면 옆에서 어찌나 조르는지, 편하게 한 끼를 못 먹어요. 😅 그래서 목표를 아주 솔직하게 이렇게 잡았어요.

  1. “로나 트릿” 한마디로 간식을 주고 — 로나를 달래거나 관심을 딴 데로 돌리고,

  2. 로나가 방에 들어가면 문을 자동으로 닫아서, 그 틈에 인간(저)이 평화롭게 밥을 먹는 것.

그러니까 이건 그냥 귀여운 급식기가 아니라, ‘먹보 고양이랑 평화롭게 공존하기’ 프로젝트, 말하자면 우리 집 고양이 스마트홈의 1탄인 셈이에요. (간식 급여기가 먼저, 방문 자동 개폐는 다음 단계고요.)

한국 고양이 한국 고양이 한국 고양이 한국 고양이 한국 고양이 한국 고양이

시중에 자동 급식기는 많지만 대부분 타이머나 버튼식이에요. “음성으로 부르면 나온다”는 건 직접 만들어야 했죠. 그래서 검볼머신(미니 뽑기 기계)을 개조하기로 했어요.

전체 구조는 이렇게 잡았어요:

맥북(음성인식 = 귀+두뇌)  →  WiFi  →  ESP32(손 = 서보 제어)  →  검볼머신(간식 배출)
전체 구조: 맥북(귀+두뇌) → WiFi 2.4GHz → ESP32(손) → 검볼머신(간식 배출)

맥북이 “로나 트릿”을 알아듣는 똑똑한 두뇌를 맡고, ESP32라는 작은 부품이 WiFi로 신호를 받아 서보모터를 움직여 간식을 밀어내는 구조예요. 이 구조를 짜는 것부터 Claude Code랑 상의했는데, 문외한인 저한테 “ESP32는 음성인식을 못 도리니까 손 역할만 시키고, 두뇌는 맥북한테 맡기자”고 정리해줬어요.


장비 도착, 그리고 Arduino IDE 첫 세팅

모든 장비가 왔어 esp32랑 서보 모터랑 디스펜서까지

주문한 ESP32, 서보모터(MG90S), 검볼머신이 도착했어요. 상자를 뜯고 나서 제가 한 첫 질문이 “빨간선(전원선)이 안 보이는데?”였을 정도로 정말 아무것도 몰랐어요. Claude Code가 서보 3선(갈색=전원 마이너스, 빨강=전원 플러스, 주황=신호선)을 하나하나 짚어줬어요.

노트북 옆 책상 위에 있는 사탕 디스펜서

다음은 ESP32에 프로그램을 넣기 위한 Arduino IDE 세팅이었는데, 이게 처음이라 겁났어요. 그래서 저는 이렇게 했어요.

나 중간중간 작업하는거 캡처 떠둘테니 로컬에 일단 저장좀

작업 화면을 단계별로 캡처해서 Claude한테 넘겼더니, 지금 어디까지 왔는지 보고 다음 단계를 알려줬어요. 그래서 저처럼 처음 하는 분들을 위해, 제가 밟은 순서를 캡처 그대로 남겨둘게요. (막히면 스크린샷 찍어서 물어보는 이 방식, 오늘의 핵심 팁이라 뒤에서 다시 얘기할게요.)

1단계 — ESP32를 아두이노가 알아보게 하기. 먼저 환경설정에 ESP32 보드 주소(URL)를 등록했어요.

시스템 관리자 설정 스크린샷

↑ 환경설정 > 추가 보드 매니저 URL 등록

2단계 — 보드 매니저에서 esp32 검색 후 설치.

프로그래밍 언어를 보여주는 컴퓨터 화면의 스크린샷

↑ 보드 매니저에서 “esp32” 검색

Python 스크립트의 스크린샷

 ↑ ESP32 플랫폼 설치 완료

3단계 — 서보를 움직일 라이브러리(ESP32Servo) 설치.

esp2svro 라이브러리 관리자의 스크린샷

 ↑ 서보 제어용 ESP32Servo 라이브러리 설치

4단계 — 펌웨어(급여기 코드) 열기. Claude가 짜준 코드를 스케치 폴더로 만들어 열었어요.

폴더에 있는 파일을 보여주는 화면

 ↑ 스케치 폴더 만들기 안내

한국어 텍스트가 표시된 컴퓨터 화면의 스크린샷

↑ 급여기 펌웨어가 열린 모습

이렇게 준비를 마치고, 마지막에 ESP32에 코드를 올리니 업로드 성공!

검은색 화면이 표시된 컴퓨터의 스크린샷

 ↑ “Done uploading” — 펌웨어가 ESP32에 무사히 올라간 순간


이 과정의 삽질 4번

세팅이 매끄럽게 됐냐고요? 전혀요. 오늘 하루 막힌 데가 4곳이었어요. 근데 알고 보면 다 사소한 원인이었어요. 겁먹지 마세요.

삽질 4번과 진짜 원인: ①USB에 안 뜸→충전 전용 케이블 ②시리얼 흰 화면→터미널로 읽기 ③통신 안 됨→5GHz/2.4GHz 격리 ④수음 안 됨→입력 볼륨 낮음

삽질 1단계 — USB에 ESP32가 안 떠요

ESP32를 케이블로 꽂았는데 Arduino IDE 포트 목록에 아무것도 안 뜨는 거예요. “고장 났나?” 싶어서 식겁했죠. 스크린샷을 보낸 뒤 Claude가 짚어준 원인은 어이없게도 충전 전용 케이블이었어요. 데이터가 안 통하는 케이블이었던 거죠. 데이터 케이블로 바꾸니 바로 인식됐어요.

다양한 옵션이 표시된 컴퓨터 화면의 스크린샷

↑ 케이블 바꾸기 전: 포트에 ESP32가 없음

Mac OS X의 디버그 메뉴 스크린샷

 ↑ 데이터 케이블로 교체 후: usbserial 포트 인식 성공

삽질 2단계 — 시리얼 모니터가 흰 화면으로 멈춰요

115200을 누르니까 IDE가 거의 멈춘거처럼 흰 창이 나오네

ESP32가 자기 주소(IP)를 알려주는 걸 화면으로 봐야 하는데, Arduino 시리얼 모니터가 버벅이면서 흰 창으로 멈췄어요. 여기서 Claude가 우회로를 제안했어요. Arduino 창 대신 터미널에서 직접 읽는 방법이요. (부팅 직후 깨진 글자가 뜨는 건 정상이라는 것도 미리 알려줘서 당황 안 했어요.) 이 방법으로 ESP32 주소를 확보했어요.

삽질 3단계 — 맥이랑 ESP32가 서로 안 닿아요

주소는 알아냈는데 맥에서 신호를 보내도 ESP32가 반응이 없었어요. 원인은 공유기가 5GHz와 2.4GHz 기기를 서로 격리하고 있어서였어요. ESP32는 2.4GHz만 쓸 수 있는데 제 맥은 5GHz에 붙어 있었던 거죠. 서로 다른 방에 있으니 대화가 안 됐던 거예요.

2.4GHz로 옮겼어

맥을 2.4GHz WiFi로 옮기자마자 통신이 뚫렸어요.

삽질 4단계 — 목소리를 아예 못 알아듣는 것 같아요

일단 알아듣는다. 근데 인식이 아주 잘 되지는 않는거 같아? 아예 수음이 안 되는 것 같애

마지막엔 마이크가 제 목소리를 아예 못 잡는 것 같았어요. 근데 이것도 알고 보니 맥 입력 볼륨이 낮았던 것뿐이었어요. 시스템 설정에서 마이크 입력 볼륨을 올리니 멀쩡하게 잡혔어요.

아냐아냐 입력 레벨 막대기는 잘 올라가고 있어

드디어, “로나 트릿” → 간식 기계까지 신호 도착

삽질 4번을 다 넘기고 나니, 드디어 전체 경로가 한 번에 뚫렸어요.

맥북에서 음성인식 프로그램을 켜고 “로나 트릿”이라고 말하니 → 맥이 알아듣고 → WiFi로 ESP32에 신호를 쐈고 → → ESP32 응답: 200 이라는 성공 신호가 떴어요. (200은 “신호 잘 받았어요”라는 뜻이에요.)

아직 서보모터를 기계에 물리적으로 연결하기 전이라 간식이 실제로 떨어지진 않지만, 목소리 → 두뇌(맥) → 손(ESP32)까지 신호가 처음으로 끝까지 도달한 순간이었어요. 문외한 입장에선 이게 진짜 감격이었어요.


결과

항목

Before

After

하드웨어 지식

서보·ESP32가 뭔지도 모름

배선·세팅·통신 흐름 이해

통신 상태

맥과 기계가 서로 모름

“로나 트릿” 음성 → ESP32 신호 도달 (응답 200)

남은 일

점퍼선으로 서보 연결 → 실제 간식 배출

수치로만 보면 “신호 하나 뚫었다”가 전부지만, 체감은 완전히 달랐어요. 하드웨어를 1도 모르던 사람이 하루 만에 ‘음성으로 기계를 움직이는’ 파이프라인을 직접 세웠다는 게요. 솔직히 Claude Code가 없었다면 저는 중간 삽질(특히 2.4GHz 격리 문제)에서 원인을 못 찾고 포기했을 거예요.

아직 안 된 것도 솔직히 남길게요. 음성을 받아쓰는 속도가 한 번에 4~7초로 좀 느려요. 정확도는 괜찮은데 반응이 굼떠서, 다음 주엔 더 빠른 인식 모델로 바꿔볼 예정이에요. 점퍼선(부품)이 도착하면 서보를 기계에 연결해서 진짜로 간식이 떨어지는 것까지 완성할 거고요. 다음 편에서 이어갈게요.


다음 편 예고 — “서보로는 힘이 부족할 것 같은데요?”

이 진행 상황을 스터디장님께 보여드렸더니, 날카로운 피드백을 주셨어요. 제 디스펜서(검볼머신)는 회전축에 기어가 물려 있어서, 지금 쓰는 작은 서보모터(MG90S)로는 힘(토크)이 부족할 것 같다는 거였어요. 그래서 두 가지 방향을 제안해주셨죠.

  1. 스텝모터로 교체 — 추천받은 5V 스텝모터(28BYJ-48 계열)는 감속기어가 내장돼 있어 힘이 세고, 계속 돌릴 수 있어서 사료를 밀어내는 데 더 잘 맞아요. 다행히 맥↔︎ESP↔︎WiFi 구조는 그대로 두고 모터 부분만 바꾸면 돼요.

  2. 아예 3D 프린팅 — Munch-E 같은 아두이노 전용 급식기 도안을 구해서, 프린터가 없으니 JLC3DP 같은 출력 서비스로 몸통째 뽑아보는 것도 방법이에요.

저는 일단 ① 스텝모터부터 갈아끼워서 지금 기계로 배출을 성공시키고, 3D 프린팅은 스터디가 끝난 뒤 “정식 버전”으로 도전해볼 생각이에요. 하드웨어 문외한이 혼자였다면 “서보 힘이 부족하다”는 것도 몰랐을 텐데, 사람 피드백 + AI 상담이 합쳐지니 방향이 잡히네요. 이 얘기도 다음 편에서!

4
4개의 답글
밀어주고 끌어주는

온·오프라인 AI 스터디

AI로 어디까지 할 수 있는지
직접 확인하실 분만 신청하세요.