LED Alarm is RESTful web interface designed to work with a physical alarm. 

Created by Constantine Koumoussis, Yining Shi.

People can use the web interface to turn on/off the physical LED alarm. Both LED Alarm and web interface can show the current time. For the LED Alarm, 12 blue LEDs represent the 12 hours, and the other four LEDs(white, yellow, green and red LED) stand for 53-8min, 8-23min, 23-38min, 38-53min. People can also use the web interface to set alarm. When the alarm is on, both  LED Alarm and web interface will blink. In the end, people can stop the alarm by hitting the stop button on the screen. The video above shows the whole interaction process.

Here is a one-line system diagram: 

Web interface  REST API  HTTP Server  Serial communication ↔ Arduino.

HTTP Server is run on my computer, and the web interface uses REST API to talk to my sever. Also my server uses serial communication to send data to Arduino to control LED at the same time. The next step for this project will be replacing Arduino UNO with Arduino YUN, so the communication between server and Arduino can be wireless. I use node.js to program my server. All the Javascript, HTML, CSS and Arduino code can be found here: https://github.com/yining1023/LED-Alarm/tree/master.

Here's interaction process:

 People can view time through both the web interface and the LED alarm. Then people can hit the SET button on the screen.

People can view time through both the web interface and the LED alarm. Then people can hit the SET button on the screen.

 Then a text edit box will appear, the button will change to OK button.

Then a text edit box will appear, the button will change to OK button.

 People input the alarm time as 22:24, and hit OK button.

People input the alarm time as 22:24, and hit OK button.

 After people hit OK button, the interface will go back to the showing-time state.  When the alarm is on, the interface and LEDs will blink to notify users, as in the video below. Then people can hit STOP button to stop alarm.

After people hit OK button, the interface will go back to the showing-time state. When the alarm is on, the interface and LEDs will blink to notify users, as in the video below. Then people can hit STOP button to stop alarm.

Here's the screenshot of the interface I designed.

 People can hit SET to set alarm.

People can hit SET to set alarm.

 After inputting alarm time(12:43), people can hit OK to confirm.

After inputting alarm time(12:43), people can hit OK to confirm.

 Then the interface will still show the current time.

Then the interface will still show the current time.

 When the alarm is on, the purple circle and the time will blink, and people can hit STOP button to stop the alarm.

When the alarm is on, the purple circle and the time will blink, and people can hit STOP button to stop the alarm.

Making Progress