본문 바로가기
ESP32

ESP32 인터넷 라디오, MP3 플레이어 및 알람 시계

by 모빌리티키즈 2023. 3. 6.
728x90

ESP32 인터넷 라디오, MP3 플레이어, 알람 시계를 만들기 위해서는 ESP32 와이파이와 블루투스 모듈, 오디오 앰프와 스피커, 그리고 전원 공급 장치를 사용해야 할 것이다.

먼저 ESP32 모듈을 코드로 프로그래밍하여 Wi-Fi 및 Bluetooth 연결을 활성화해야 합니다. 다음으로 온라인 라디오 스트림에 액세스할 수 있는 웹 서버를 만들어야 합니다. 이 웹 서버를 통해 ESP32는 온라인 라디오 스트림에 액세스하고 오디오 앰프와 스피커를 통해 재생할 수 있습니다. 또한 ESP32를 제어하여 다른 라디오 방송국을 재생할 수 있는 웹 클라이언트를 만들어야 합니다.

MP3 재생 기능을 추가하려면 USB 플래시 드라이브에서 MP3 파일을 읽은 다음 오디오 앰프와 스피커를 통해 재생하도록 ESP32를 프로그래밍해야 합니다. 또한 다른 MP3 파일을 재생하도록 ESP32를 제어할 웹 클라이언트를 만들어야 합니다.

마지막으로 WiFi 연결을 사용하여 현재 시간을 가져오도록 ESP32를 프로그래밍하고 이를 사용하여 경보를 설정할 수 있습니다. 또한 여러 경보를 설정하도록 ESP32를 제어할 웹 클라이언트를 만들어야 합니다.

특성, 안정성 및 기능면에서 이러한 유형의 상용 장치보다 비슷하고 훨씬 더 나은 독립형 인터넷 라디오를 만드는 방법은 아직 제작 가격이 몇 배나 저렴합니다.

  • 최대 999개의 스테이션을 처리할 수 있습니다.
  • IR 원격 제어는 선택 사항입니다.
  • NTP에서 시간 획득
  • 알람 시계로 사용할 수 있으며 취침 타이머가 있습니다.
  • 라디오 모드에서 매시간 음성
  • 디스플레이에 백라이트 핀이 있는 경우 밝기를 변경할 수 있습니다.
  • 라틴어, 그리스어 및 키릴 문자 집합을 지원합니다.
  • 커뮤니티 라디오 브라우저는 검색 엔진으로 통합됩니다.
  • 채널 목록은 Excel 형식으로 내보내거나 가져올 수 있습니다(데이터 백업용).

필수 HW:

  • 디코더 모듈 VS1053 또는 외부 DAC(예: PCM5102a)
  • 토치 패드가있는 TFT 디스플레이 (SPI), 컨트롤러는 ILI9341 (320x240px), HX8347D (320x240px), ILI9486 (480x320px) 또는 ILI9488 (480x320px) 일 수 있습니다.
  • ESP32 보드(PSRAM 필요 없음)
  • SD 카드 + 어댑터

 

터치스크린 또는 웹페이지를 통해서만 제어할 수 있으며 스위치, 로터리 엔코더, 커패시터 또는 저항기와 같은 추가 부품이 필요하지 않습니다.

VS1053
을 사용한 회로도 외부 DAC

디스플레이가 있는 회로도(레이아웃)

설치하는 방법: 플랫폼 IO는 IDE로 확실히 권장됩니다.

V2의 새로운 기능:

  • 따라서 오디오 프로세스는 자신의 작업에서 작동하며 분리되어야합니다. VS1053을 사용하는 경우 자체 SPI 버스(VS1053의 경우 HSPI, TFT 및 TP의 경우 VSPI)가 있어야 합니다. 디스플레이에 그림을 그릴 때나 웹 사이트가로드 될 때 드롭 아웃은 과거의 일입니다.
  • SD 카드는 안정성을 향상시키고 속도를 높이기 위해 SD_MMC로 연결됩니다. 즉, GPIO를 자유롭게 선택할 수 없습니다. SD 카드 어댑터에는 풀업 또는 직렬로 연결된 저항기가 없어야 합니다.
  • VS1053 대신 SW를 사용하여 디코딩 할 수 있습니다. 가능한 형식은 mp3, aac, mp4 및 flac입니다 (flac에는 PSRAM이 필요함). I13348S를 통해 연결된 DAC(예: UDA98357, MAX5102A, PCM2A)가 필요합니다.
  • 디스플레이는 이제 480x320px가 될 수 있으며 ILI9486 (라즈베리 PI의 SPI 디스플레이)이 지원됩니다.
  • 완성 된 장치에서 SD 카드에 액세스하지 못할 수 있습니다. 이 경우 FTP 서버가 통합됩니다. 다음은 파일질라의 설정입니다. 사용자 이름과 비밀번호는 'esp32'이며 'common.h'에서 변경할 수 있습니다.
  • AC101 및 ES8388 지원
  • WM8978 지원 (TTGO 오디오 T 보드)
  • 서버에 액세스 데이터가 필요한 경우 사용자 이름 및 암호 입력 "URL|user|pwd"
  • m3u 형식의 로컬 재생 목록을 처리 할 수 있습니다.
  • ESP32 또는 ESP32-S3를 사용할 수 있습니다.

공급

  • ESP32 개발 키트 보드
  • ILI9341 2.8 인치 TFT 디스플레이 240x320
  • 플래시 메모리 카드, SD 카드
  • VS1053 오디오 디코더 모듈
  • PAM8403 클래스 D 오디오 증폭기 보드
  • 스피커 : 0.25W, 8 옴
  • 저항기 10k 옴

