ECE434blynkAlarmClock
Embedded Linux Class by Mark A. Yoder
Team members: Venmap
Contents
Grading Template
I'm using the following template to grade. Each slot is 10 points. 0 = Missing, 5=OK, 10=Wow!
09 Executive Summary 09 Packaging 09 Installation Instructions 09 User Instructions 09 Highlights 09 Theory of Operation 09 Work Breakdown 09 Future Work/Conclusions 09 Hackster.io 09 Demo/Poster 00 Late Comments: Have a good day. Score: 90/100
(Inline Comment)
Executive Summary
This project is a 'smart' alarm clock that displays the time/weather and allows for a user to remotely set an alarm using a mobile app (blynk). Alarms can be set and replaced via the blynk app, and when the alarm goes off, a song will play until you turn it off.
Packaging
The hardware for this project is fairly small:
1x beaglebone black
1x display (TFT 2.4inch LCD Display)
1x phone w/ blynk
1x usb to audio interface
1x speaker
Basic wiring (taken from https://elinux.org/EBC_Exercise_12a_2.4_TFT_LCD_display_via_SPI)
LCD | BeagleBone |
---|---|
MISO | P9_21 |
LED | P9_16 |
SCK | P9_22 |
MOSI | P9_18 |
D/C | P9_19 |
RESET | P9_20 |
CS | P9_17 |
GND | P9_2 |
VCC | P9_4 |
Installation Instructions
Follow the instructions located here to set up the framebuffer for the LCD.
Run the setup.sh script located in the github repository
Install the blynk app on your phone
Create a new project in blynk and choose the "Generic Board" option for hardware. Choose connection type "Wifi". Add a time input block to the app, and assign it to V0 input pin. When you create a project, the authorization code for the blynk api is sent to your email. Replace the field in config.py with your key
go to https://openweathermap.org and sign up for an api key. When you receive the api key, replace the field in the config.py file with your key
link to github -- https://github.com/venemap/ece434homeworkVenema/tree/master/finalProjectVenema
User Instructions
Make sure internet is passed through to your beaglebone (Whether wifi or over usb) Run the main.py as sudo (required for framebuffer to work) When the display turns on, you can then input an alarm from the blynk app (note: blynk app only sends a new timer to the program if the timer in the app is changed and ok is pressed)
Highlights
Currently, my bone forgot how to talk to the video drivers, and I have not been able to resolve this issue. Once this gets resolved, a demo will be added.
Theory of Operation
Give a high level overview of the structure of your software. Are you using GStreamer? Show a diagram of the pipeline. Are you running multiple tasks? Show what they do and how they interact.
Work Breakdown
I worked alone on this
Future Work
1. Making full enclosure for the system
2. Spotify integration for alarm
3. Changing backgrounds based on weather conditions
Conclusions
I think there is a fair amount of promise to be had with this, but making a decent looking UI is not something that I am good at. The basic functionality is fairly good, but I would have liked to add in things like weather forecast (high and low of the day), but I could not find a way to do that without making the UI look bad. The audio integration still needs some work, as right now the audio playback is limited. It could link to youtube or spotify to make a more interesting alarm sequence.
Embedded Linux Class by Mark A. Yoder