The Easy Solution
I live in a community of older homes and a fortunately defunct HOA. My house is on a corner entrance where a block wall with part of the community name was built. Over the years the sign letters degraded, fell off, broke and otherwise went to hell. I replaced the letters with something that should last for the remainder of my lifetime, but at night the letters are difficult to make out and several people said it would be nice to have the letters lit up. I could have planted a couple of these solar lights, but the inner nerd in me vetoed that idea.
The Final Result
Instead of a dull solar light costing around $30, why not jazz it up for a mere $200 plus? You can choose an effect based on the season or holiday. There are dozens of effects to choose from with each one customizable.
While developing this project I learned a great deal about the open source project called WLED and putting together a working remote solar project.
To install WLED simply go to https://install.wled.me/, plug an ESP32 (not ESP-CAM) into a USB port on you computer and click "Install". You may have to press the "Boot" button on the ESP32 when starting the install process. Two minutes later it asks for your wireless SSID and password and you're done.
The solar setup is a bit more involved. I learned that the Addressable LED Strip Lights consume a bit of power even when all the LEDs are turned off. My strip is 3 meters long and includes 90 LEDs. To save power, configure a GPIO pin on the ESP32 (I used GPIO 21) to control a relay. Do this from the WLED web page settings/leds and enter the pin number at "Relay GPIO". I used this pin to control one of the relays on a 2 channel relay board. When you turn the LEDs on from the WLED web page, the relay engages and provides power to the LEDs. BTW, I used GPIO 16 for the Data line on the LED strip.
You should never discharge a Sealed Lead Acid (SLA) battery below 50 percent State of Charge (SOC) so to prevent damage to the batteries I use a Low Voltage Disconnect module. The one I used: Digital Low Voltage Protector Disconnect Switch is set to disconnect at 12.3 volts and reconnect at 12.7 volts. Note: If you use a different type battery, the voltages programmed into the Low Voltage Disconnect module will be different.
The LED strips I used are IP67 waterproof strips and use 12 volts as power. Here's the link: WS2815 Programmable Digital LED Pixel Light Strip. There is a warning to not exceed 12 volts for the strips, but the battery voltage can vary from a low of about 12.2 volts (considered to be under 50 percent SOC for SLA) to a high of about 14.5 volts while charging. I didn't want to risk damage to the LEDs so I run the power through a DC Voltage Reducer Converter.
In summary, run power from the positive terminal of the batteries, through an Inline Fuse, through the relay, into the Low Voltage Disconnect module, through the DC Voltage Reducer Converter then to the LED strip. This configuration should protect the batteries and the LED strip.
WLED includes a schedule you can configure under /settings/time. Since I'm running an instance of Home Assistant, I control the turn on and off times from there. There is a Home Assistant integration called WLED that discovers all the WLED instances on your network and then an automation can be set created. Below is my YAML automation code that controls my WLED:
Home Assistant Automation for WLED (click to expand)
alias: Ranches Sign
- platform: sun
- platform: time
- condition: trigger
- service: light.turn_on
- condition: trigger
- service: light.turn_off
Parts used in this project :
Renogy 50 watt Panel
Satellite Dish Antenna Mast
Renogy Solar Charge Controller
PV Disconnect Switch
MC4 Male/Female IP67 Waterproof Solar Panel Cable Connectors
Low Voltage Disconnect Module
2 Channel Relay
WS2815 Programmable Digital LED Pixel Light Strip
LED Channel System with Milky White Anti-UV Sun Protection Cover Lens
1/2-inch Braided Cable Sleeve