Skip to content

afreeland/magic-mirror-demo

 
 

Repository files navigation

⚡Magic Mirror⚡

##Overview

We took the magic mirror concept a step further by enabling user recognition 😃. The mirror can recognize registered users and personalize the experience accordingly.

The Magic Mirror is a fun weekend IoT project that showcases the power of Universal Windows Platform (UWP) hosted web apps. Please check out the instructions below to see how you can build it yourself 🚀.

The client side was coded against standard web technologies (CSS, HTML, JS) ❤️, and the back-end leverages the power of NodeJS and Mongo hosted on Azure. The client side implements Windows API (mediaCapture) to detect faces from the devices camera, and the Microsoft's Cognitive Services Face API to match Faces to profiles.

##User Flow

Before using the magic mirror, users need to create a profile using the desktop app. You need a profile so the mirror can recognize you and adapt to your needs.

##Assembly Process

Please see the assembly process section.

##Installing the apps

You have to deploy two Hosted Web apps (HWA). The first HWA allows you to create your profile and is meant to run on your desktop. The second HWA powers the Magic Mirror UI that runs on the Raspberry Pi 2/3.

###Deploying on a PC

Prerequisites:

  • Visual Studio (2013+)
  • Windows 10 SDK installed in Visual Stuido

Steps to deploy the Profile Creator app to your desktop:

  1. In Visual Studio, go to Solution explorer, click on package.appxmanifest > Application and set http://webreflections.azurewebsites.net/create as the start page
  2. On the ribbon, change the target architecture to match that of your PC (e.g. x64)
  3. Set the debugging target to "Local machine" (changing the architecture in step 2 probably did this for you)
  4. Click play to start the app running on your local machine
  5. Follow the prompts on the create experience to save a profile for yourself

Steps to deploy the Magic Mirror app to the Raspberry Pi 2:

  1. In Visual Studio, click File > New Project > JavaScript Templates > Windows > Hosted Web apps
  2. Go to Solution explorer, click on package.appxmanifest > Application and set http://webreflections.azurewebsites.net/mirror as the start page
  3. Within the package.appxmanifest view, click the Content URIs tab and insert http://webreflections.azurewebsites.net/ with WinRT Access All
  4. Click the Capabilities tab and select Webcam 📷
  5. On the ribbon, Change the taget architecture from Any CPU to ARM
  6. Click play (it should say Remote Machine)
  7. A prompt should appear asking you for the Machine Name. Set the IPv4 of your RP as the Machine Name and select Universal for the Require Authentication
  8. and voilà! 🎁 You have succesfully installed the Magic Mirror hosted web app in your RP running Windows IoT core.

You can find a tutorial of how to deploy HWA using Visual Studio here.

###Deploying on a Mac

Coming soon...

Contributing

For guidelines on contributing to this project, please refer to the contributing section.

##Run Locally

Please see the run locally section.

Credits

The weather icons were created by Yorlmar Campos under a Creative Commons Attribution 3.0 license.

##Code of Conduct This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

About

A ⚡Magic Mirror⚡ powered by a UWP Hosted Web App 🚀

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 64.5%
  • CSS 21.7%
  • HTML 9.9%
  • Batchfile 3.9%