5

Making My Bedroom Mirror Smarter

 3 years ago
source link: https://blog.usejournal.com/making-my-bedroom-mirror-smarter-8932b729c01c
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Making My Bedroom Mirror Smarter

Having a ‘smart’ home is starting to become the trend these days; I’ve seen a pretty significant increase in the release of products aimed at making day to day tasks more efficient, saving you money and generally making your life easier.

So a little while ago I started looking into the concept of ‘smart mirrors’; a handy piece of tech that can make your mornings a little easier. Whilst getting ready you can have any piece of information available at a glance. No need to get out your phone to check your schedule for the day or to find out whether you need to take an umbrella with you!

Want to read this story later? Save it in Journal.

Overall it took me a few weeks to get this far, but this is by no means a finished result:

Credit to Max Braun for the UI inspiration.

On the left hand side you can see the current weather forecast and rain probability, along with my currently playing track on Spotify underneath. To the right I am displaying the time, date and my personal calendar from Google.

Building the Mirror

The concept is actually pretty simple — a two-way mirror with a display on the rear side of it. As the mirror is slightly transparent, light can be projected through the glass to the front side, giving the impression that the information is directly inside the mirror’s glass. Pretty cool right?

The Mirror

To start with, I needed to find myself the correct type of mirror for the job. I knew that I needed something that was easy to mount and manage.

1*ZVzGb5AP_rAWtlaYtuStJw.jpeg?q=20
making-my-bedroom-mirror-smarter-8932b729c01c
The first prototype, see the distortion on the line of the wall?

My first attempt was using an acrylic cut of two-way mirror, which was somewhat of a failure due to the structural properties of acrylic, giving a similar visual effect as to what you’d see in a funhouse.

I decided to bite the bullet to ditch acrylic for glass; it won’t distort and doesn’t scratch or mark as easily in comparison. After a bit of research I settled on Pilkington’s MirroView™ product, aimed purely towards digital mirror displays; I opted for the 70/20 variant for darker lit rooms.

The Display

Originally my project started because I had an old 21.5" LCD monitor laying around that I had no use for, thinking it would be perfect for this application. I was wrong. The viewing angles were awful and the backlight bleed was clearly noticeable.

1*MoHuLVKUiA_hvEZQ9vnv2w.jpeg?q=20
making-my-bedroom-mirror-smarter-8932b729c01c
You can see how the text starts to disappear in places and that the black background is pretty patchy towards the edges of the screen.

After a little bit of research, I decided to go with a VA panel, these typically have better viewing angles and a much higher contrast ratio than the TN panel I attempted to use. The fact there is a screen behind the mirror is now almost unnoticeable to the untrained eye.

I settled on the BenQ GW2270HM, which I snagged for a pretty good price on eBay. It also has built-in speakers which gives me a few ideas for the future..

1*OHNm8tgfF7WWQcrdT7V28Q.jpeg?q=20
making-my-bedroom-mirror-smarter-8932b729c01c
The new display is almost perfect, text is a lot sharper and contrast is significantly better. The only step-up would be moving to an OLED.

The Hardware

I aimed to build something reliable and simple to maintain, so I went out and picked up a Raspberry Pi 4. This would allow me to run almost any type of OS for managing the UI.

1*_GRN2foDS_ABH3DvHuO1Xg.jpeg?q=20
making-my-bedroom-mirror-smarter-8932b729c01c
Also a few other goodies including a snazzy mesh-style casing.

The UI

I started off by using the open-source MagicMirror² software by Michael Teeuw, but quickly opted to challenge myself to build my own software with my own take on the UI.

I chose to build the software using the popular React web framework by Facebook. Meaning I can easily run the software up in a full-screen browser window, taking a similar approach to the latter via PM2.

For the weather I used the API offered by Dark Sky, allowing me to get detailed info on the weather by location.

As for the other areas I used Spotify’s Web API for getting the currently playing track, Moment.js for displaying the time, and a custom implementation for the calendar using the ical.js Node library.

I plan on making the source-code available at some point too!

Piecing It All Together

Originally I wanted something to mount to the wall inside a fancy wooden frame like most — but I had a better idea.

I started off by making a cutout in the door of my wardrobe for the display to be mounted within. Using some old off-cuts I added a supporting center brace, using Gorilla tape to hold the screen in place. It’s a bit rudimentary, but hey — it does the job.

I used a cut of white hardboard to cover up the mess, making cutouts to feed through the two display cables and using double-sided tape to hold it in place. After this, I could then connect the controller board back up and mount it to the back of the door.

Making a mess of my newly purchased IKEA PAX wardrobe. At some point I’ll probably paint the silver casing to match too.

To keep it as tidy as possible, I ran some trunking across and down to the floor of the wardrobe. From here both the HDMI and power cables route across into the back of a shelved area, where the Pi is; so it’s all hidden away.

Now that we’ve covered the party at the back, let’s get to the business up front.

As the screen is only a portion of the mirror itself, I needed the rest to function as a normal mirror. To do this I cut a piece of black card to fill in the blank space, with a cutout for the display. Then it was finally time to mount the mirror itself.

Not too shabby, eh?

When I had the mirror cut to size, I opted to additionally have 4 pre-drilled holes for mounting; allowing me to sandwich the mirror against everything else securely.

What’s Next?

As mentioned previously in the article, this is nowhere near the end of the project. I have quite a few ideas to implement over the course of the next year or two. The first being some sort of voice assistant, Alexa or Google Assistant, making use of the screen’s built-in speakers.

Currently I have to manually turn the display on and off, so setting it up on some sort of timer would be useful, or maybe even controlling it externally as a ‘smart’ device via Google Home?

Lastly, another interesting feature to try would be facial recognition or motion detection. Meaning the mirror can display minimal or no information until someone stands in front of it. Facial recognition would also mean I can display relevant info based on the individual.

Conclusion

So far I’ve really enjoyed this little project and will continue to post more as I implement more features. In terms of pricing it has only cost me in the region of £200–250, which comparatively isn’t that bad to premade offerings.

I’d love to hear your thoughts on this and any other suggestions or improvements I could make? Thanks for reading!

See every link mentioned in this article:


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK