The popularity of the ESP8266 WiFi module has a lot to do with its ability to inexpensively connect to the Internet. However, [hwhardsoft]’s stretch limousine environmental control system explores another use for these modules: a simple way to tie together disparate systems with a common user interface.
On a basic level, the problem is one we’ve all faced: multiple devices with multiple control interfaces create an awkward user experience. Have you ever worked in an office with 6 brands of air conditioner requiring 6 different remotes? Because of its low-cost, support for Wi-Fi, serial, and GPIO, ESP8266 boards are a reasonable candidate to create a unified control system for multiple devices. This is even more true for the ESP32, as it adds Bluetooth support.
[hwhardsoft]’s use case is fairly straightforward. The limousine (a Lincoln stretch) has multiple LED lighting controllers, climate control, and a laser projector. This was not exactly a smooth user experience, so [hwhardsoft] tied all the controls to two slick touchscreen interfaces (presumably one for the driver and one for the passengers).
Each touchscreen sends commands over Wi-Fi using UDP to a control board that switches relays to control the different devices, as we’ve seen previously.
While relays are arguably not the ideal solution here, these control boards already existed and were functional, so it would have been wasteful to throw them out. An easy improvement suitable for future projects would be to use NPN transistors to simulate button presses on the remote controls. This works quite well and lowers cost, power, and parts count, while being faster, more reliable, and quiet.
If you wanted to build something similar in your home or office, but want to use an Android smartphone instead of a touchscreen, the Kivy Python module allows you to do just that. It’s quite easy to set up a simple interface with buttons, dropdown lists, and text inputs that send data to an ESP8266 over UDP.