Introduction: Programmable Ambient Light for External Display
This project helps you setup ambient light for your external monitor or tv lets you control the following from the comfort of ANY device having a web browser and connected to your router.
- LED Colour
- Frequency of blinking giving a DJ effect
- Set different colors for each side of the display
WS2801 LED Strip - 1X
Raspberry Pi - any model
External Power Supply
Step 1: Configure You Pi
Boot up your PI and enable the SPI bus by following the below commands.
Enter your password if prompted. Now go the "Advanced Options" and enable the SPI.
After that, install the dependencies.
sudo apt-get update<br>sudo apt-get install python-pip -y sudo pip install adafruit-ws2801 sudo pip install flask
Step 2: Making the Connections
Now, its time to make the wire connections
Connect your external 5V supply + to the strip's 5V and connect the combine the power supply ground to PI's ground and connect it to strip's GND.
CK and SI will be connected to the PI's SPI interface.
CK / CI : Pin 23 (SCKL)
SI / DI : Pin 19 (MOSI)
Step 3: Test If Connections Are Working Fine
After all the connections are made, it is time to test our strip.
Create a new python file.
Now, paste the following code in it, and save the file. Replace the LED_COUNT value i.e. 32 with the number of LEDs you have on your strip.
import time import RPi.GPIO as GPIO import Adafruit_WS2801 import Adafruit_GPIO.SPI as SPI # Configure the count of pixels: LED_COUNT = 32 SPI_PORT = 0 SPI_DEVICE = 0 pixels = Adafruit_WS2801.WS2801Pixels(LED_COUNT, spi=SPI.SpiDev(SPI_PORT, SPI_DEVICE), gpio=GPIO) def rainbow_cycle(pixels, wait=0.005): for j in range(256): # one cycle of all 256 colors in the wheel for i in range(pixels.count()): pixels.set_pixel(i, wheel(((i * 256 // pixels.count()) + j) % 256) ) pixels.show() if wait > 0: time.sleep(wait) pixels.clear() pixels.show() rainbow_cycle(pixels, wait=0.01)
Your LED strip should now glow with all colors. If it does not, check your connections and make sure it is working before proceeding to the next step.
Step 4: Customising Colours and Blinking From Web
Now, it is time to set up a webserver to help us customize the strip colors and blinking from any device.
Clone the code.
git clone <a href="https://github.com/DefCon-007/instructable-led" rel="nofollow">https://github.com/DefCon-007/instructable-led</a>
Update the led count in the variable LED_COUNT in file "led.py".
Depending on how you stuck the LEDs to your display, update the following variables in "rgbStrip.py" file.
STRIP_EXTRA, STRIP_BOTTOM, STRIP_RIGHT, STRIP_TOP, STRIP_LEFT
Run the flask server
Now, open the browser on any of the devices connected to your router and enter the IP address of your PI with port 1234. For e.g. if the IP of your Pi is 192.168.1.120, you should open http://192.168.1.120:1234 and you should see a website similar to the image.
Now you can select a color for each side of your monitor
Participated in the
LED Strip Speed Challenge