Difference between revisions of "ECE434 Smart Mirror"

From eLinux.org
Jump to: navigation, search
(Installation Instructions)
Line 41: Line 41:
 
# Clone the repository using '''$git clone https://github.com/mprocter12/ECE434SmartMirror.git'''
 
# Clone the repository using '''$git clone https://github.com/mprocter12/ECE434SmartMirror.git'''
 
# Enter the repository and run the install file with '''$./install.sh'''
 
# Enter the repository and run the install file with '''$./install.sh'''
# '''[info on how to make program run on start]'''
 
 
# Create a Blynk project with a single button labelled "Toggle Mirror Display" that will toggle the V0 pin between 1 and 0, starting at 1
 
# Create a Blynk project with a single button labelled "Toggle Mirror Display" that will toggle the V0 pin between 1 and 0, starting at 1
 
# Retrieve the Blynk authorization key and copy it into the variable '''BLYNK_AUTH''' in the file '''smart_mirror_main.py'''
 
# Retrieve the Blynk authorization key and copy it into the variable '''BLYNK_AUTH''' in the file '''smart_mirror_main.py'''

Revision as of 19:04, 18 November 2019

thumb‎ Embedded Linux Class by Mark A. Yoder


Team Members: Mark Procter and Andy Barbour


Grading Template

I'm using the following template to grade. Each slot is 10 points. 0 = Missing, 5=OK, 10=Wow!

00 Executive Summary
00 Installation Instructions 
00 User Instructions
00 Highlights
00 Theory of Operation
00 Work Breakdown
00 Future Work
00 Conclusions
00 Demo
00 Late
Comments: I'm looking forward to seeing this.

Score:  10/100

(Inline Comment)

Executive Summary

This project consists of a reflective pane of acrylic with a monitor behind it, creating a mirror that can display useful widgets like the date, the weather, and a daily fortune, among other things. It is a sleek device useful for quickly gathering daily information while, for instance, getting dressed or brushing teeth.

Packaging

All hardware components of this smart mirror are enclosed in a wooden frame that hides and protects the monitor, BeagleBone, and electrical wiring.

Installation Instructions

  1. Install Debian [link and version number here]
  2. Clone the repository using $git clone https://github.com/mprocter12/ECE434SmartMirror.git
  3. Enter the repository and run the install file with $./install.sh
  4. Create a Blynk project with a single button labelled "Toggle Mirror Display" that will toggle the V0 pin between 1 and 0, starting at 1
  5. Retrieve the Blynk authorization key and copy it into the variable BLYNK_AUTH in the file smart_mirror_main.py

User Instructions

[info on using Blynk]

Highlights

Here is where you brag about what your project can do.

Include a YouTube demo the audio description.

Theory of Operation

The customization of the appearance of the displayed widgets was done through InitialState, a tool used for collecting and displaying data fed to it. The raw InitialState page created for this project can be seen here. On the startup of the BeagleBone system, the main Python script will run. It will first open the customized HTML for the InitialState page that formats it properly, then simulate an F11 key press to enter full-screen. The program will then continually listen for button presses in the Blynk program to toggle the output to the HDMI port. Periodically, the Python script will retrieve information from various APIs to obtain the current data to display, then feed it to the InitialState dashboard, causing it to update.

Work Breakdown

Mark Procter

  • Formatting of dashboard display
  • Integration of weather API
  • Functionality of automatically launching dashboard HTML file and forcing it to be full-screen

Andy Barbour

  • Formatting of HTML and CSS files
  • Integration of date API
  • Integration of timers which periodically update widget data

Both Team Members

  • Integration of fortune API
  • Integration of Blynk
  • Construction of mirror enclosure and hardware
  • Documentation of wiki and Hackster pages

Future Work

There are a number of features that could be added to this project to improve the overall quality and make it more interesting.

  • Integration of more interesting APIs, possibly connecting to personal calendars, home automation systems, or electronic assistants
  • More polished and professional enclosure and frame
  • Additional options to make mirror more easily customizable by user
  • Integration of speaker, camera, and / or microphone for better user feedback and input, for instance automatic sleeping and waking of system

Conclusions

Give some concluding thoughts about the project. Suggest some future additions that could make it even more interesting.




thumb‎ Embedded Linux Class by Mark A. Yoder