Close
0%
0%

Infinity Mirror Clock

A smart infinity mirror that's also a clock

Similar projects worth following
Ever since my addressable RGB LED strips (WS2812B) came from Aliexpress, I've been fascinated with LED projects. Following up on my success with my Charlieplexed LED clock, I wanted to create something with more Jazz..

While browsing google images, I came across an instructable for an Arduino Infinity Mirror and the brain cells started working in overdrive. Why shouldn't I make an infinity mirror, that's also a clock !!

http://www.instructables.com/id/Infinity-Mirror-Clock/

Ever since my addressable RGB LED strips (WS2812B) came from Aliexpress, I've been fascinated with LED projects. Following up on my success with my Charlieplexed LED clock, I wanted to create something with more Jazz..

While browsing google images, I came across an instructable for an Arduino Infinity Mirror and the brain cells started working in overdrive. Why shouldn't I make an infinity mirror, that's also a clock !!

Features:

  1. Works like a clock - the colours of the hands are user-programmable over bluetooth
  2. Has an IR sensor to sense if someone is coming near the mirror. Switches off the LEDs, so that this can be used as a normal mirror :-)
  3. Shows a rainbow effect every 15 minutes (time is user adjustable)
  4. Has a touch button to toggle between clock and rainbow effects
  5. Switches to night mode between midnight and 7:00 AM - can be changed in the code.
  6. Can be programmed over bluetooth - so you do not need to take it off the wall if you need to update the code

Full Instructable at: http://www.instructables.com/id/Infinity-Mirror-Clock/

System Design:

The circuit is very simple:

  1. LED Strip - Connect power to the LM2596 Step Down Adjustable Power Supply Module - ensure you adjust the pot so that the output is 5V; Connect the ground to the common ground; Connect data to pin D5 of the Arduino
  2. Touch Sensor - data to pin D2 of Arduino
  3. RTC Module - SDA and SCL to the A4 and A5 of the Arduino respectively
  4. Bluetooth Module - Connect RX to Arduino's TX and TX to Arduino's RX. You will have to break-out pin 32 on the module to the DTR pin on the Arduino (This allows you to program the Arduino over bluetooth)
  5. IR Proximity Sensor - create the sensor as per this instructable:http://www.instructables.com/id/Simple-IR-proximit... - connect the photo-diode to A1 (A0 on the instructable schematic) and the IR LEDs to D13 (D2 on the instructable schematic)
  6. Connect the Power 9V 2A Power supply to the input of the 7805 and the LM2596

To setup the bluetooth programming circuit, please follow this link:http://makezine.com/projects/diy-arduino-bluetooth...

  • 1 × Standalone Arduino http://dushyant.ahuja.ws/2013/10/standalone-arduino/
  • 1 × RGB Addressable LED Strip - 1m WS2812B 60 LEDs / m
  • 1 × Circular Mirror
  • 1 × Circular One-way mirror you can use 1 circular 6mm glass - 400mm dia instead. You need to put silver sun-control film on this - you can get this either from auto-accessories vendors or from window / glazing installers. 3M has a very good film that you should be able to get from 3M dealers
  • 1 × Frame Made of wood

