IMG_1068.JPG

The Smart Mirror Project

My first DIY project

 

The Goal.

 

 

My friend, Logan Ballard, and I wanted to create something that is both personal and functional. We also wanted it to stay hidden except when used. We fell upon this smart mirror website. This became our project. We are using:

 

Raspberry Pie 3 (or a pie with Wi-Fi capabilities).

A old 23" Asus monitor (it had an annoying little scratch).

8 feet of 11/16 x 2 1/2-inch wood.

8 feet of 1/2 x 1 inch for the frame.

Short HDMI cable.

24*24 One-way acrylic mirror.

 

After Completing the project my mirror is my Go-To. I can quickly see upcoming events, my calendar, and information I would have to jump between different apps on my phone to find. The mirror looks good and is easy to maintain. Let me explain what I did and what I learned.

The Software.

 

 

The software we are using is called MagicMirror2. It was super intuitive and easy to install and the developer support for it is amazing! I constantly see new "modules" for the mirror, so it is easy to customize.  The UI is clean and easy to modify. Because of the modularity of the software, I can easily change the mirror to my liking whenever through remotely connecting to the raspberry pi. Here are the modules I am currently running on my mirror:

Module Name

Description

Location

Clock

Tells Time

Top Left

Calendar

Pulls calendars from school, personal, and work and displays them.

Top Left

Compliments

Gives custom words of affirmation.

Lower Third

Current Weather

Gives the current weather for current city

Top Right

Weather forecast

Gives the forecast for the next 10 days

Top Right

News feed

Gives News from RSS feeds, currently using: Fox 13 (local), New York Times, Wired, and TechnoBuffalo

Upper Third

MMM-Stock

Gives stock prices for companies currently showing MSFT, Domo, PS, SNE

Top Bar

MMM-Events

Lists Events that are currently happening in my city.

Bottom Left

MMM-MovieListings

Lists current movies in theaters right now.

Bottom right

MMM-NowPlayingOnSpotify

Shows the music I am currently playing on Spotify.

Bottom Center

These modules allow me to see what I need to be doing, or what I can be doing. This has made my mirror a go to if I am bored. I can quickly see movies, events, and the news. It is also useful as a clock and for checking the weather (Particularly if there is an outdoor event).

Smart mirror software booting

Smart mirror software booting

To get all the software working correctly was not difficult but time consuming. Reading documentation, debugging errors, and getting API keys for third party modules proved to be interesting and worth the time. As this was my first real personal project, learning where to look and how-to problem solve was the most difficult thing. Now that I have experience working in the shell and understanding how the system works, maintaining and updating the mirror is easy.

Clock, Calendar, Compliments, Weather, and News are all default modules. They came when I installed the Magic Mirror 2 software on my raspberry pi. This is where I started understanding how to manipulate modules. I started simple with modifying the words of affirmation and worked up from there. After that, I started exploring third party modules. I found the MMM-NowPlayingOnSpotify module most interesting. If I am exploring new music, I can look at my mirror as opposed to stopping what I am doing on my phone or computer. After exploring and getting an API key from Spotify It was easy to get working.

The Hardware.

 

 

As I am studying computer engineering, hardware was the most difficult part of my project. In fact, for about 2 years, I have been using just the monitor connected to the raspberry pi. I did not have the tools to really do a good job. When I first embarked on this project, I used the skills of some peers to build the frame in 2017. This is where I learned two key things: Do not make things harder than they need to be and your first attempt will never be perfect.

First text of the new frame (still using old acrylic)

First text of the new frame (still using old acrylic)

 Building the frame, I should have made straight cuts… I did not. Using my 0 years of experience in wood working, I thought it would look better to cut at 45-degree angles because it would look like each piece of wood went the full length of the frame. Turns out, it is a lot harder to cut diagonal then straight. The cuts made were not quite straight so the box that holds the monitor is not even, however we fixed this when doing the outside frame. This is where I decided, it looks good enough.

I then purchased the acrylic (still in 2017). I purchased cheap acrylic because I was/am a college student. This is where I learned another lesson: sometimes its worth it to pay for the better stuff. I ended up shattering the acrylic several times. This is where I put the project until this year.

After my interest was re-ignited, I did some research and found twowaymirrors.com a site where I can find acrylic that is thicker, precut, and will look better. The acrylic I was using was only 1mm thick and would bend, creating a fun house effect. This new piece is 6mm thick and is much stiffer. After ordering this new acrylic, I had to fix my frame because it had been in storage for a few years. I reglued the frame to make sure it was strong enough then repainted.

All Together Now!

 

 
Smart mirror.jpg

Because the monitor I am using has an indent in it, this is where I am putting the raspberry pi and cables. I glued the new acrylic into the frame, pressed the monitor in behind it and did some cable management. Using command strips I fastened the raspberry pi to the back of the monitor. I then used a French cleat to mount the mirror to the wall. The cleat helps keep the monitor in place and allows it to be easily wall mounted. Then I finally mounted it to the wall.

I am really proud with how it finally turned out. It was a long project, but I learned a great deal about planning, developing, and executing a project. Going forward I am looking at expanding the mirrors information. I am working towards a smart home, so developing or implementing modules with house temperature, room data, and voice assistance are something that will keep this project alive for the foreseeable future.