Talking Clock With Arduino

7,632

83

28

About: I'm a Mechanical Engineer and an enthusiastic Maker. I like to create and code my projects using the Arduino.

Intro: 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.

Share

    Recommendations

    • Audio Contest 2018

      Audio Contest 2018
    • Fix It! Contest

      Fix It! Contest
    • Furniture Contest 2018

      Furniture Contest 2018

    28 Discussions

    0
    None
    harshithap4

    Question 7 weeks 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
    None
    mrleewhitehead

    Question 4 months 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

    1 more answer
    0
    None
    lagsilvamrleewhitehead

    Answer 4 months ago

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

    0
    None
    JAYB173

    11 months 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
    None
    dancopy

    1 year 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

    2 replies
    0
    None
    lagsilvadancopy

    Reply 1 year 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
    None
    lagsilva

    Reply 1 year ago

    Obrigado, Dancopy!

    Coloque uma foto aqui de sua montagem. É legal para estimular outras pessoas a fazê-lo também!

    O Mode poderia ser indicado pela serial, mas acho mais bacana que fosse por um LED RGB. Assim, cada cor indicaria um dos modos.

    Tente adaptar deste modo.

    Agora uma recomendação: use alimentação de uma fonte externa para este projeto. Nem sempre a USB dá conta da corrente necessária para manter tudo funcionando.

    0
    None
    JokerzinhoTM

    1 year 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

    1 reply
    0
    None
    lagsilvaJokerzinhoTM

    Reply 1 year 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
    None
    jarmo.hakala.9

    1 year ago

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

    2 replies
    0
    None
    JokerzinhoTMjarmo.hakala.9

    Reply 1 year ago

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

    0
    None
    lagsilvajarmo.hakala.9

    Reply 1 year 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
    None
    Seasickgooner

    1 year ago

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

    0
    None
    Seasickgooner

    1 year 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

    3 replies
    0
    None
    lagsilvaSeasickgooner

    Reply 1 year 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
    None
    lagsilva

    Reply 1 year ago

    Daniel,

    O problema do Attiny85 é que tem poucas portas disponíveis, 5 ou 6, dependendo de como for configurado.

    Para este relógio que fiz, o projeto demanda a utilização de 7 portas do Arduino.

    Com o Attiny teria que ser feito um novo projeto, mudando o escopo original do mesmo.

    Abs,

    Luís

    0
    None
    lagsilva

    Reply 1 year ago

    Olá, Daniel !

    Obrigado pelo comentário!

    Creio que possa ligar sim, mas não fiz este teste.

    De fato, eu cheguei a testar um módulo amplificador com um alto-falante maior e o resultado ficou bom, mas achei que aí o conjunto iria ficar muito grande e pesado.

    Me conte sobre os seus resultados.

    Att.,

    Luís

    0
    None
    Seasickgooner

    1 year 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.

    2 replies
    0
    None
    lagsilvaSeasickgooner

    Reply 1 year 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.