Introduction: Voice-Controlled Clock With Arduino (no WiFi, No PC)

This Instructable explains how to build a voice-controlled alarm clock/timer by connecting a real-time shield and a MOVI Speech Dialog Shield to an Arduino. See the video above for the result! The voice control does not require an Internet connection and can be configured to other commands than the ones shown in the video above. MOVI also supports other languages, like Spanish and German. For more information on MOVI, check out their page.

This Instructable assumes basic familiarity with Arduino and electronic projects. Please check out the Arduino and the MOVI Instructable first, if you need to get familiar with these types of projects. Otherwise, let's go!

Step 1: Ingredients

To build the alarm clock you need:

  • An Arduino-compatible board, we used an Arduino Uno.
  • MOVI Speech Recognizer and Synthesizer shield for Arduino.
  • A Tiny Real Time Clock DS1307.
  • Loudspeakers that plug into a headphone jack (no 4ohm or 8ohm).
  • A power supply, e.g. 12V 500mA or 4 AA alkaline batteries (rechargeables: use 5).
  • Optional: An Arduino project box.
  • Optional: A proto shield to mount the realtime clock module

Step 2: Solder Wires to the RTC Module

To connect the RTC module to the Arduino board, we need to solder 4 wires as follows:

Tiny RTC PinWire ColorArduino
GNDBLACKGND
VCCRED5V
SDAGREENSDA
SCL YELLOWSCL

The wires can either be directly connected to the Arduino (see later step) or you can use a proto shield.

Step 3: Assembly

  1. Optional: Place the Arduino inside the project box.
  2. Optional: If you used a proto shield for the real time clock, mount it onto the Arduino.
  3. Then, mount the MOVI shield onto the Arduino.
  4. If you are using a MOVI for the first time, you want to check the instructions on how to get started with MOVI regarding jumper settings and other prerequisites.
  5. If you use a project box, drill a hole into the cover of the project box, close to the microphone or better on top of the microphone. This will increase the accuracy and responsiveness of the speech recognition dramatically. In our case, the project box had a pre-perforated hole close to the microphone, so we used that instead of utilizing a drill.

Step 4: Wiring

  1. Connect the speaker jack into MOVI headphone output.
  2. If you did not use a proto shield make the following connections:
    1. Connect the RTC BLACK (GND) wire to the Arduino header GND pin.
    2. Connect the RTC RED (VCC) wire to the Arduino header 5V pin.
    3. Connect the RTC YELLOW (SCL) wire to the Arduino header SCL pin.
    4. Connect the RTC GREEN (SDA) wire to the Arduino header SDA pin.
  3. Connect the power supply to the Arduino.
  4. Turn on your speakers (you should hear MOVI's boot messages)

Step 5: Programming

  1. Take your laptop and fire up your Arduino IDE
  2. Connect the laptop via USB to the Arduino board
  3. If you have not already, download the MOVI library at http://www.audeme.com/downloads.html and install it. This project used library version 1.10.
  4. Download the Real Time Clock Library at https://github.com/adafruit/RTClib and install it.
  5. Download the following program into the Arduino IDE, compile it, and upload it to the board:

Step 6: Ready to Go!

Close the casing and unplug the USB as your clock is independent of any laptop or Internet connection. The program presented here understands the following commands:

  • What time is it?
  • What is the time?
  • What is the date?
  • What is today?
  • Cancel timer
  • Is timer set?
  • How much time remaining?
  • Set Timer for 1 minute
  • Set Timer for 2 minutes
  • Set Timer for 3 minutes
  • Set Timer for 4 minutes
  • Set Timer for 5 minutes
  • Countdown

And, of course, there is nothing that prevents you from programming your own commands and have the clock do more functions.

In case you do encounter any trouble, we recommend checking out MOVI's forum.