Back to Parent

Outcome


Proposal: 

The project that we chose was the Smart Mirror. It merges the functionality of a traditional mirror with modern digital displays. This is for the normal busy person who wants all the information in a quick glance. The main goal behind the creation of smart mirrors is to offer a more interactive and informative experience while maintaining the basic utility of a mirror. Smart mirrors can show real-time information such as weather updates, calendar events, news headlines, and more. In our project the main aspects of the mirror that we will focus on creating a regular mirror into a smart mirror that has a display and led lights. Connectivity will play a pivotal role in our smart mirror project. It will be able to monitor the weather and display it in the mirror. 


Our Smart Mirror Preliminary Sketch


Here we have the preliminary coding. We were trying to build upon the coding that had the LED lights fading that also implemented the the IFTTT. We wanted to see if we were able to implement the weather app instead of the Google Calendar.

Show Advanced Options

Here we started to build upon the code adding a web hook so that we could get the temperature. We at first were failing to get the temperature to work. We also added a sketch of how we wanted to implement the LED lights. One of the things that changed was that we didn't have any neopixels 8 LED lights. So we had to be satisfied with the strip LED lights. 

At the end we were happier with the design of the strip LED lights.

Show Advanced Options
Mirror picture 2.thumb
Show Advanced Options
Img 9405.thumb
Show Advanced Options

First, we thought we would use a sensor to detect how hot it is. But instead we decided that an API would be a better route. Here in this code we started to understand how the API works. We ended up using open-meteo Weather Forecast API.

Show Advanced Options

Here we decided to add a function. We talked amongst ourselves and realized that temperature is different and varies person to person. So we implemented a function that allows the user to decide at what temperature is hot or cold for them.

Show Advanced Options

Here we have the top and side view of the particle device and the wire connections. I also added a video of the device showing us that it is cold outside (temperature is less than 75 Degrees Fahrenheit. 

Img 9412.thumb
Show Advanced Options
Img 9413.thumb
Show Advanced Options
Show Advanced Options

Here we started the early implementation of the display, this has been the hardest part. No one in the group had used a display or even knew where to start. We were having some connectivity issues with the particle. Below are the top and side view of the connections. 

Screen shot 2023 12 14 at 12.22.21 am.thumb
Show Advanced Options
Show Advanced Options

The code of this project is fairly straight forward, as illustrated by this diagram. The code started with just the normal code to light up the neopixels, then we added a function that obtains data from the api. After that, we created two functions, a fade cool and fade warm that would display on repeat. In order to obtain the user data of at what temperature they would like the display to change color, we setup a function to be published to the particle platform, and we do this in the function setup(). After that, we parse the information from the api using a template and the particle integration. (Key component shown in pictures below).

 Lastly, we make sure to call the correct neopixel function to display the light as well as write to the display appropriately. 

Screen shot 2023 12 14 at 1.01.21 am.thumb
Show Advanced Options
Screen shot 2023 12 14 at 1.01.10 am.thumb
Show Advanced Options
Screen shot 2023 12 14 at 1.17.02 am.thumb
Show Advanced Options
Img 9435.thumb
Show Advanced Options
Img 9434.thumb
Show Advanced Options

We finally had the code to work for the display. We then connected the ambient lights and taped it all on the back of the mirror so we could have a clean presentation.

Img 9437.thumb
Show Advanced Options

Here we have a final presentation of our project. We have the lights displaying the temperature (42.4 deg F) and the percentage of precipitation (0%).  We then typed in our function the number 10. Meaning that if the person believes anything above 10 degrees F is hot then the mirror will turn to the warmer color.

Show Advanced Options

Here is our final code.

Show Advanced Options

Feedback/ What to improve 

After presenting we were given great feedback. Some of the feedback was on including a voice activation system that would include Siri or Amazon Alexa and allow the mirror to be voice activated. That would allow for anything ranging from asking questions to putting music. The next crucial feedback was the aesthetic. We could improve the frame and the way we have the ambient lights surrounding the mirror. One example that was given was putting a milky white sheet so you can't see the individual lights. The last and favorite piece of advice was  adding a display that would allow for notes or affirmations. Moving forward those are some pieces that we would like to add to our prototype.

Bill of Materials

Particle controller, Temperature API, LCD screen (for display), Ambient Light (LED Light Strip), mirror

References:

- Engmann, Nick. “Magic Mirror Module for Particle.Io Data.” Particle Projects, 11 May 2020, particle.hackster.io/nick-engmann/magic-mirror-module-for-particle-io-data-bbc5c0.

- josh_kilinc, and Instructables. “Smart Mirror.” Instructables, Instructables, 13 June 2022, www.instructables.com/Smart-Mirror-8/. 

-Braun, Max. “Smarter Mirrors and How They’re Made.” Medium, OneZero, 27 July 2020, onezero.medium.com/smarter-mirrors-and-how-theyre-made-327997b9eff7. 

-https://diotlabs.daraghbyrne.me/docs/working-with-data/webhooks/openmeteo_weather

Prototype example2.thumb
Show Advanced Options
Prototype example.thumb
Show Advanced Options
Img 0309 2.png.thumb
Show Advanced Options

Upon receiving some feedback from our demon, we realized that in order to make our design more interactive and user centered, we should try to display more information that is customizable. Because some people told us they would like to know more weather information, while others said that they wish to put a To Do list that they can review in the morning. I think having a function where users can text the particle to display the information on a second display screen would be really cool. 

Drop files here or click to select

You can upload files of up to 20MB using this form.