ESP32 - IR Remote Server And Relay
Do you have several IR Remote controls but can never find the one you need? Do you (or that special person) want to put all of your AV equipment in a cabinet, or operate it from another room? If the answer to either of these questions is yes, then this project is for you.
Background
The IR Relay started as just that, a device to receive IR remote data and send it to a cabinet or somewhere else.
The IR Relay started as just that, a device to receive IR remote data and send it to a cabinet or somewhere else.
The ESP32 has so much power, why stop there? Why not make it an Internet, WiFi, remote server? Why not for 17 or more remotes, all accessible from anywhere in the home, on your smart phone, laptop, pad, or PC? No Apps, just a browser connection via WiFi is all you need to control your entertainment devices.
You can even create your own virtual remotes from physical remotes by calling up the Create Device web page, and entering: numbers of button rows, buttons per row, and the command texts, then reading the IR codes using the server.
Management
The device includes a File Manager, a Configuration page for adding and removing remote devices, an Info page giving information about the current build, RAM and FS resources, IP addresses, MAC, real time, etc., and, of course, the Create New Device Remote page used to set up your own remotes.
Technologies
The project uses a number of interesting ESP32, and related technologies:
- WiFi for connectivity,
- the ESP32 Web server to generate web content on-the-fly and deliver the pages to the client,
- the LittleFS file system stores HTML, .png image files, configuration data, etc.,
- a Timer Interrupt Service Routine, ISR, to perform IR timing for reading and transmitting.
- ESP32-targz compression and expansion library. Each remote device is a set of files, .html, .png, .txt, packaged in a tar.gz archive. Remotes created in the server can also be exported as .tar.gz files.
- NTP time to attach creation times to files.
- Base64 file packing, used to transport .png files from the browser to the server for remote device creation.
- It can be expanded to provide some support for KlikAanKlikUit devices.
Programming is in C/C++ in the Arduino IDE. Other supporting technologies include, HTML, CSS, and JavaScript, for web pages and client side programming.
Everything fits into a 15 × 9 × 2.5 cm box, power comes from a USB supply, possibly from the TV or another piece of existing equipment.
Resources
The IR Remote Server And Relay uses an ESP32-S3-DevKit-C board, it has been tested with the N32R8 and N8R2 models.
With the N8R2 model, 8 MB Flash, and 2 MB PSRAM, and 17 remote controls installed the info page gives the following information:
- App = ESP32IRRelayV8-03.ino
- Build time = Jan 10 2026 17:40:21
- Connect using: http://buttons2.local/
- Now is : 2026-01-10 17:59:24
- Base mac address: 3C:84:27:DC:C9:14: 0: 0
- Server IP address: 192.168.1.148
- Client IP address: 192.168.1.193
- CPU Frequency = 240 MHz
- psram free = 1566880 Bytes
- psram used = 530272 Bytes, 25% of: 2097152 bytes
- free_heap_size: 1675124
- free_internal_heap_size: 100484
- minimum_free_heap: 1590856
- LittleFS used: 1708032 bytes, 42% of: 4063232 bytes
So, the capacity is not all used up yet!.
There is about 5000 lines of c code and comments in the project, plus JavaScript, and HTML, and resources in the form of remote device targz packages, png files, etc. I am wondering how best to present the information, if there is any interest. If you are interested in seeing more of the nitty gritty, please get in touch, and let me know what you would like to see.
Andy 202060110
There is about 5000 lines of c code and comments in the project, plus JavaScript, and HTML, and resources in the form of remote device targz packages, png files, etc. I am wondering how best to present the information, if there is any interest. If you are interested in seeing more of the nitty gritty, please get in touch, and let me know what you would like to see.
Andy 202060110

Diskussion (0 Kommentare)