Skip to content

ciberp/esp32-light-controller

Repository files navigation

esp32 light controller

An open source arduino based firmware for esp32. Compiled with arduino ide with esp32 core 2.0.5.

Beat detection is made by using code from Damian Peckett https://create.arduino.cc/projecthub/mamifero/arduino-beat-detector-d0a21f

Light controller is using 12 gpio outputs or 1-12 lights can be connected to it. Number of outputs can be easily extended just add gpio pins to the array pin_num[], pin_name[] & pin_func[] in light.ino. The outputs or lights can flash to the beat of the music or they can be programmed into one of the 8 flashing programs. The flashing program can be triggered by a beat of music, a time interval or an http call. The state of each output can be set as: ON, OFF, PROGRAM, RAND SPD, BEAT or HTTP (see screenshots below).

  • ON output stays in HIGH state

  • OFF output stays in LOW state

  • RAND SPD output is randomly flashing according to the selected rate of slider setting

  • PROGRAM output is flashing according to the selected program P1 to P8

  • BEAT output is flashing to the beat of the music

  • HTTP output is flashing on http call (http://ip_address/trigger)

  • BEAT programs are triggered by beat of music

  • TIMER programs are triggered by time interval, speed is setted with this slider

  • HTTP programs are triggered on http call (http://ip_address/trigger)

  • Slider RAND SPD speed of random blinking for individual output

  • Slider BEAT TRESHOLD setting for level of music beat detection

  • Slider BEAT TRANDLY pulse length adjustment for the program when beat of music is detected

Schematics

esp32_connections

board

Working example (video)

light.mp4

Music from Paul Kalkbrenner - Live at Tomorrowland 2022 (https://www.youtube.com/watch?v=fa2N9OBK8v4)

Flashing the firmware ESP32 Flash Tool

Download light_v1_esp32.bin and flash :)

After flashing esp will turn on soft AP with ssid light and psk password. Default creds for settings are user admin and pass password.

Screenshots

(http://IP_address/) web gui

settings (http://IP_address/settings) web gui settings

TODO

Use websockets with async http server and polish web gui. Remove timezone, CSS and syslog from settings, not needed...

About

esp32 light control

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages