Raspberry Pi Smart Mirror

By bekathwia


Here's an easy smart mirror powered by Raspberry Pi. I’m using the MagicMirror2 software with features for weather, my calendar, public transit, and any other of the hundreds of available IoT modules. I installed an old computer monitor on an articulated mount with a piece of two-way mirror glass.

I started out with a friend's old computer monitor– any HDMI display should work fine.

Prototyping the smart mirror

I hooked it up to a Raspberry Pi and installed the software according to the instructions on the website. It took me about a day to get set up and fully explore what’s available for the MagicMirror2 ecosystem.

For this project, you will need:

To keep up with what I’m working on, follow me on YouTubeInstagramTwitterPinterest, and subscribe to my newsletter. As an Amazon Associate, I earn from qualifying purchases you make using my affiliate links.

I based my project dimensions on the size of my bathroom mirror and ordered a frame online and a piece of that special glass from a local supplier. This place services big architecture projects, it was clear my order was much smaller than what’s typical for them. The glass is the most expensive part of this project. I’ve made projects with the acrylic equivalent of this light-transmissive mirror material, and the warping is super noticeable at larger sizes.

Once I gathered all the pieces, it was time to figure out a way to attach everything together and to the wall. I got a TV mount that could support well over the 40 pounds, or 18 kilograms, this whole project weighs. The plate that came with the mount attaches to the monitor’s VESA mount holes.

To press the monitor as close as possible to the back surface of the glass, I removed the front bezel and rerouted the button controls that used to be underneath it. I left the back case intact since it helps create the expected thickness for the TV mount.

Inspired by some illuminated mirrors I saw online, I decided to put some LED strips alongside the monitor. The strip came as one continuous piece with a controller circuit, so I had to do a little soldering to connect another piece of LED strip in parallel.

To situate the monitor in the frame, I used strips of plywood to fill in the empty space around the edges. In the vertical pieces along the sides, I routed a groove deep enough for my LED strips and drilled a hole through for the wires to come out the back. I drilled pocket holes in all the pieces and painted the fronts black, so they’ll help block out any stray light coming from the back of the mirror.

Plywood fills in the space between monitor and frame

The plywood also served as an excellent base on which to mount the power strip, Raspberry Pi, and cabling. At this stage, the monitor is stable side to side, but not front to back. I used nylon webbing and routed it through the extra holes in the monitor mounting plate. Then I added grommets to the webbing and screwed them down to the plywood as tightly as I could. After trimming the webbing, I melted the ends so they wouldn’t fray.

The back of the smart mirror

This arrangement seemed to work just fine when I turned the mirror upright. Time will tell if it holds up– it’s possible I’ll need to retighten the straps at some point.

Next, it was time to hang it in the bathroom. I got help for this part, since lifting heavy things up high is not my forte. My apartment has metal studs, so I used snap toggles inside the holes I drilled to support the arm. If you’ve been around my channel a while, you might remember I also used these when installing my giant storage cabinet. The screws grab onto the strong flippy metal bit, creating a secure metal stud sandwich.

There wasn’t space to lower the mirror, but I got a mount that tilts forward. So, in addition to the smart upgrade, the regular mirror part of this project has improved usefulness as well.

Smart mirror tilted forward

After hanging it up, I did some more playing around with the locations of the modules on the screen. Of course, I love the compliments front and center, and I also find the calendar, weather, and pollen forecast modules super useful.

The MagicMirror2 site lists the available modules, which far exceed what I’ve shown here. I’m just a happy member of the open source community, not an expert, but from what I understand, it’s possible to integrate voice control and webcam-informed features like facial recognition as well. Since this is in my bathroom, and connected to the internet, I decided not to include a camera in mine.

Key Parts and Components

Add all Digi-Key Parts to Cart
  • 1690-RaspberryPi4B/4GB-ND
  • 2648-SC0623-ND
  • 1690-RPI-KYB(US)RED-ND
  • 1690-RPIHDMIcablewhite-ND
  • 95-TLP206USB-ND
  • 1597-1428-ND
  • 1597-1753-ND
  • AB-FA01230-19712-8A1-ND
  • 364-1268-ND
  • 3539-B1854778-ND

Have questions or comments? Continue the conversation on TechForum, Digi-Key's online community and technical resource.

Visit TechForum