The ShipIt Day: A biannual event in which all of our teams stick their heads together to build something new and challenging within 24 hours. This year, one of the projects was to build a smart mirror. In case you’re wondering why we came up with this idea: We needed a mirror anyway. We were probably one of the only companies that didn’t have a single mirror in the entire building. So instead of buying one in the store, why not just make a “smart” one?
The plan was pretty simple. We wanted a mirror with brains. A mirror:
- that could tell the time (because clocks are kind of exclusive around here as well);
- that could forecast the weather;
- that could inform you on the traffic in the area;
- that could detect who’s standing in front of the mirror, so that you could have personalized widgets;
- with a built-in meeting calendar.
Building our First Smart Mirror
For us developers, the mirror itself was actually one of the biggest challenges. There is a lot of information out there when it comes to software for smart mirrors, but when it comes to hardware … It’s not something we do every day. Fortunately, we stumbled upon Dylan Pierce’s tutorial, in which he already wrote a detailed instruction guide with lots of useful pictures and tips.
The mirror frame is basically nothing more than a thick wooden frame. Inside this frame, we added smaller wooden frames to support the monitor and the glass. We also added some air holes on the top and bottom of the frame to prevent overheating.
For the glass, it’s probably best if you use a two-way mirror. Not only do these types of mirrors show the reflection, they also show what is behind the mirror. In our case however, we wanted to go for a low-budget solution, so we ended up making the glass ourselves. To do this, we bought a large plexiglass plate and covered it with semitransparent mirror foil. This looks a lot like attaching a giant screen protector to your smartphone. Though low-budget, it can, however, be a bit tricky. So if you want to avoid the hassle of covering the plexiglass with foil, just buy that two-way mirror.
Once we finished the glass, we placed a stripped old monitor and a lot of cardboard behind the glass screen. The cardboard has to cover everything except the monitor screen. Since everything behind the glass screen has to be completely dark, we also taped all the openings and borders with black tape. Otherwise, the light that goes through the small openings will cause white lines to appear on the glass.
While one part of the team took care of this, the other part made the brains of the mirror. Taking our limited time frame into consideration, we decided to build a basic front end website and Java API. The frontend website runs a JQuery script to periodically pull updates from the API and to update the website. We used a Raspberry Pi to display the Smart Mirror Application on our monitor.
Although we decided to keep our software rather basic due to a lack of time, you can build pretty much anything you want in any framework you’d like. For front end, just make sure you use high contrast modes like black and white, as these will be the clearest to see through the glass.
Without a doubt, the Smart Mirror was a huge success within Foreach. It looks great, it works and it’s huge. And even though the mirror didn’t become as “smart” as we first intended, we still managed to achieve quite a lot in a short period of time. Our mirror shows the time, the weather forecast, some traffic information, and messages sent to our Smart Mirror Slack channel. In short, it tells you everything you need to know when you’ve just arrived or are about to head home. What’s more to want from a bathroom mirror?
Of course, all of this is just the tip of the iceberg. You can do so much more with your smart mirror if you just set your mind to it. Who knows, we might still be able to attach a detector that figures out who is standing in front of the mirror. That way we could add some personalization features as well, like traffic information and weather forecasts relevant to the person looking in the mirror, a personal calendar, reminders, to do lists, notifications of social media, and so on. Or perhaps even some statistics to measure who spends the most time looking in the mirror. Just use your imagination. The possibilities are endless.