A smart universal remote system built with ESP32, Firebase, and React.
- System Architecture - System overview and design principles
- Receiver - IR signal learning
- Transmitter - IR signal transmission
- Learning UI - Learning mode interface
- Remote UI - Remote control buttons
- Designer UI - Layout editor
- Chatbot UI - AI assistant
- VS Code with PlatformIO extension
- ESP32-S3-DevKitM-1 (or compatible ESP32-S3 board)
- IR receiver module (TSOP38238) on GPIO 5
- IR LED transmitter circuit on GPIO 4
- Copy the example config:
cp esp32/include/config.example.h esp32/include/config.h
- Edit
esp32/include/config.hwith your WiFi and Firebase credentials
Hardware tests validate individual components before running the full production build. Run them from the esp32/ directory.
Important: Close any open Serial Monitor before uploading. The upload will fail if the COM port is busy.
Sends IR signals from the transmitter and verifies the receiver decodes them correctly. Tests the full encode → transmit → receive → decode pipeline.
Setup: Point IR LED (GPIO 4) at IR receiver (GPIO 5), a few cm apart.
cd esp32
pio run -e ir_loopback_test -t upload
pio device monitorPress any key in the serial monitor to run all tests. Results print automatically. Press any key again to re-run.
Captures and decodes IR signals from any remote control.
pio run -e ir_receiver_test -t upload
pio device monitorPoint any TV/AC remote at the IR receiver and press buttons. Decoded signals appear in the serial output.
Sends predefined IR commands to control a real device.
pio run -e ir_transmitter_test -t upload
pio device monitorPoint the IR LED at a TV/device. Press BOOT to cycle through NEC → Samsung → Sony test signals.
Builds and uploads the full embedded software with receiver, transmitter, and Firebase integration.
cd esp32
pio run -e production -t upload
pio device monitorRun protocol encoder/decoder unit tests natively (no hardware needed):
cd esp32
pio test -e native_test