1단계: 설명

이 장치에는 모든 컨트롤이 수행되는 터치 스크린이있는 대형 컬러 TFT 디스플레이가 포함되어있어 추가 버튼이 필요하지 않습니다. 또한 고급 알람 설정이있는 큰 숫자 시계와 독립형 트랙 및 재생 목록을 재생할 수있는 MP3 플레이어가 있습니다. 그렇지 않으면이 멋진 장치에 대한 모든 크레딧은 GitHub에 게시 된 코드 작성자 인 "schreibfaul1"인 "https://github.com/schreibfaul1/ESP32-MiniWebRadio"에게 들어갑니다.

오픈 소스 프로젝트를 찾을 수있는 대규모 온라인 커뮤니티가 있으며 프로젝트를 공유 할 수도 있습니다. 제 개인적인 경험을 통해이 커뮤니티에서 많은 유용한 프로젝트를 찾을 수 있다고 말할 수 있습니다.

ESP32-MiniWebRadio-master.zip
15.34MB

2 단계 : 오디오 출력

헤드폰을 VS1053 모듈 출력에 직접 연결할 수 있습니다. VS1053의 접지 단자는 회로의 음극에 연결되어 있지 않으므로 PAM8403 D 클래스 증폭기를 연결하려면 이 특별한 경우와 같이 다른 증폭기용 전원 공급 장치를 사용하거나 아래 회로도에 제시된 증폭기 보드를 약간 수정해야 합니다.

저자가 언급했듯이 건설 중 가장 큰 문제는 마이크로 컨트롤러로 SD 카드를 감지하는 것이 었습니다. 다른 SD 카드로 많은 시도가 실패한 후 4GB 용량의 "Platinet"브랜드 SD 카드로 성공하여 10 킬로옴 값의 풀업 저항을 SD 카드의 D0 핀에 연결했습니다.

3단계: 설치

이 라디오의 다른 기능은 다음과 같습니다.

- 최대 999 개의 스테이션을 처리 할 수 있습니다.

- IR 원격 제어는 선택 사항입니다.

- NTP에서 시간을 얻습니다.

- 알람 시계로 사용할 수 있으며 취침 타이머가 있습니다.

- 라디오 모드에서 매시간 음성

- 디스플레이에 백라이트 핀이 있는 경우 밝기를 변경할 수 있습니다.

- 라틴어, 그리스어 및 키릴 문자 집합을 지원합니다.

- 커뮤니티 라디오 브라우저는 검색 엔진으로 통합됩니다

- 채널 목록을 Excel 형식으로 내보내거나 가져올 수 있습니다 (데이터 백업 용).

"PlatformIO"IDE를 통해 마이크로 컨트롤러를 설치하는 것이 좋으며 설치 방법은 다음 이미지와 함께 간략하게 설명됩니다.

4단계: 전나무 시작 및 기능

전원을 켠 직후 큰 로고가 화면에 나타나고 백그라운드에서 장치가 WiFi 네트워크에 연결됩니다. 몇 초 후에 첫 번째 인터넷 라디오 방송국이 활성화됩니다.

디스플레이에서 많은 정보를 읽을 수 있습니다.

- 역의 이름과 로고

- 현재 재생 중인 노래

- 볼륨 값

- 역 번호

- 및 현재 IP 주소

데이즈프레의 위쪽 절반을 만지는 경우:

-음소거

- 볼륨 +

-음량-

- 볼륨 막대

- 역 + 및

-정거장-

디스플레이의 상단 절반을 다시 터치하는 경우:

- 오디오 플레이어 (mp3)

-시계

-라디오

- 및 취침 타이머

 

오디오 MP3 플레이어

개별 노래 또는 재생 목록을 재생할 수 있습니다.

- 우리는 오디오 파일 이름이 있습니다

- 첫 번째 오디오 파일

- 다음 오디오 파일

- 선택한 파일 재생

시계

-여기에 큰 숫자 시계가 있습니다. 정확한 시간은 인터넷을 통해 자동으로 설정됩니다.

-이 버튼으로 시계의 상단 절반을 터치하면 요일마다 알람을 설정할 수 있습니다.

- 또한 취침 타이머가 있습니다.

또한 모든 기능의 화면 레이아웃을 볼 수 있습니다.

5단계: 웹 인터페이스

이 장치는 일반적으로 이미지가 마이크로 컨트롤러를 사용하여 그려지는 대신 SD 카드에서 직접 다운로드되기 때문에 놀랍도록 빠르게 작동하는데, 이는 저자의 또 다른 천재적인 아이디어입니다. 따라서 한 줄의 코드를 변경하지 않고도 배경, 숫자 스타일을 매우 빠르고 쉽게 변경하고 로고 및 기타 문자를 삽입 할 수 있습니다. 또한 "방송국.csv"파일에 새 인터넷 방송국을 입력하는 방법과 백업 및 복원하는 방법도 매우 간단합니다. 그리고 이것이 충분하지 않은 것처럼 장치는 검색 엔진으로서의 "커뮤니티 라디오 브라우저"뿐만 아니라 더 많은 옵션이있는 아름다운 웹 인터페이스를 통해 제어 할 수 있습니다. 화면에는 웹 브라우저에 입력해야하는 장치의 로컬 IP 주소가 표시됩니다.

마지막으로 전체 장치는 두께가 3mm 및 5mm 인 PVC 재질로 만들어진 적합한 상자에 내장되고 컬러 자체 접착 벽지로 코팅됩니다.

6단계: 회로도 및 코드

ESP32-MiniWebRadio-master.zip
15.34MB

 

 

728x90