Overview

Make a mirror that's also a display! Use any Android device and some two-way mirror plastic to whip up a smart home mirror, using Hannah Mitt's code on Github! This guide will walk you through my process of installing Hannah's app on my Nexus 7 tablet and installing it at home. First up be sure to read this page and download the code:

The app has modules for date, weather, chore reminders, stock prices, XKCD comic updates, news headlines, and more. I find the temperature display particularly useful for deciding which jacket to grab on the way out the door.

I had never done any Android development before (though I did make my phone unlockable with an NFC ring), so I think it's safe to call this project beginner-friendly. It took a little tinkering to get it working and then some crafting to assemble the mirror, but was very satisfying at each incremental step.

Besides your Android device and its power supply (and a long USB cable), for this project you will need:

  • two-way mirror plastic (see-through) - I got mine at Canal Plastics but you can also get it online
  • double-stick tape
  • velcro tape
  • black construction paper (or dark file folder)
  • packing tape
  • velcro tape
  • scissors
  • power run to your mirror's desired location

Android Setup

Install Android Studio

Grab the free Android Studio software from the Android developer site and install it. The documentation is very thorough, and although there's a lot information on their site that I didn't understand or need, there were also very useful and beginner-accessible pages on getting an up running.

I upgraded my device to Android 5.1 before beginning this project, and the proper SDK (Rev 22) wasn't automatically included in my Android Studio install, so I had to use the SDK manager to install it. I knew to try that because of a very detailed error message that appeared when I tried to open the HomeMirror project in Android Studio, saying it couldn't find android-22 and provided a link to open the SDK manager:

Get a Forecast.io key

This requires you to sign up for an account on The Dark Sky Forecast site. Once you do, look for the API Key block at the bottom of developer.forecast.io. That long string of text is your unique key (I've shown you my old one for the sake of this guide, but have since reset it so the code shown is inactive).

Create an XML file with your Forecast.io key and change the text "your-key-here" for your key:

<resources>
	<string name="dark_sky_api_key">your-key-here</string>
</resources>

Or just download this keys.xml file, open it in your favorite text editor and make the change to include your key before moving/saving it in HomeMirror/app/src/main/res/values.

Once you have the correct SDK for the version of Android your device is running, you should be able to open the HomeMirror project in Android Studio.

Run app

Before you can run an app build in Android Studio, you need to enable developer options on your device. In your Settings > About Tablet (or Phone), tap the Build Number seven times to enable Developer Options. Then you'll be able to turn on USB debugging. More info about preparing devices can be found on this Android Developer page.

With the device plugged in, click the small play button in the toolbar to run the app.

A window should pop up asking you to choose a device, and you should see your device in the list.

The app should launch on the phone. In the setup screen you can choose various options to display and include your location. For me, errors appeared on the computer screen letting me know the face detection module was not working-- I still can't seem to get that part to work but all the other modules seem to file right up!

Assemble the Mirror

Once the app is all set up on the Android device, use double-stick tape to affix it to one corner of the mirror.

Use an opaque paper to block out the rest of the back of the mirror with more double stick tape. I then used packing tape to affix some cardboard spacers that would bring the rest of the mirror to the same thickness as the tablet, so it will sit flat on the wall. 

 

Then use some velcro tape or your preferred mounting mechanism to affix it to the wall.

Route the power cable to an outlet and enjoy!