🏆 MyMirror: a Google-integrated Smart Mirror

Note: More information about myMirror can be found on the project’s devpost. Check there for other peoples’ contributions!

Why myMirror?

When I wake up in the morning, there’s a lot I know I probably should do. For example, I should probably prepare for the day ahead by checking the weather and my daily calendar. But often times, I just don’t. For situations like this, myMirror is here to help.

myMirror solves the above dilemma by integrating this crucial information into your everyday bathroom mirror. myMirror is a smart mirror with an embedded display screen, displaying the current time and date, weather for your area, and personal Google Calendar reminders. It even features a motion sensor, turning off the display to save power when a user isn’t detected.

How does it work?

image

The software side of myMirror

On the software side, myMirror is essentially a specialized website. It’s written in pure Javascript, HTML, and CSS. It utilizes the Open Weather Maps and Google Calendar APIs to display this information to the user. The mirror itself is a pane of one-way glass with a 3.5" display is mounted behind it. A modified Raspberry Pi drives the display and handles the power management alongside the motion sensor.

What did you do?

myMirror was my idea, so I ended up leading the charge to get this project finished in 24 hours. As the team lead, I had to check in with others, keep morale up, and delegate tasks where I wasn’t the best person for the job. But I did quite a bit of programming myself! I handled the hardware side of myMirror. This included:

  • Modifying the pi to drive a display with non-standard resolution and aspect ratios
  • Programming a daemon that interfaces with xScreenSaver to unblank the screen when motion is detected
  • Automating the execution of the program in case of power loss or a hard reboot

What’s next for myMirror?

There are a few upgrades we’re considering implementing.

  • First off, we want a serious codebase refresh. Anything written in 24 hours could stand to be written again in a cleaner, more concise way.

  • Next, a bigger display. 3.5"x2" is just too small for any sizeable mirror. The next step will most likely be the Raspberry Pi Foundation’s own official 7" display.

  • More Information! With great display space comes great responsibility: to fill that space with relevant data! Some ideas:

    • Texas A&M Bus Schedule - Either using code swiped from Buswarn or the Texas A&M Transport website. myMirror could display what time the next bus arrives at your stop, or it the transport map itself!
    • Spotify - This could be as simple as a progress bar with information about the current song you’re listening to.
image

myMirror in action! (feat: me)

Who contributed?

Notably: none of these guys are computer science majors! We learned most of this Web Development stuff on the fly!

Where / When?

TamuHack 2022, Jan 29-30 2022. TamuHack is a Hackathon, a contest where teams of 4 engineers have 24 hours to design, implement, and present a product to industry judges.

Takeaways

myMirror won first place in the novice division at TamuHack 2022. But I walked away from this competition with more than just newfound pride and acute sleep deprivation. As the team lead, I didn’t really have time to hunker down and work on my own thing, which was a new experience for me. But through this process I learned to sit back and trust people to do their work well. When a small team of skilled people all play to their strengths, crazy ideas like myMirror can actually come to life!

Thanks for tuning in!