반응형

[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 파일(안녕하세요. 파일)을 실행한다. 




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

반응형

+ Recent posts