애들이 어려서 버튼을 누르면 동물소리, 노래, 멜로디 등이 나오는 사운드북(멜로디북)을 많이 사용하고 있습니다.

그런데 구입하고 얼마 지나지 않으면 항상 고장이 나더군요.. 배터리를 교체해봐도 안되는 걸 보면 대부분 버튼이나 내부에 뭔가 고장이 나는 것 같습니다.

그래서 책은 아니지만 버튼을 누르면 각종 소리가 나는 사운드박스(SoundBox)를 만들기로 했습니다. 각 버튼에 따른 소리는 수시로 업데이트가 가능하게 만들 예정입니다.

 

대략적인 구성은 아래와 같습니다.

SoundBox 구성

 

알리에서 주문한 부품 중 가장 중요한 부품이 도착해서 바로 개발을 시작했습니다.

 

하드웨어

 

아래는 ESP8266 기반의 보드로 wifi 모듈과 충전회로가 포함되어 있습니다. 저처럼 하드웨어를 잘 모르는 사람이 사용하기 딱 좋습니다.

Wemos esp-wroom-02 Pocket 8266 D1 mini WIFI Module

 

NodeMCU 펌웨어를 올리고 LUA 언어로 개발할 수 있습니다.

펌웨어

 

현재 펌웨어는 거의 개발을 완료하였습니다. 버튼이 아직 도착 전이라서 실제 버튼 기능은 테스트하지 못했네요.

아무런 설정이 되지 않은 상태에서 전원이 켜지면 AP 모드로 동작되게 하였습니다. 아래 그림에서처럼 “SoundBox-172.16.0.1″로 표시됩니다.

 

AP에 연결한 후 AP의 SSID에 표시된 아이피 주소(172.16.0.1)로 웹브라우저를 사용하여 접속(http://172.16.0.1)하면 관리 UI가 표시됩니다.

SoundBox 관리자 페이지

 

– 다른 AP에 연결할 수 있도록 WiFi 설정 지원

 

 

 

 

 

– Home Assistant 연결 설정 (버튼 클릭 시 연결할 스위치 또는 스크립트 설정 및 HA 연결 암호 설정)

 

 

 

 

 

– SoundBox 설정 (배터리를 오래 사용하기 위한 슬립모드 진입 시간 설정)

 

 

 

 

 

동작

 

일단 WiFi, HA 설정이 되고 나면 시작 시 자동으로 해당 AP에 연결되고, HA에 시작 명령을 보내고 HA는 구글홈으로 TTS로 “SoundBox”라는 음성을 출력합니다.

이후 SoundBox에서 버튼을 누르면 해당 버튼에 대한 명령이 HA로 보내지고, HA에서 구글홈으로 MP3 파일을 재생시킵니다.

SoundBox가 일정 시간 이상 사용되지 않으면 자동으로 슬립모드에 들어가게 되고, 버튼 중 전원 버튼을 누르면 다시 동작을 시작합니다.

 

18650 배터리로 한 번 충전 후 몇 개월 사용하는 것이 목표입니다. SoundBox 외부에 충전 단자를 준비해서 마이크로 USB 포트로 충전할 수 있게 처리할 예정입니다.

 

일단 애가 두 명이라서 두 대를 만들고, 나중에 WiFi Smart Button으로 하나 더 만들어서 이거저것 연결해서 사용해볼까 합니다.