"Mirror, Mirror on the wall, who's the..." Smart Mirror!
Funny how some of the coolest projects come my way. Today project by Evan Cohen came via a "first time poster" on an internal Microsoft Distribution List, that happened to be subscribed to by a Channel 9 dev, who happened to read and realized it would be great of the Coding4Fun blog. Got to love word-of-mouth networking :)
What's cool is that the Digital Journal picked it up already, Seattle web developer creates voice-controlled smart mirror
Now, watch the video;
In Evan's own words;
This project was inspired by Michael Teeuw's Magic Mirror and a project Hannah Mitt created for Android, but I decided to create my own mirror from scratch for the learning experience - and because I thought I could bring a new, unique perceptive on what a "smart" mirror could be (namely speech integration).
If you look at the GitHub you can see a parts list:
I built the mirror over a weekend from scratch last month including sourcing all of the hardware components, getting the glass cut, and writing the software. I got a little distracted from the project and hadn't worked on it for a month - but on Monday of this week I found myself some free time and built the integration with Philips Hue and recorded the video to show a couple of my co-workers and friends who had been asking about the project. Turns out they weren't the only ones who were interested :)
To answer your question about how I automated the lights: Philips Hue has a hub that lives on your home's network and it's what allows the Hue app to communicate with the lights. I piggybacked the API that the app uses so I could have the mirror send commands to the lights.
All told I've probably spent somewhere in the neighborhood of ~20 hours on it to date. I have a bunch more features that I'd like to build into it, including:
- Stock ticker
- Traffic on maps
- Bus times for the stops near my house
- Movie times (in the evening and on the weekends)
- Gesture integration (Using either the Leap Motion or Kinect) - You would put your hand over the leap and say "Adjust the brightness of the lights" - it would detect your hand, and depending on the height of your hand above the leap it will change the brightness as you move your hand up and down.
- Chromecast (So I can use it to play audio/video)
- Tons more stuff
I've been interested in home automation for as long as I can remember. I distinctly remember the first time I saw Iron Man's "Jarvis" and how excited I got, eventually that's what I'd like to build. So far it has been baby steps. The thing about IoT and Home Automation is that it is very much a hobbyist field today... Kits like SmartThings, littleBits, and Philips Hue have made it much more accessible - but there is still no commercially available product that brings foreword a universal solution for everyone because each of us have very different needs. The upside is that it has created a community of amazing people who have a shared goal: to make people’s lives better through automation. That's why my project and many others like it are open source. We all learn from and encourage each other to build bigger, better, and smarter.
I try to live my life with the least amount of friction and as simply as possible, for instance: I don't have any keys (keypad entry to my home and no car) and I use wireless whenever I can (Bluetooth headphones, wireless keyboard, etc.). I didn't have a mirror in my bedroom, so I thought I would kill two birds with one stone and build a smart mirror that would show me useful information and automate my room. One of the most interesting aspects of this project is that it makes use of a Surface that people already interact with on a regular basis. We live in an era where we carry around small screens in our pocket that connect us with the rest of the world, but most of the time the information that you actually want (or don't know you need) is burred in a webpage or an email somewhere that you have to dig up. I believe that in the not too distant future we can have both useful and actionable information delivered to us at just the right time, place, and interface (be it your phone, mirror, watch, projected onto a wall, or other surface).
One way to think about it is this:
We use our senses to perceive information about everything that we encounter in our day-to-day lives. We use that information to decide what actions to take, however the most critical information required to make the right decision is often not something we can sense, but is the information and knowledge that is readily available on the internet. Bringing that information to people at just the right time is a philosophy that is embodied in a few notable projects today, SixthSense (from MIT) being one of my favorite, and the first I read about in my life to articulate it in such an intuitive way (It's a super fascinating project you should totally check it out). It's also in a number of better known products: Google Now (on Google Glass, Android, and Android Wear), Apple Watch, HoloLens, etc.
I also compiled some other content that you might want to use for your broadcast:
A video describing how I work on the mirror:
While working on the mirror I hook it up to my desktop so I can iterate quicker than I would be able to on the Pi. I also have my full development environment on my desktop and lots more screen real estate, so it makes things quite a bit easier.
A photo of said setup: https://goo.gl/photos/q1fyKYAEWqiwb5wG7
And a photo of myself and the mirror: https://drive.google.com/file/d/0B6FoBe3oBzBIMF9McFdDZGZjb1k/view?usp=docslist_api
And some older stuff from the weekend when I built the prototype:
I told my girlfriend I was working on "a project". She asked me what it was and I sent her this: https://goo.gl/photos/YHJP4tA2A6SeJWYw5
Then this: https://goo.gl/photos/soS3uGwH4dJ8WnHV9
For some reason I laugh a ton in all of these videos, probably because it's such a fun project - but maybe I'm uncovering some "mad scientist" tendency's ;)
I SO want one of these, but mine would end up being snarky and would show stuff like an outline of me from months ago (when I was not as fat... ). When you flip off at your mirror, who are you really flipping off? LOL
Anyway... If you're looking for a fun project, this one definitely qualifies!