This was a pretty simple but elegant weekend project. Ever since I watched Iron Man 2 and saw Tony Stark's smart mirror, I've been wanting to make one.
Luckily enough, I'm not the only one who thinks the concept of a smart mirror is awesome; turns out, there's a lot of people who have made them and there are open source GitHub repositories dedicated to customizable smart mirrors.
This was a very easy weekend project.
Configuring the MagicMirror Platform:
The first step of this project for me was to see if I can get the MagicMirror open source platform working on my Raspberry Pi 3B+. I did a fresh install of Raspbian and followed the directions given for a manual install of MagicMirror in its README.
I ran into a couple dependency issues especially because some of the packages relied on older versions of other packages that were depreciated, but a few quick Google searches solved those problems.
The only thing I couldn't get working was Google Assistant on the Raspberry Pi. I don't know if Google's backend was broken when I tried it, but I couldn't get the authentication credentials provided from their API to authorize my Raspberry Pi to use them.
I prefer Google Assistant over Amazon Alexa (I don't normally use voice assistants though because it feels like I'm voluntarily getting wiretapped), but I decided to try to get Amazon Alexa onto the Smart Mirror. After that, I just had to set the Raspberry Pi's default speakers to output to HDMI rather than its headphone jack and its microphone to my Logitech webcam.
I configured my Smart Mirror to show the above modules. There are a bunch of 3rd party modules on this page. Some of them are outdated and don't work and some of them aren't very aesthetically pleasing. It's really a trial-and-error thing with the 3rd party modules. My Configuration File (without my IDs of course) - https://github.com/tchanxx/Projects/blob/master/Smart%20Mirror/config.js
There are a couple programs that are really helpful when working on Raspberry Pi projects (or any computer that you have to control remotely). In particular, WinSCP and VNC Viewer.
WinSCP allows you to easily transfer and view files of another computer remotely.
VNC Viewer allows you to remotely control another computer (kind of like TeamViewer).
The Frame, Mirror, and TV:
Making the Frame:
I made this Smart Mirror frame while I worked at Stanley Black & Decker as an intern. An awesome employee perk was that they had a makerspace with free materials and a bunch of tools for us to use. Because the materials were free, I decided to make the frame out of 2" square steel tubing and TIG weld it together (the MIG welder wasn't working). I am also very bad at TIG welding especially because the tubing is thin so the welder tends to melt right through the steel.
Getting and Modifying a TV:
Since I was going to modify the TV and cover it with a mirror, I wanted to buy a used TV. I checked Hopkins' For Sale page, and luckily enough, someone was selling a 39 inch TV for $90! It was a good deal at the time, but TV prices have dropped drastically since then.
I thought it was great but hilarious that the person selling it to me wouldn't accept Venmo, but would accept Bitcoin or Litecoin for the TV. This was my first purchase I've ever made with a cryptocurrency and the transaction had a lot of friction. The point of cryptocurrencies is to have some sort of anonymity. So the seller did not want to email or message me his Litecoin wallet's public address. Instead, I had to sit there and make sure that I copy a 30-ish character long string by hand making sure that all the capitalization was correct. After that, the transaction took about 10 minutes to be verified by the miners and propagate through the blockchain network.
After buying the TV, I modified it by removing the front cover. In this particular TV model, the front panel was screwed in from the back so I had to take apart the most of the TV before getting to the front. After that, I superglued all the parts (including the main display) to the frame because they were held in place before by the front panel.
The Two-Way Mirror:
"Real" two-way mirrors are very expensive. For 1/8th-inch thick acrylic two-way mirrors, it costs $28/sqft. The minimum size I could get away with would be the dimensions of the TV. The TV screen is 19"x34" so TAP Plastics quoted me $130 (not including additional shipping) for the 1/8" thick two-way mirror. After that, I would still have to build a frame to hold the TV and the two-way mirror.
So, I decided to "make" my own Two-Way mirror. I bought a 40-inch picture frame from Michaels Arts and Crafts (with a coupon of course), a Two-Way mirror film from eBay, and a squeegee from Home Depot. I don't have all the receipts, but I think in total this approach cost $65.