Capstone Project: Smart Mirror
by Shrumi in Circuits > Raspberry Pi
12 Views, 0 Favorites, 0 Comments
Capstone Project: Smart Mirror

At my technical school we are finishing out the year with a capstone project. I am going to be creating a Smart Mirror with a Raspberry Pi 3 B.
Supplies

Raspberry Pi 3 Model B
https://vilros.com/collections/raspberry-pi/products/raspberry-pi-3-model-b?src=raspberrypi
One Way Mirror Stick-On Sheet
https://www.amazon.com/Privacy-Treatments-Stickers-Covering-Reflective/dp/B07CYYZF3F/ref=asc_df_B07CYYZF3F?mcid=fc76a91e45a23b2fa5ce004eea4cd08a&hvocijid=17519016217735485813-B07CYYZF3F-&hvexpln=73&tag=hyprod-20&linkCode=df0&hvadid=721245378154&hvpos=&hvnetw=g&hvrand=17519016217735485813&hvpone=&hvptwo=&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=9002848&hvtargid=pla-2281435177418&th=1
Micro SD Card
Monitor
Keyboard
Mouse
HDMI - DVI cable (This is what I used, it depends on the type of monitor you have)
Online Resources:
Magic Mirror Builder: https://magicmirror.builders
Modules:
Install Magic Mirror

First off you have to install Magic Mirror for the server to work. I did this by hooking up my Raspberry Pi to a a separate monitor and accessing through a mouse and keyboard. You can do this on the monitor you plan on using, however my monitor needed an HDMI - DVI cable that had not arrived yet. If you go to https://magicmirror.builders you can find instructions on how to install the necessary files through the terminal. You also need to install the Node.js that they provide so specific commands such as "npm" will work properly.
Test That the Downloaded Files Work Properly

Once you have the files installed, go to the terminal and type in "cd MagicMirror" to access the directory. Then type "npm run start". If you have done everything correctly you should see the default modules for the mirror pop up after some loading time. To exit you can press "ctrl q" to return to the main screen.
Customize Your Modules

The default Magic Mirror comes with a few default modules. If you go to the config file under "Magic Mirror" in your files, you'll find "config.js". This is the main customization code for the software. You can change the modules' position to suit your needs. Better yet, you can add others! I went to https://github.com/MagicMirrorOrg/MagicMirror/wiki/3rd-party-modules and installed two that I use: dennisklad's "Birthdays" module and Nolankingdon's "Daily Pokemon" module. Each contained installation information in their sections and were very helpful!
Set Up Your Monitor

After I had the software situated in a way I liked, I started on my monitor. After cleaning off the screen, I cut out a mirror sheet for the monitor, making sure to leave some extra on the edge to prevent mistakes. I popped off the monitor frame with the help of my instructor, moistened a paper towel and went over the dark side of the sheet, and stuck it on. I also used some double-sided tape to hold down the sheet as I put the frame back over. I then plugged the monitor into my Raspberry Pi, connected to it remotely for easy access, and activated the program.
Enjoy!
This was an extremely fun project to work on, combining my love of working with computers and creativity! Some tips if you decide to attempt this, or improvements I believe could be made:
Try to find a different one-way medium. The one I chose is a little blurry, as it's a privacy window sheet, and not that great of a mirror.
Read those README.md packets on every module that you use! They come in really handy when installing and customizing the mirror, and I made the mistake of only skimming them as I worked on this project. Learn from my mistakes!
Maybe create or buy a nice frame for the monitor. I think it'd look a lot nicer.
Make sure the monitor that you use has a detachable frame! I tried to use one before the one I settled on because it had a stand, but I could not detach the frame from the monitor to put on the mirror sheet.
Some improvements I would like to make eventually is make it functional via remote control, have it play music, or even make it voice controlled. There are plenty of modules for each on GitHub, so go wild!