We wanted the information we check throughout the day to be available in one glance. A shared mirror should also adapt to the person standing in front of it. MirrorMode explores that idea with two personal profiles and two contexts: getting ready for the day and checking a shared workspace.
MirrorMode is a smart mirror dashboard with Personal and Work modes. Personal mode brings together a clock, weather, calendar, tasks, inbox, and a daily briefing. Work mode presents temperature, humidity, motion, and environmental alerts.
The intended physical interaction is simple: scan a card to open your profile in Personal mode, then turn a rotary encoder to switch between Personal and Work. The white card represents User 1 and the blue key fob represents User 2. Profiles keep personal information separate while sharing the same room readings.
The software prototype includes simulated card scans and sensor scenarios so it can be developed without the hardware attached. It also includes rule-based message review that highlights suspicious patterns and suggests a next step, with optional AI explanations. These warnings are guidance, not a guarantee that a message is safe or malicious.
We built a Python backend. The project is designed for a Raspberry Pi display with Arduino hardware handling physical inputs. The backend accepts card identifiers, mode changes, and sensor readings in a defined message format.
For the RFID prototype, we used an RC522 reader and the MFRC522 library in Arduino App Lab on an Arduino UNO Q. We successfully read two physical MIFARE cards and recorded their distinct identifiers. The profile and mode-switching software was developed separately, with demo controls for testing before full device integration.
We used ChatGPT and Codex during development to explain unfamiliar concepts, help write code, and troubleshoot. Live account connections and AI-generated explanations still require configuration and testing.
Getting the RFID reader working required checking power and SPI wiring, resolving library compatibility on the UNO Q, and distinguishing a successful app launch from an actual card read.
On the software side, we needed to keep each person's data separate while sharing sensor readings and allowing mode changes. We also encountered an old dashboard process that kept serving the previous version, which made the updated controls difficult to verify locally. Developing hardware and software independently made a clear data format and simulated inputs especially useful.
We confirmed real reads from both the white card and blue key fob. We also built the two-profile software prototype, Personal and Work views, environmental alert scenarios, and message review. Together, these provide a practical foundation for a shared mirror with physical controls.
Hardware and software need separate checks before they can be tested together. We learned to use actual device output to verify card reads, make missing or stale sensor data visible, and clearly label simulated information. We also learned how much a small physical interaction can simplify a shared interface.
Our next steps are to connect the verified card IDs to the final dashboard, test the rotary encoder and live sensors end to end, and finish deployment to the mirror display. We also want to configure and test individual account integrations and optional AI features, then refine the interface through everyday use.