View all 10 components

  • Connect to your android phone

    Dushyant Ahuja08/21/2014 at 02:35 0 comments

    I had created a small project earlier to show android notifications on a physical device: http://dushyant.ahuja.ws/2013/11/physical-android-notifier/

    Unfortunately, the android code has stopped working - and now I'm looking to create a tasker plugin that can send commands over bluetooth serial. It would be able to:

    1. Send missed call notifications to the infinity mirror clock - currently the code starts blinking the LEDs as soon as it receives a "MISSED" command; and goes back to normal once it receives a "MISSEDOFF" command.

    2. The phone can periodically send out time information (using the TIME commad) to the clock, to keep it synchronised and counter any lags in the RTC

    3. Send weather information to the clock

    4. Send inspirational quotes to the clock

    Suggestions welcome...

  • TFT Module

    Dushyant Ahuja08/21/2014 at 02:24 0 comments

    Have bought the following 2.4" TFT LCD: 

    http://cgi.ebay.in/ws/eBayISAPI.dll?ViewItem&item=261493547078

    The plan is to connect another arduino to this LCD and place it behind the one-way mirror. When the LCD is off, it becomes invisible; however when the LCD is on - it acts similar to a heads-up display and can be used to display information and convert this to a smart mirror.

    The following are some of the uses:

    1. Display weather information

    2. Display missed call, sms information from a paired bluetooth phone

    3. Display an inspirational quote / joke, etc etc

    The code currently switches off the LEDs when someone comes near the mirror - so that it can be used as a normal mirror. It can be modified to send text to the LCD arduino (via softwareserial) to display information.

    The intent is to switch on the TFT when the LEDs are off so that it shows up through the on-way mirror. Similar to this: http://www.homecrux.com/2013/10/12/9583/smart-mirror-2-0-keeps-entertained-playing-music-movies.html

  • Bluetooth Programming

    Dushyant Ahuja08/21/2014 at 02:10 0 comments

    The clock can be programmed over bluetooth using the following commands:

    1. MULTI - Toggles the multi-coloured rainbow effects
    2. STAT - Provides the clock status to the serial port
    3. SETRAIN Sets the interval for the rainbow effects - e.g every 5 minutes: SETRAIN 5
    4. HOUR [R] [G] [B] Sets the colour of the hour hand - e.g. HOUR 255 0 0 sets the hour hand to Red
    5. MIN [R] [G] [B] Sets the colour of the minute LEDs - e.g. MIN 0 255 0 sets the minute LEDs to Green
    6. SEC [R] [G] [B] Sets the colour of the second LED - e.g. SEC 255 255 255 sets the second LED to White
    7. BG [R] [G] [B] Sets the colour of the background LEDs - e.g. SEC 30 30 30 sets the background LEDs to Grey
    8. LIGHT [NIGHT] [DAY] Sets the brightness of the LEDs during night time and day time - e.g LIGHT 0 150 switches off LEDs at night and sets brightness to 150 during day. The code currently considers time between midnight and 7:00 AM as night. This can be changed easily in the code
    9. TIME Set the time

  • Problems Faced

    Dushyant Ahuja08/21/2014 at 02:09 0 comments

    Even though this build is relatively simple, I faced a few problems while building:

    1. The dimensions of the circles are very important. As I did not have access to a laser cutter, the circles have been cut by hand (not by me) and I faced problems while fixing the LED strip and the glass. I had given the dimensions to the carpenter in mm - but carpenter was used to inches and hence there was a slight rounding off in the dimensions. The center circle where the LED strip has to be stuck HAS to have a circumference of exactly 1000mm for the LED strip to fit correctly. The carpenter had made a larger circle and I had to pad the circumference with double sided tape. The outer circles where the mirror and glass had to be installed had the opposite problem - the glass simply did not fit. So I had to manually file the plywood to make the glass fit. My suggestion here would be to get the glass cut first and take it with you when you get the plywood cut. Would make things so much simpler. Luckily the design allows for small problems in the dimensions and you cannot see the faults in the final build
    2. I had assumed that a 7805 with a heat-sink would be sufficient to power the clock, as I had made a similar circuit before and it worked without any problem. I had not counted on the fact that these LEDs are behind a one-way mirror and consequently have to be much brighter. The first trial run had the processor hanging whenever the rainbow effects came on, the bluetooth module getting disconnected, etc. Thanks to friends on the arduino and fastled forums - I was able to sort this out. Bought an LM2596 module to power the LED strip separately. This module can pump out 3A with a heatsink. While this is still not enough for the 3.6A the strip can pull at full white, the software never turns on all the LEDs to white - so this is not a problem. Furthermore, I have added a night mode to the clock, so that the power supplies and LEDs can cool down at night - and hopefully prolong their life.
    3. The touch button is still giving some problems - but I think that is more to do with the problems in earthing in my house rather than anything else. Will try it at a friend's house to see if I still get the same problem.
    4. The proximity sensor does not work through glass. I had thought of installing the sensor behind the one-way mirror, but the glass blocks IR and hence the sensor does not work. I had to install it below the clock - its not big enough to be a distraction or look bad, but is not perfect either.
    5. Planning - I would suggest you plan all the features before you start building. My wife came up with the idea of converting this to a smart mirror (also) and I had to cut out the LCD enclosure with the limited tools I had at home (a drill and a file) - which was a problem. Had we planned for this enclosure earlier, we could have got a better finish.
    6. Costs - I had budget around 2,000 INR for this build, but we changed the design mid-way and added more features - so the final cost went over 5,000 INR. But I still love the final result :-)

  • Future Plans

    Dushyant Ahuja08/21/2014 at 02:07 0 comments

    1. Add a TFT LCD behind the one-way mirror to make it a smart mirror. The TFT LCD would show time, weather, a joke (?). The intent is to switch on the TFT when the LEDs are off so that it shows up through the on-way mirror. Similar to this: http://www.homecrux.com/2013/10/12/9583/smart-mirr...
    2. Add a microphone so that beat detection can be incorporated and effects setup to match the music
    3. Use it as a physical notifier to provide notifications for missed calls, texts, etc from my smartphone. The TFT LCD can be used to display the name, text, etc.

View all 5 project logs

View all 5 instructions

Enjoy this project?

Share

Discussions

[deleted]

[this comment has been deleted]

[deleted]

[this comment has been deleted]

Dushyant Ahuja wrote 10/16/2016 at 12:54 point

Thanks for the suggestions. Will look into incorporating this in future projects. Thanks. 

  Are you sure? yes | no

Dushyant Ahuja wrote 08/21/2014 at 02:55 point
Suggestions welcome as to how I can enhance the "smart mirror" functionality

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates