Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/skypanther/PiLit
Raspberry Pi-based holiday lighting system
https://github.com/skypanther/PiLit
Last synced: 8 days ago
JSON representation
Raspberry Pi-based holiday lighting system
- Host: GitHub
- URL: https://github.com/skypanther/PiLit
- Owner: skypanther
- License: mit
- Created: 2016-11-11T21:43:15.000Z (about 8 years ago)
- Default Branch: main
- Last Pushed: 2024-10-25T00:02:42.000Z (20 days ago)
- Last Synced: 2024-10-26T12:43:24.460Z (19 days ago)
- Language: JavaScript
- Homepage:
- Size: 64.5 MB
- Stars: 17
- Watchers: 5
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: readme.md
- License: LICENSE
Awesome Lists containing this project
README
# PiLit Holiday Lighting System
The free, open source, DIY holiday light show animation system.
![My 2019 lights](images/christmas2019.gif)
*My 2019 Christmas lights, powered by PiLit*
There are lots of commercial lighting systems and software. Most are more expensive than I care to pay. So, I built my own.
Warning: Building a PiLit system involves wiring and working with wall/mains voltage. You do so at your own risk. If you're not qualified to work with electricity, hire someone who is. Please be safe!## Overview
PiLit at a high level is:
* A show control application runs on a Raspberry Pi
* Which sends MQTT messages across the network
* To "nodes" which are the lighting controllers in the yard.
* The nodes are either ESP8266/ESP32 microcontrollers or other Raspberry Pis.
* The nodes control RGB pixels (aka neopixels) or relays to turn on/off light strings, spotlights, etc.PiLit components:
* pilit_player -- plays the show script
* various nodes:
* pixel_node: Arduino/ESP8266 C++ controller for RGB "neopixels"
* onoff_node: Arduino/ESP8266 C++ controller for controlling a single relay (e.g. to turn on/off a spotlight)
* multi_relay: A Python script meant to run on a Raspberry Pi and controller a multi-channel relay (e.g. a Sainsmart 16-relay board)
* PiLit GUI - A show generation web app to make creating show sequences relatively easy![My multi relay controller](images/whole_setup.jpg)
*My multi-relay node*
![PiLit GUI](images/pilitgui.jpg)
*PiLit GUI*
## Requirements
If you want to use this project for yourself, you will need some or all of the following:
* A Raspberry Pi (with WiFi) or other computer capable of running a Python 3.6+ script to use as your central controller.
* ESP8266 or other WiFi-enabled Arduino-compatible microcontrollers for controlling RGB pixels or relays.
* A Raspberry Pi (with WiFi) and a multi-channel relay board to control various standard holiday lights.
* A bunch of outlets, electrical boxes, wire, connectors, etc.
* Something waterproof to house the final product since it will sit outside for the holiday season. I use various sized storage tubs.## Usage
You will need programming, electronics, and electrical skills to implement PiLit. This is a DIY system, not a pre-built, out-of-the-box solution. Timing is *not* precisely controlled, so you'll be unlikely to create a whole-yard, synchronized Neopixel extravaganza.
### Show creation
See the pilitgui folder for information on the show creation tool. While in theory, it should run on any platform, I've tested it only on my Mac.
### Running a show
See the pilit_player folder for information on the show runner. You will need a current Python installation and command-line skills to run the player.
### Nodes
See the nodes folder, and its children, for information on building, using, and customizing the nodes. You will need at least basic Arduino skills to load the sketches. You will need electronics and electrical skills to build the nodes.
# License
MIT License
Copyright (c) 2016-2023 Tim Poulsen