Smart Mirror

I Made A Thing

I saw a post a month ago about this guy making a "magic mirror"; something you'd see in an Iron Man movie. I, just like pretty much everyone else who's seen or heard about this, thought this was incredibly cool and suddenly realized that I had needed this in my life all along. I had just bought the new Raspberry pi 2 B, so the next bit was just getting a monitor and a two-way mirror. 

Project in Pictures

Parts & Challenges

Here is what I used:

Total Cost = $85

Surprisingly enough, the hardest part was actually figuring out what I would need for the mirror part/ordering it. I ended up using TAP Plastics for mine. It's actually acrylic, not glass, but that makes it a lot cheaper (about half price) and more versatile than glass. Plus they cut it for you, so you don't have to worry about scratching or splintering it. 

The brilliant mind of Michael Teeuw created the initial idea and layout and has his code posted here on Github. I used some of this for the layout and the php to pull the weather data. If you like these kind of projects, I highly suggest checking out his site. 


The 1st thing I did was set up my Raspberry Pi. After installing the OS and updating, I set up a stripped down LAMP server to host the webpage that will serve as the background of the mirror. I also installed php5 so that I could pull RSS feeds, Open Weather data, and Google Calendar data. 

After the initial setup, I registered for an OpenWeatherMap API key and grabbed my Google Calendar link. I also modified an array and created two more to display 4 o 5  sayings that would randomly cycle through and change about every 20 seconds, depending on the time of day (This one tells me it's apparently beer-thirty). 

I wanted the smart mirror to have a more modern look, so I chose not to put together or use a frame. I took apart the LED monitor frame and used electrical tape to black out the metal frame. This way, it wouldn't show when I put the mirror on. 

It took a bit to figure out the best layout that both allowed me to plug in everything and allow me to hide most of the cables. When I build my next one, I'll be sure to get a monitor that has the inputs in the back; not on the bottom. 

Once the mirror finally arrived, I had to test it to see if it work. By this point, I had already set the Raspberry Pi to boot right into the web browser in full screen mode, load the local host server where my page was set, and rotate the display 90 degrees, so all I had to do was turn it on. 

Once I knew it worked, I used double-sided tape to connect the mirror to the monitor. I did this so that I could make future changes as I work more with it. The cords are a little unsightly, but other than that, I think it turned out okay for my first attempt. I'll keep working on this to improve it and will post more once it's done!