2.0 KiB
2.0 KiB
ESP32 Bluetooth Relay Theatre Automation
Date: 2025-12-15 Project: moonlight-drive-in Status: resolved Tags: esp32, bluetooth, relay, pyserial, theatre-automation, lighting
Context
Jess wanted the drive-in to control physical power — lights and other theatre effects — alongside video playback. An ESP32 8-channel Bluetooth relay board (separate repo esp32-bluetooth-relay) was built, and this session added the Python side so the player can switch relays as part of a show.
Key Decisions
- ESP32 relay over Bluetooth serial (via
pyserialon the Windows host's BT COM port) — cheap, no extra network config, and independent of the LAN. - Separate
theatre_automation.pylayer between the player and the relay driver — keeps show logic (what switches when) out of the low-level relay module. - Relay control optional — the player still runs if the relay isn't connected.
- The earlier KAIYU Bluetooth LED controller route had been abandoned; smart plugs / USB relay boards were researched as alternatives, and the ESP32 relay was chosen.
Technical Details
esp32_relay_controller.py— relay driver (8 channels) over serial.theatre_automation.py— maps player events to relay actions.test_relay.bat— connection test script.- Dependency:
pyserial. - Relay configuration examples and a reference guide are in the repo docs.
Code Changes
esp32_relay_controller.py— new.theatre_automation.py— new.test_relay.bat— new.- Python requirements — added
pyserial. README.md+ integration guide + relay config examples.
Open Questions / Next Steps
- Confirm which relay channels are wired to which theatre devices and record the mapping in the relay config.
Artifacts
412fc3b— Add ESP32 Bluetooth relay controller Python modulebc3ab2f— Add theatre automation integration for ESP32 relay control- Related repo: https://gitea.hideawaygaming.com.au/jessikitty/esp32-bluetooth-relay