Talking Clock With Arduino

12,751

88

25

Introduction: Talking Clock With Arduino

Hello all,

For a time I tried to build a Talking Clock (see the video), but withoutt good results due to the model of voice module I was using for that.

After many searches related to right hardware and also learn about how to use the appropriate libraries, I achieved my goals.

I will present you my version of Talking Clock using Arduino with the module DFPlayer_Mini to play MP3/WAV files.

There are many reasons to go further with this project !

With more improvements and adding some features, it can turn a clock for people with some visual deficiency, for example!

In this project all the "voices" were made digitally in Portuguese because is my mother language and I do not see many projects focused on that in my country (Brazil).

But of course you can follow the project and learn how everything works and then you can prepare by yourself all the voices in your native language!

This is really cool and part of fun !!

Let's see that!

Step 1: Build List

These are the components you need:

  1. Arduino (UNO-R3, Nano)
  2. LED Display Catalex TM1637 (4 digits x 7 Segments) or equivalent
  3. DFPlayer_Mini
  4. MicroSD memory card (formated in FAT32)
  5. Resistor 1K Ohm (2x)
  6. Breadboard
  7. Momentary Switch (3x)
  8. Loudspeaker of 2W or 3W
  9. Wire jumpers (male-male & male-female)
  10. DC Power supply (9 Volts)

Notes:

  1. You can use any MicroSD memory card up to 32GB, but all the MP3 files I have used for the voices are less than 2 MB (two Megabytes) in total!! So, do not spend your money a using memory card with a huge capacity!
  2. I decided to not use a RTC (Real Time Clock) because I have included a very easy feature to adjust the hours and minutes and the Arduino is precise enough to count the time.

Step 2: How to Prepare the MP3 Files for the Voices

For your digital clock speak the hours and minutes, you must prepare some voice files in MP3 format and record them into MicroSD memory card according with the following steps:

  • Amount of files you need

I created 3 groups of voice files:

  1. Hours group (24 files from 0 to 23)
  2. Minutes group (60 files from 0 to 59)
  3. General voice messages (03 setup messages and 01 for the bell ring & cukoo sound)

The total were 88 files.

Note: I decided to use this strategy to simplify the logic of the program, but of course you have more work to record the files. That is a trade-off you must to evaluate before translate for your native language.

  • Naming the MP3 files

All MP3 files must be recorded with file names within format "xxxx.mp3".

The files must be done with four digits, starting from "0000.mp3" to "0087.mp3" or another number considering the total amount of files in your language.

  • How to create the digitally voices

I found out many sites on Internet to convert text to speache files.

The bad news are most of them must be paid to generate the files.

One interesting and very good example is the site Voice RSS.

Try to use the live demo in your preferred language. In Portuguese in just write the time as "12:17" and the softaware will speak the time for you. In English, just write "12:17pm", for example.

The problem is how to save the files.

You can find a reference for that on the site How-To-Geek.

My personal solution was to install a software on my computer to do this translation "text-to-speache": Verbose Text-To-Speach Software.

You can install it and start to convert your texts using a free period for evaluation and then you decided if you want buy it or not (around $20 USD). Personally I bought it after evaluation time.

Note: For special sounds or effects, a great site is the Sound Bible where you can save the files direct on MP3 standard. I used it for the Cukoo Clock sound.

Step 3: Assembly - Schematics - Arduino Program

The assembly is very easy!

Just follow the schematics and take care with the wire connections.

For the program you must to install an additional library in your Arduino for the DFPlayer that you can download it on Github.

For setup of time there are 03 momentary switches:

  • # 1: For the setup of the 03 modes of the clock.
  • # 2: To setup the minutes.
  • # 3: To setup the hours.

The 03 modes are:

  1. Silence Mode: To adjust the time of the clock (hours & minutes).
  2. Minute Mode: To speach every minute.
  3. Hour Mode: To speach only at whole hours and put the cuckoo sound on action (from 8:00 to 18:00). The remaining minutes of the hour keep in silence.
Circuits Contest 2016

Participated in the
Circuits Contest 2016

Amps and Speakers Contest 2016

Participated in the
Amps and Speakers Contest 2016

Be the First to Share

    Recommendations

    • Pocket-Sized Speed Challenge

      Pocket-Sized Speed Challenge
    • Audio Challenge 2020

      Audio Challenge 2020
    • Maps Challenge

      Maps Challenge

    25 Discussions

    0
    harshithap4
    harshithap4

    Question 1 year ago on Introduction

    Sir actually I have an idea to implement a talking wrist watch for blind people .for a single touch it should tell the actual time...so can I implement this idea with Aurdino? Will u please help me in that

    0
    mrleewhitehead
    mrleewhitehead

    Question 2 years ago on Step 3

    Hi, looks a great project for me to tryout but unable to find your link to Arduino code !!
    Please can you advise ?

    Cheers,

    Lee

    0
    lagsilva
    lagsilva

    Answer 2 years ago

    There’s an updated version in my project Talking Clock 2. Pls, take a look on it. Cheers !

    0
    JAYB173
    JAYB173

    2 years ago

    Hi I have a few questions. Would I be able to use audio like a 30 second mp3 audio file to play for every hour for example at 12am a 30 second song plays 1am another song plays etc.? or does it have to be simple short sounds. Also how much different will the coding for it be?

    0
    dancopy
    dancopy

    2 years ago

    Saudações Engº lagsilva!

    Seria possível usar um Display TFT 2.2" (ili9341) no lugar do TM1637?

    O que mudaria/acrescentaria no código? Vc poderia me dar uma ajuda? Obrigado

    0
    lagsilva
    lagsilva

    Reply 2 years ago

    Olá, Daniel,

    Nunca utilizei este display em meus projetos, mas qualquer outro display pode ser utilizado com as devidas adaptações no código.

    O que posso lhe adiantar é que será necessário ter a Library para ele e depois revisar o meu código retirando todas as referências relacionadas ao display TM1637 e incluir os comandos do novo display.

    Tente achar a documentação de seu display TFT e de sua Library para entender como são seus comandos.

    Saudações,

    LAGSILVA

    0
    JokerzinhoTM
    JokerzinhoTM

    3 years ago

    Bom dia amigo lagsilva! Montei o circuito e funcionou perfeitamente... muito legal!

    No
    entanto 1) eu gostaria de usar um RTC ou GPS no circuito para quando,
    por exemplo, faltar a luz, não precisar redefinir a Hora; 2) Gostaria tb
    de fazer piscar os dois pontos do display mas não tenho conhecimentos
    suficiente para tais coisas; Obrigado

    0
    lagsilva
    lagsilva

    Reply 3 years ago

    Que ótimo! Coloque uma foto aqui de sua montagem!

    É possível sim adicionar um RTC. GPS é bem caro e não o indicaria a este projeto por fugir de seu escopo original.

    Tenho outros projetos publicados por aqui que o utiliza. De uma pesquisada e tente adapta-lo a sua aplicação.

    Fazer piscar os dois pontos também é possível, mas tudo isto leva a outra versão do projeto e que no momento não tenho disponibilidade de realizá-lo.

    Assim que for possível, faço uma atualização e lhe aviso.

    Att.,

    LAGSILVA

    0
    jarmo.hakala.9
    jarmo.hakala.9

    3 years ago

    Compiling get message: " 'hour' was not declared in this scope", what is wrong ?

    0
    JokerzinhoTM
    JokerzinhoTM

    Reply 3 years ago

    Hello Jarmo! This error is relative to the "Time" library. Search on google and go testing!

    0
    lagsilva
    lagsilva

    Reply 3 years ago

    Hello Jarmo,

    I did a test recompiling the same file I posted in this Instructables and I found no errors!

    If you edited my original file, please take a look at the line reported with error by your compiler and try to fix it.

    0
    Seasickgooner
    Seasickgooner

    3 years ago

    what file folder is the correct one, could you please screenshot what file folder you put it in

    0
    Seasickgooner
    Seasickgooner

    3 years ago

    C:\Users\15017\OneDrive\Documents\Arduino\Talking_Clock_V2_0\Talking_Clock_V2_0.ino:9:83: fatal error: DFPlayer_Mini_Mp3.h: No such file or directory

    #include <DFPlayer_Mini_Mp3.h> //Library of DFPlayer (module to play MP3 files)

    ^

    compilation terminated.

    exit status 1

    Error compiling for board Arduino/Genuino Uno.

    Still not compiling please tell me what i have done wrong

    0
    lagsilva
    lagsilva

    Reply 3 years ago

    Hello Seasickgooner,

    Probably the compiler is not finding the DFPlayer code in the libraries of your Arduino IDE.

    Had you installed the DFPlayer_Mini_MP3 in the correct Arduino libraries folder in your computer ?

    0
    Seasickgooner
    Seasickgooner

    3 years ago

    ERROR: when uploading code. Using library SoftwareSerial at version 1.0 in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SoftwareSerial

    exit status 1

    Error compiling for board Arduino Nano.

    0
    lagsilva
    lagsilva

    Reply 3 years ago

    Is the Arduino Nano original or similar ? I already got problems with Nano produced at China. To use them you need to take care with the installation of drivers communication for Windows.

    0
    Seasickgooner
    Seasickgooner

    Reply 3 years ago

    please link drivers and how to do it

    0
    lagsilva
    lagsilva

    3 years ago

    Hello Seasickgooner,

    Probably is missing the library.

    You need to download the library for DFPlayer on following link:

    https://github.com/DFRobot/DFPlayer-Mini-mp3

    After this, unzip the file DFPlayer-Mini-mp3.master.zip on a temporary folder.

    It will be created a directory with the same name of zip file.

    Inside this directory, there is another one: DFPlayer_Mini_Mp3.

    This directory must be copied to Arduinos libraries folder in your computer.

    Try again and keep me informed.

    0
    Nishchinta UR
    Nishchinta UR

    3 years ago

    momentary switches are not working in sync .and speaker inaudible. what do i do?