If you're tired of looking at the huge 4K TV in the living room and seeing a massive black rectangle most of the time (when it's not on) and you like art, then this may be a project for you.
In our living room we have a switch-controlled outlet that I was trying to find a use for and our black TV on the wall is to me an eyesore when it's not on, so I thought of somehow using that switched outlet to make a work of art appear on the TV. The solution? A Win 10 computer, an Arduino keyboard emulator, some neat code, and a relay switch.
Step 1: Gather Your Items
What you'll need:
- 4K TV with HDMI CEC support - this is important. It's a feature in HDMI that wakes the TV and turns it on as soon as it detects a signal. This enables you to only display the art when the switch is on. I have a 43" Vizio 4K smart TV that works fine.
- Computer with 4K (or at least HD) support running Windows 10 (although 7 and 8.1 would likely work as well, minus the command to put it to sleep, but an alternative is provided in the code file) - I used the NUC6CAYH
- Arduino CJMCU Beetle (Leonardo clone with an Atmel 32u4 processor) or any Leonardo or 32u4-based board like the Arduino Pro Micro/Mini (code may have to be adapted slightly for the latter). I bought mine here: http://www.dx.com/p/cjmcu-beetle-leonardo-usb-atm...
- switched outlet (or some type of on/off switch)
- 5V relay (or some type of on/off switch instead) and 5V power supply (USB charger works great)
- some wire and soldering iron
Step 2: Prep Your TV and Computer
First we need to enable CEC on the TV if it is not yet enabled.
Next, the computer needs to have the image you want to display in the Desktop and you need to turn off requiring login after waking from sleep (although you could modify the code to input the password instead). The file name used in the code is img.jpg but you can modify the code to suit your needs.
The computer also needs to be on/sleeping for this to work.
Step 3: Make the Arduino Keyboard Emulator
This is the cool part. The Atmel 32u4 enables you to use it as a USB keyboard emulator, which makes it perfect for utilizing the Keyboad.h Arduino library.
You only need to hook up 2 pins: pin 9 for one end of the switch and GND for the other (in my case, the leads go to the relay switch side). Hook up any type of toggle on/off switch to pin 9 and GND.
Step 4: Add the Relay and 5V Power Supply (optional)
Depending on your setup, this step is optional. The code will work with any on/off toggle switch (and can be easily modified for a momentary switch instead).
Wire the +/- terminals on the end of the 5V relay to the 5V (USB) power supply that goes to the switched AC outlet. Wire the Common terminal to the Arduino GND pin and the NC pin to pin 9.
Step 5: Upload the Code and You're Done!
Finally, upload the Arduino code to the Leonardo, put your computer to sleep, plug the Arduino in and flip the switch to see it wake the computer, wake the TV, and display a work of art, and then close the image and put the PC and TV to sleep when the switch is flipped to the off position. The .ino file is attached.
Note: after some further testing I discovered that this trick may not work on certain laptops that turn off USB power while in sleep mode (as my Asus Zenbook does). Since this instructable relies on the USB ports being used to wake the computer, the laptops that can only wake through the keyboard will not be woken up by the keyboard emulator. Your best bet is probably to use a desktop/mini PC or a NUC PC with CEC support.