Our team was inspired to develop this project in an effort to learn more about computer science. Having only experienced software development, the four of us sought to try new to expand our development knowledge. Prior to the Hackathon, we bought a Raspberry Pi 3, and we spent our time at Blair Hacks learning what we could do with it. Eventually we decided to make a smart mirror: a mirror that can display the time, weather, and other information.

What it does

Magic Mirror, as the name suggests, can act as a mirror. There is a reflective surface that allows its users to see themselves. However, the Magic Mirror also displays added information, such as the time, weather, news headlines, and other personal notes. These notes can be added through the use of a side-app that utilizes text recognition.

How we built it

Hardware used: raspberry pi, monitor, black cardboard, tape. Software used: Android Studio, JSON, REGEX, Google's Open Source Tesseract, CNN News API, Open-source weather API.

The mirror is able to display weather forecasts by communicating with a Raspberry Pi (via Bluetooth), which several weather API calls. Furthermore, the mirror is able to filter out top news headlines on CNN's webpage through the use of REGEX (regular expression), a method of filtering strings of text. This information is stored via JSON, which allows for easy access.

The user is able to add his or her own personal notes or reminders through the use of a side app. This side app utilizes optical character recognition and is capable of recognizing text, which can then be communicated to the Raspberry Pi.

Challenges we ran into

We found it very difficult to implement the optical character recognition app Due to the complex nature of text recognition and the limited amount of time given, we struggled. However, after thorough research, we were able to overcome these difficulties, and finish implementing the app.

Accomplishments that we're proud of

We are proud of successfully completing our first Hardware Hack. We are also proud of successfully implementing an optical character recognition application.

What we learned

We learned how to use Raspberry Pi to successfully display information on a monitor using JSON and API calls. Our app utilizes an open source weather map to gather information on weather and forecast via geolocation. Moreover, we have learned how to use more complex REGEX statements. In our application, we were able to filter information from CNN's webpage to just the top six headlines.

What's next for Magic Mirror

In the future, we wish to add more features to the mirror. For instance, we can display traffic conditions based on the user's geolocation.

Share this project: