In 2016 I have started to develop a general wireless extension for Hyperion with a ESP8266. I needed that to put some LEDs under my bed and connect them to my hyperion ambilight.
Currently I also use it for my normal Ambilights behind my TVs to only have one Raspberry PI with two grabbers and to seperate the LEDs completely from my hifi-equipment, as the LEDs can behave like a big antenna.
In addition you can control the esp standalone with the hyperion app.
There already is a german tutorial here.
Hardware
You will need an ESP8266 or ESP32. This can be am embedden module on a NodeMCU or LOLIN32, too.
Obviously you will need some LEDs and a power supply. This should be similar to hyperion, so you should be familiar with that. You can use any LED that is supported within FastLED.
Software(Hyperion)
Now it depents. You will need your own Hyperion instance for every Wireless extension you use. If you only have one set of wireless LEDs you can just change the device in the hyperion configuration:
{
"colorOrder" : "rgb",
"maxpacket" : 1450,
"name" : "AmbiSZ-ESP8266",
"output" : "ESP8266:19446", ///ip-address of the esp8266/esp32
"protocol" : 0,
"rate" : 250000,
"type" : "udp"
}
If you have multple instances of hyperion you will need to forward the grabbers data from the first instance to the others.
Another example for that is found here.
The primary instance should be configurated to push the data to other instances. They can be on the same device or a different rapberry
The recieving instance (I will take the localhost/127.0.0.1 from the list needs a server config:
Software(Arduino)
Please always check the readme on GitHub.
To program your esp you will need a working Arduino build environment.
-Arduino IDE 1.8.5
Board libs for the esp8266/esp32
- Start Arduino and open Preferences window.
- Add the urls below to the Additional Board Manager URLs field. You can add multiple URLs, separating them with commas.
- Open Boards Manager from Tools > Board menu and find esp8266/esp32 platform.
- Select the version you need from a drop-down box.
- Click install button.
- Don't forget to select your ESP8266/ESP32 board from Tools > Board menu after installation.
a) esp8266 2.4.1 http://arduino.esp8266.com/sta…age_esp8266com_index.json
b) for esp32 https://github.com/espressif/arduino-esp32
Addition libs
- Start Arduino and open Preferences window.
- Open LibraryManager from Sketch > Include Library > Manage Libraries...
- Select the version you need from a drop-down box.
- Click install button.
a) ArduinoThread 2.1.1
b) ArduinoJSON 5.12.0
c) LinkedList 1.2.3
d) FastLED 3.1.6
e) Logging https://github.com/SciLor/Arduino-logging-library - install manually: Download zip from github and install via Arduino IDE, Sketch -> Include Library -> Add .ZIP Library
f) ESP32 Webserver https://github.com/nhatuan84/esp32-webserver - install manually (for esp32 only)
Now you can download my GitHub Repository to a location of you choice and open it via the Arduino IDE:
https://github.com/SciLor/Hyperion_LED-Controller
ESP Config
- Go to the HyperionRGB folder and create a copy of ConfigStatic.h.example. Remove the .example suffix
- Configure the ConfigStatic.h for your needs:
- Select your LED chip type. All LEDs of the FastLed libraries are supported
- Configure the used LED pins. You can also change the Pin Order. The NodeMCU order doesn't work sometimes to please also try the `RAW_PIN_ORDER``
- Define the number of used LEDs
- Define one of the standard modes which are active when your light is idle. Choose one from: OFF, HYPERION_UDP, STATIC_COLOR, RAINBOW, FIRE2012
- You maydefine Wifi configuration but you can also change it from the Webinterface
- Open the HyperionRGB.ino the Arduino IDE
- Compile and upload to your board
Now connect your LEDs and have fun!
Like my work spread the word.
http://www.scilor.com/donate.html