Internet-Controlled Lights Using Different Modules
2015-10-19 | By Francesco Truzzi
License: None Arduino
I’m starting to build internet-controllable lights using Arduino Yun, SeeedStudio’s LinkIt ONE, Arduino Uno, and Infineon RGB Lighting shield. The point here is that different modules can be connected to different light sources: analog LED strips, 3/10W RGB LEDs (with my custom driver) and WS2812B addressable strips. They should receive commands over TCP, thus controlled from any internet-connected device.
There will be a “controller box” as well, it will have some analog user controls, host web interface and choose which light client to connect. Available lighting modes will be: manual mode, fade mode, random mode, strobe mode.
Hardware
1. Arduino Yùn
It has a Linux side, which can be hacked quite extensively, and provides internet connectivity together with a real ATmega/Arduino side. Obviously, the two can communicate over serial connection with Bridge library. The Yùn will host the WebUI and possibly be the heart of the controller box, if the ATmega has enough memory and power.
2. SeeedStudio's LinkIt ONE
Not a lot of PWM outputs and analog inputs, but good processor and awesome Wi-Fi API, not compared to Arduino UNO ESP8266 module. LinkIt will be connected to some RGB strips, as I was provided with an I2C LED strip driver.
3. Arduino Uno
It will be connected to WS2812 or RGB strips and “WiFied” with famous ESP8266. These tiny little modules are becoming very popular and can be hacked down to the core.
4. Infineon RGB Lighting Shield for Arduino
XMC1202-powered board with great control features for analog strips: 700 mA current (with a peak of 1A!), wide (12-48V) input voltage, brightness color control and I2C interface.
Controller box
Three pots for color-choosing, a 2-axis joystick with an “Enter” button, “Back” button, and 128×64 pixels I2C display (not big, but packed with good libraries). All that will go into a wooden box.
Web Interface
It’s written in Python (CherryPy as backend) and Javascript and is hosted on the linux-side of the Yún. It can connect to any of the lights, so that you can control them as you want.
Python server and script ( Arduino communication)
These are running on the Linux side of the Yún and are called by Arduino sketch. There is a set of useful commands from the Bridge and Process classes, which can be used to run Linux commands from the Arduino.

