아두이노2016. 7. 13. 20:08

[DF Player Mini 모듈을 이용한 MP3 제어 #1] 글에서 아두이노로 어떻게 DF Player Mini 모듈을 제어하는지 기본적인 사항을 알아보았다. 이번에는 초음파 센서를 추가해서 물체가 감지될 경우 지정한 MP3 파일이 플레이 되도록 해 보겠다. 목표는 집의 현관문에 설치해서 집에 사람이 들어올 경우 좀 유치하지만 "안녕하세요. 우리집에 오신 것을 환영합니다" 라는 멘트를 녹음한 MP3 파일을 재생하는 것이다. 본 글을 따라해보기 전에 다음의 링크를 참고하면 더욱 도움이 될 것이다.



먼저 나의 목소리 보다는 좀 더 나은 목소리를 녹음하기 위해 괜찮은 TTS (Text To Speech) 프로그램을 찾아 보다가 괜찮은 사이트를 발견했다. http://text-to-speech.imtranslator.net/speech.asp?dir=ko 라는 사이트인데 한글을 입력하면 그대로 읽어주는 사이트 이다. 


사이트에 들어가서 읽을 텍스트를 입력하고 Say it 버튼을 클릭하면 그대로 읽어준다. 이것을 oCam 프로그램을 이용하여 mp3 파일로 녹음을 하였다.


녹음한 mp3 파일은 '0099.mp3' 라는 파일명으로 마이크로SD 카드의 'mp3' 폴더에 복사해 주었다.


■ 연결


df_player_mini_sensor.fzz


위와 같이 초음파 센서의 Trig 는 D9에 Echo 는 D8 에 추가 연결해 주었다. 기타 연결에 대한 궁금한  사항은 위의 사전 참고 글 중에서 [DF Player Mini 모듈을 이용한 MP3 제어 #1] 을 참고하면 된다.


 


■ 소스


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <SoftwareSerial.h>
#include <DFPlayer_Mini_Mp3.h>
//초음파 센서 핀설정
int trigPin = 9;
int echoPin = 8;
 
void setup () {
    Serial.begin (9600);
    mp3_set_serial (Serial);     // DFPlayer-mini mp3 module 시리얼 세팅
    delay(1);                     // 볼륨을 Setup 하기 위한 delay
    mp3_set_volume (30);          // 볼륨 0~30
 
    //초음파 센서 핀설정
    pinMode(trigPin, OUTPUT);
    pinMode(echoPin, INPUT);
}
void loop () {
  float duration, distance;
  digitalWrite(trigPin, HIGH);
  delay(10);
  digitalWrite(trigPin, LOW);
 
  // 장애물과의 거리계산
  duration = pulseIn(echoPin, HIGH);
  distance = ((float)(340 * duration) / 10000/ 2;
  delay(100);
  if(distance < 50//장애물이 50cm 이내일때
  {
    mp3_play(99); //안녕하세요... mp3 (0099.mp3) 파일 플레이
    delay(7000);
  }
}
cs


위의 소스는 장애물(사람)이 50cm 이내에 감지될 경우 0099.mp3 파일(안녕하세요. 파일)을 실행한다. 




실행한 결과 영상이다. 손으로 실험해 보았는데 아주 잘 작동한다. 이 모듈을 조금 더 응용을 한다면 시간을 말로 알려주는 시계, 가스누출이나 화재 등 각종 위험요소 들을 센서로 감지하고 경고하는 장치 등을 만드는 것도 가능할 것 같다.

반응형
Posted by 대네브 (deneb)

댓글을 달아 주세요

  1. 한한

    안녕하세요 ! 혹시 조도센서의 밝기 조절을 하여 df player mini 작동방법도 알구 있을까요 ? 예를 들어 조도센서 부분이 밝아지면 음성이 나오는 작품을 구현해 보고 싶은데 조언좀 간절히 부탁 드립니다

    2017.09.08 20:14 [ ADDR : EDIT/ DEL : REPLY ]
    • 가능성만 알려드릴께요. 당연히 가능합니다. 그것도 저의 글 내용과 아주 유사하게 구현 가능 합니다

      2017.09.09 08:18 신고 [ ADDR : EDIT/ DEL ]
  2. 아 감사합니다..! ㅠㅠ 글내용을 참고하여 한번 다시 해보겠습니다 !

    2017.09.09 12:40 [ ADDR : EDIT/ DEL : REPLY ]
  3. 기쁨이

    안녕하세요! 자료 감사합니다 직접 만들어 보고 있는 중인데 혹시 mp3 모듈에 넣은 마이크로 sd카드가 2기가만 가능한가요? 8기가 마이크로 에스디 카드를 넣어도 안되고 몇군데에서 정품 2기가 에스디 카드를 샀는데도 소리가 안나네요 혹시 에스디 카드는 어디서 구매하셨는지 궁금합니다 감사합니다

    2017.09.21 22:15 [ ADDR : EDIT/ DEL : REPLY ]
    • SD 카드는 최대 32GB 까지 지원하며
      FAT16, FAT32 파일 시스템을 지원 합니다.

      라고 제가

      http://deneb21.tistory.com/396

      에 써 놨었네요. 혹시 안되면 포맷방식을 FAT16 or 32로 포맷하고 사용해 보세요
      NTFS 안됩니다
      그래도 안되면 구매처에 문의를...

      2017.09.23 00:18 신고 [ ADDR : EDIT/ DEL ]
  4. 기쁨이

    답글 달아주셔서 감사합니다!

    2017.09.23 07:01 [ ADDR : EDIT/ DEL : REPLY ]
  5. 뿜뿜

    안녕하세요! 수위센서를 이용해서 물이 없을시에 mp3 모듈을 이용하여 소리가 나게끔 작품을 구현해 보고 싶은데 혹시 조언해 주실 수 있을까요?

    2018.06.11 16:55 [ ADDR : EDIT/ DEL : REPLY ]
    • 이 글과 http://deneb21.tistory.com/223 을 참고하시면 충분히 만들 수 있습니다

      2018.06.11 18:04 신고 [ ADDR : EDIT/ DEL ]
  6. 권기태

    제가 지식이 없어서 혹시 이제품처럼 만들어주실수 있으신가요? 저는 피규어 진열장에 이제품처럼 앞에놓고 앞에있을때 원하는 소리가나게 하고싶습니다

    2018.07.10 15:43 [ ADDR : EDIT/ DEL : REPLY ]
  7. 본나바로

    안녕하세요. 현재 아두이노 RFID 리더기에 태그를 인식했을때 , MP3 음성을 출력하는 프로젝트를 진행하고 있는데 , RFID 코드 안에 MP3 음성을 출력할 수 있는 방법에 대해 조언해주실 수 있으신가요??

    2018.11.26 18:13 [ ADDR : EDIT/ DEL : REPLY ]
    • 이 글이 본나바로 님이 찾던 그 글 같은데요... RFID 의 경우는 저의 블로그 검색에서 RFID 검색해 보시길...

      2018.12.01 17:38 신고 [ ADDR : EDIT/ DEL ]
  8. 디그닥

    안녕하세요 좋은 게시글 감사합니다.
    덕분에 해당 코드를 이용하여 작품을 만들고 있는데, 혹시 mp3가 재생되는 도중 거리 감지 센서를 막았을 때 mp3 재생이 멈추는 방법이 있는지 궁금합니다.

    2019.12.06 10:10 [ ADDR : EDIT/ DEL : REPLY ]
    • 당연히 가능합니다.
      df player 모듈은 다양한 시리얼 커맨드를 제공합니다
      구글에서 'dfplayer mini serial commands' 라고 검색해 보세요.

      2019.12.06 10:30 신고 [ ADDR : EDIT/ DEL ]
  9. 서서

    안녕하세요! 게시물이 정말 많은 도움이 되고 있습니다:) 혹시 소리감지센서를 이용해서 일정수준의 소리가 감지되면 소리가 날 수 있도록 하려면, 작성하신 초음파센서 루프문 자리에 소리감지센서 문을 넣으면 될까요?

    2019.12.15 01:14 [ ADDR : EDIT/ DEL : REPLY ]
  10. 비밀댓글입니다

    2020.05.07 00:25 [ ADDR : EDIT/ DEL : REPLY ]
    • 1. 배터리를 이용하면 usb 포트는 필요 없습니다
      2. 자동차 엔진 rpm 값을 감지할 수 있다면 가능하겠죠. 그건 자동차쪽의 문제이므로 제가 답변을 못하겠네요

      2020.05.07 05:57 신고 [ ADDR : EDIT/ DEL ]
  11. 공공

    그러면 그 받은 rpm값을 아두이노에 어떻게 입력하나요?

    2020.05.07 09:25 [ ADDR : EDIT/ DEL : REPLY ]
    • rpm 값을 받아서 활용하는것은 코딩의 문제 입니다. 저는 코딩문제는 알려드리지 않습니다.

      2020.05.07 10:55 신고 [ ADDR : EDIT/ DEL ]
  12. 비밀댓글입니다

    2020.06.17 12:29 [ ADDR : EDIT/ DEL : REPLY ]
    • 제 글의 소스를 보시면 if 안에 들어있어도 잘 되는데요 다시 점검해 보시길 바랍니다

      2020.06.17 12:39 신고 [ ADDR : EDIT/ DEL ]
  13. ㅇㅇ

    거리 가까워졌을때 바로 노래가 안나오고 한 7초정도 지연되는데 어떻게 해결해야 하나요 ?/

    2020.10.07 18:10 [ ADDR : EDIT/ DEL : REPLY ]
  14. 압전센서

    혹시 초음파 거리 센서가 아니더라도 압전센서(아두이노) 같은걸로 감지해서 소리를 재생하게 할수 있을까요?
    1. 연동 가능여부 및 방법
    2. 간단하게 할수 있을지

    2020.10.19 13:39 [ ADDR : EDIT/ DEL : REPLY ]
  15. 비밀댓글입니다

    2020.11.13 22:07 [ ADDR : EDIT/ DEL : REPLY ]
  16. 김준형

    rx tx값으 로 변환하여 센서인식시 재생 가능할까요

    2021.02.04 01:48 [ ADDR : EDIT/ DEL : REPLY ]