- Daniel Moore (n01354875)
- Alyssa Gomez (n01042777)
- Jose Antonio Teodoro (n01384776)
- Ryan Black (n01305403)
- Raspberry Pi 4 (Raspberry Pi OS)
- Arduino Uno Rev3
- Custom PCB (Designed in CENG317 Hardware Production Technology)
- Google Firebase Database
- 21.5" Monitor (For PI display)
Component Name | Component Purpose |
---|---|
21.5" Monitor | 🠊 Plugged into Raspberry Pi to display the mirror dashboard |
Raspberry Pi 4 | 🠊 Running the Magic Mirror Dashboard 🠊 Read the sensor info from the Arudino over I2C (USB connection) |
Magic Mirror Software | 🠊 Loading the dashboard based on the layout set in the app |
Arduino Uno Rev 3 | 🠊 Reading sensor data from modules and outputting it to be read by the Pi |
Firebase Realtime DB | 🠊 For storing user accounts and settings including: 🢧 Name 🢧 Layouts 🢧 Which voice commands have been set |
Android App | 🠊 For creating an account which stores user layouts and voice commands 🠊 Each user can: 🢧 Create and edit layouts 🢧 Set a layout for the mirror to display 🢧 Setup and change the word for each voice command 🢧 Terminate their account (Removes all user data from the DB) |
Purpose: For changing which layout is displayed on the mirror, and setting the voice commands.
On first launch the user will be sent here and prompted to Sign in with email or Sign in with Google. If the user stays signed in and closes the app, it will auto-login the user on the next launch. This is handled by Firebase Authentication.
On first launch, it shows the default layouts that the user can choose to change the mirror display to. These default layouts cannot be edited. After first launch, it shows the default and user created layouts (if any). These layouts are retrieved dynamically from the database when the page loads. Tapping on these layouts will set the mirror display to that layout. There is an Add Layout button that will send the user to the Create/Edit Layouts Page
It shows the user created layouts similar to the Home Page. These layouts are retrieved dynamically from the database when the page loads. Tapping on a layout will open the Create/Edit Layouts page.
A TextView for the Layout Name.
There is a list of modules that the user can turn on or off to have them shown on the mirror.
If the module is on, the dropdown (spinner) will be enabled and the user can choose a location for that module.
If the module is off, the dropdown (spinner) will be disabled and greyed out.
* The Magic Mirror software handles two or more modules in the same location.
Coming from the Home Page Add Layout button
Every module will be set to the default position "off" and every dropdown will be disabled (greyed out).
Taping on one of the layouts on the Choose Layout to Edit Page
The data for each module and its location will be retrieved from Firebase. The layout name will be populated in the Layout Name TextView.
About us button shows some information about the project and the company email.
Review button lets the user share a 0-5 star review with some optional text. This will be stored in Firebase.
Settings button lets the user logout or terminate their account. (Terminating will remove all data associated with the user from Firebase. If someone logs in with the same email in the future, it will create a new account since there is no record of the user.)
USE WEB APP FOR VOICE COMMAND CONTROL
Set voice commands and set the layout that will be shown for custom commands 4-6