Remote

Light

As the months go by, more and more tools and appliances are gaining internet connectivity to improve our daily lives. As people are connecting more and more of these ‘things’ at home, in the car, and in business environments to the internet, the need arises to connect devises at a lower cost. There will come a time when every new product will be able to connect to the internet, but until then, there needs to be a way to join unconnected ‘things’ to the internet that are too pricy to replace with updated versions. This project connects a previously unconnected LED light strip to the internet.

Hardware

A Raspberry pi is a small affordable microcomputer which is typically used for programing and development purposes, and therefore perfect for this project. The pi’s open hardware platform includes an Ethernet port and GPIO pins that can be used for connecting to the internet and attaching other sensors. The light strip’s remote uses infrared technology to communicate with an IR receiver which is attached to the lights themselves. The IR LED in the remote sends a series of infrared pulses, separated by specific amounts of time apart from each other, forming a code to perform different functions (on/off, change color). In order to communicate with the lights, the pi must capture these pulses, interpret the codes, and send them to the lights themselves. This can be accomplished using an IR LED, IR receiver, transistor, and resistor. The IR LED can then be connected directly to the GPIO pins on the pi to transmit the codes, but they provide too weak of a signal to successfully transmit either over a long range or through interference. However, using a transistor circuit, the current can be amplified to send a stronger signal.

Software

The software used to accomplish this project is all free and/or open source. The pi runs off of a version of the Linux operating system called Raspbian. This provides a graphical user interface, although everything can be done through the command line. The most important package contained in this project is LIRC (Linux Infrared Remote Controller). LIRC allows both the decoding and the sending of infra-red signals emitted by remote controls. In addition to LIRC, the lirc_web and remot3.it packages will be used to send the codes over the internet.

But Why?

RemoteLight is a forward-thinking system that provides a cost-effective method of connecting a variety of appliances to the internet, which in turn enables an individual to control the item while away from the physical device without requiring it to be modified or replaced. Many appliances can be controlled by the use of a remote such as a TV, cable box, lights, HVAC system, etc.. Almost all remotes utilize infrared light (IR) to communicate with the devices they control. Creating a system that can replicate these commands through the use of its own inferred LED not only replaces the need for multiple remotes, but also connects these devices to the Internet of Things. As companies move toward a connected society, it will become a common standard for all electrical appliances to be connected to the internet. By using a Raspberry Pi, connected with an IR transmitter and receiver, this project achieves internet connectivity with older unconnected RGB LED lights, and can be applied to other appliances at home and throughout the work place as well.

Set Up

The goal is to be able to power on/off, change color, fade, and flash the strip over the internet. Currently this is only possible using a close-range IR remote, but this project will allow these changes to be made from a web browser anywhere in the world with an internet connection. Using the light strip as a test case, this method of connecting devices to the internet can be directly applied to any other IR remote controlled device.

LIRC

One of LIRC’s main features that is utilized in this project is its ability to decode IR signals that come through the GPIO pins connected to an IR receiver, which are then translated into excitable codes. The second use of LIRC is to send IR signals back out of the pins and to the IR circuit in order to transmit these codes. In order for the pi to be able to send the codes, the light strips’ remote first needs to be decoded. To do this, LIRC reads the different infra-red pulses sent by each of the remote’s buttons. Once complete, it creates a configuration file of the rate of the IR LED pulses that are sent from the remote, so that individual buttons can be programmed.

Web Access

LIRC allows for sending and receiving IR codes, but it is only accessible through the command line. To fix this and control it through the internet while away from the pi, two things are needed. The first is a package called lirc_web; as its name insinuates, this will allow for sending the codes through a HTML web interface. Unfortunately, it only can be used on the local network. To fix this and host the site on a public webpage, the remot3.it package comes into play. This works as a proxy server so that the pi can tunnel a connection to remote3.it, and the end user establishes a connection to remot3.it with a provided URL. This makes port forwarding unnecessary (if you don't have admin access on the network), so the pi doesn’t need to host its own site.

After I recorded the remote's codes using the IR receiver, I moved the components used to emit the codes from the breadboard to a circuit board.


I presented this along with my research at the University of North Georgia's annual research conference found here.