This project is for my EDES 301 course taught by Erik Welsh.
The goal of my project was to create a practical and customizable desk clock that could display the time, date, temperature, and weather conditions in a clear and accessible way. I was motivated by the idea of having a simple, dedicated device on my desk that could provide essential daily information without needing to check my phone or computer.
The clock I built shows the current time and date by default, updating every 15 seconds. I added a button that allows the user to toggle between the four major U.S. time zones—Eastern, Central, Mountain, and Pacific. An LED indicator lights up to show which time zone is currently being displayed.
In addition to the time and date, I included a feature that lets the user check the temperature and current weather conditions in a preset location. This is triggered by a separate button and shows the data on the display for five seconds before returning to the clock view.
This project gave me the opportunity to work with microcontrollers, button input handling, and displaying dynamic information. It also involved learning how to fetch and display data from an external time and weather API.
The below video shows the functions of the ClockBuddy. I first cycle through the four US Time Zones using the yellow button, simultaneously cycling through the four green LED indicators. Next, I use the green button to display the current temperature and weather conditions in the set location (Houston) for 5 seconds. I also press the yellow button to return to the time and date display before the 5 seconds are over.
Hardware Build and Operation Instructions:
Connect the LCD Display, time/date button, temperature/weather button, and LEDs to the PocketBeagle GPIO pins.
LCD Display pins:
LCD_RS = "P2_35"
LCD_EN = "P2_33"
LCD_D4 = "P2_24"
LCD_D5 = "P2_22"
LCD_D6 = "P2_20"
LCD_D7 = "P2_18"
Time/Date Button GPIO pin: "P2_3"
Temperature/Weather Button GPIO pin: "P2_19"
LED GPIO pins: "P2_2", "P2_4", "P2_6", "P2_8"
Future Work:
To develop on this project, I would like to get the Real Time Clock working so that every time the time updates, it doesn't need to rely on Wi-Fi speed to make the API calls.
Comments
Please log in or sign up to comment.