Tiffany's TV Remote operates a SuperSonic TV monitor and a Spectrum Cable box. Tiffany has control of these devices by using the Communicator on her laptop with a custom pop-up for the TV. For more information about Communicator, see the Tiffany tab on this website. There is a lot going on to make this happen, and we will try to explain:

 

When the TV pop-up opens on Tiffany's laptop, the TV Remote program opens at the same time, and the word processor program minimizes. Communicator scans the rows and then columns to tell the TV Remote program what to do. The On/Off, Vol +/- , and Channel +/- buttons work as they are labeled. The preset channel buttons send the actual channel number to the program. For example, the Food Network is channel 38, so Communicator sends out a 3 and an 8 .

The TV Remote program is Java based,  written in B4J (Basic for Java) by Anywhere Software. The B4J program then sends the information via WIFI to an ESP9266 programmed with an Arduino based software written in B4R (Basic for Arduino), also by Anywhere Software. The ESP8266 drives an IR LED, which then transmits the appropriate code to the TV and Cable box. In our example above, The IR LED will send the code for a 3 followed by the code for an 8. The TV Remote and TV pop-up will stay active until Tiffany clicks the Exit Button, at which time Communicator goes back to the initial pop-up, the TV Remote closes, and the word processor program maximizes, and receives focus.

The hardware involved is relatively simple, an ESP8266, a transistor driven IR LED, a Reset button, and a red and green LED (used for troubleshooting). The programming is a little more involved, and is attached below.