Approaches to creating an Arduino based alarm clock.

As I mentioned, I have a lot of features planned for my own clock. Rather than try to write it all at once, I broke it into separate steps. I got all of the individual pieces figured out, now I'm trying to put them all together.

I would suggest you take a similar approach. Break the project up into little baby steps. You should try the following steps, in roughly this order. If you get stuck on one part, you can work on another for a while while you try to get help on the step you are having trouble with.

  1. Figure out your display. You haven't mentioned one, but I'm sure you will want one of some form or another. Are you going to use an LCD character display? They are probably about the easiest to work with and cheap. Get the library for it and familiarize yourself with it. Write some code to display a static, non-changing time to it.
  2. Get the time.h library, or better yet, the time32-swfltek library. Familiarize yourself with it, and write code to display the current time on the LCD.
  3. Hook up the real-time-clock module and the library for it. Familiarize yourself with it, how to set it, and how to sync the time library to it.
    4a) Hook up your buzzer to one of the output pins. Add a specific alarm time to your code, stored in a pre-defined variable, and make the buzzer sound at that time.
    4b) Hook up your button. Write the code to make it stop the alarm.
  4. Create a protocol or format by which you can send data to the Arduino to change the alarm time variable. Figure out a command that can be sent to get the Arduino's attention*, a format the time should be sent in such as hh:mm:ss, and possibly a checksum at the end of the command. Test this using the serial monitor.
    *The attention command is a unique series of characters that indicates to the arduino "Hey, I'm talking to YOU! Start paying attention now and read this data to set the alarm". Normally, the Arduino should ignore most of the background crap it receives via bluetooth, until it gets that attention command. Likewise, you need a command to terminate the connection and tell the Arduino to start ignoring everything again, at least until it receives another attention command. It is a good practice for the terminator command to also include some sort of checksum or error-checking to ensure the data was received correctly.
  5. The bluetooth module is just another serial device, similar to the serial monitor. Hook it up and send the same commands via bluetooth that you did using the serial monitor while testing. For initial testing, you may want to use a bluetooth adapter on the computer, and use a terminal program (almost the same as the serial monitor) to send data out the com port to the computer's bluetooth adapter.
  6. As for sending the commands over bluetooth from the phone, I'm not sure what to tell ya there. It's certainly possible, and shouldn't be too hard, I'm just not familiar with how to do it. Ultimately, you will probably want to write your own app for the phone. But for testing purposes, you can probably use some sort of terminal app on the phone (similar to on the computer) Perhaps someone else can make some suggestions here?

At each step, look at the examples for the related libraries, and download similar programs written by other people and posted here to study them and see how they work.

How are your programming skills? Have you written other programs for say, Windows or your phone? Are you just new to Arduinos and microcontrollers, or new to programming too? Have you worked in another language such as BASIC or Java?