Digital Alarm Clock

By: Tim Kim and John Rollinson

Overview

In this project, we design and implement a digital alarm clock which is able to display the current time, date, and surrounding temperature. Alarms are set using an external interface known as Termite, in which a user is able to type and set his/her preferred alarm times. An input for a snooze button is another feature of our digital alarm clock, allowing the user to delay the current alarm for another 15 minutes.

Components

STM32L476RG

This component is the microcontroller of the alarm clock system. It is responsible for a multitude of things, such as configuring pins that are used to connect to peripherals of the system, sending signals and data to peripherals, and commanding these peripherals to do certain tasks. The microcontroller is also in charge of managing the Real Time Clock (RTC), which is the clock used for the current time and date.

LCD Screen

The LCD screen is used to display the current time, date, and surrounding temperature. It is connected to the microcontroller via parallel interface.

TC-74 Temperature Sensor

The temperature sensor is used to read surrounding temperature data, which is written to data registers in the microcontroller. It is connected to the microcontroller via I2C.

Active Buzzer

The active buzzer is used to imitate the buzzing of an alarm clock. It is connected to the microcontroller via GPIO output.

External Button

The external button is used as the snooze button, which allows the user to delay the current alarm for another 15 minutes. It is connected to the microcontroller via GPIO input.

Termite

Termite is the interface which allows the user to set alarm times. It is connected to the microcontroller via UART.

Block Diagram


Responsibility for Members

Tim: Software/Debugging

John: Hardware/Wiring

Video Demo: