Skip to content

cmcinroy/LockerHelper

Repository files navigation

LockerHelper

A variation on MagicMirror by Michael Teeuw and Smart Mirror by Max Braun.

LockerHelper

Objective

Build a “smart” student locker mirror. The mirror doubles as an information portal that displays an aggregate of useful data for an individual student.

Just like the precursor projects, the objective is accomplished by putting a computer screen behind a partially reflective ("two-way") mirror. A computer with internet access pulls information from various sources and renders an aggregate, single screen view. By displaying light text on a dark background, the information blends with the image reflected by the mirror. Thus, the computer augments the utility of the traditional mirror.

The information sources implemented in this project are meant to augment a mirror found in a typical student's locker.

This is an example of physical or ubiquitous computing.

Modules

  • Time/day
  • Weather
  • Quote of the Day
  • Student Timetable/Schedule
  • Daily School Announcements
  • Student Assignments
  • School Twitter Feed
  • News headlines

Features

  • Flexible layout and styling
  • Configurable data sources
    • Weather location can be based on geolocation or geocoding
    • Quotes and News can use any RSS feeds
    • Schedule pulls from a Google spreadsheet that can have timetables for multiple classes
    • Assignments pulls from a public Google calendar that can be maintained by teacher(s)
    • Twitter can pull from any user's timeline
  • All modules update on independent intervals (also configurable)
  • Application code can auto-update from github

Technologies

Hardware

  • Raspberry Pi Zero
  • legacy small (15") flat screen LCD monitor
  • reflective-tinted acrylic "mirror" (10"x13" x 1/8")

Software

  • Apache web server
  • PHP (with Composer for dependency management)
  • Javascript
  • HTML/CSS
  • JSON, RSS and XML parsing

Services

Specifications

The Project Team provided the following specification:

Spec sheet

How It Works

The Raspberry Pi computer boots into its operating system and automatically logs in to the graphical user interface, with the display orientation configured for portrait mode (to be consistent with a typical locker mirror). An autostart script opens a web browser in fullscreen mode. The web page displays information provided by the web server software, also running on the computer. The web server retrieves the raw data from various internet sources and provides it in a consistent format to the web page. The page automatically updates the data by making requests for the latest data from the server/internet on configurable time intervals.

Future

  • data caching
  • Word of the day
  • schedule lookup by student (instead of specific class)
  • Facial recognition (camera required)
    • Automatically wake up the display
    • mood-specific compliments
    • student-specific schedule
  • Voice commands (microphone required)
  • "Lockerize" the hardware

License

LockerHelper is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

LockerHelper is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.