An ESP8266 WiFi Remote to Control All of the IoT
It wasn’t long ago that the ultimate in remote control technology was something like a Harmony remote. Those kinds of universal remotes could control a wide range of devices, but mostly did so through IR codes.
Universal remote control manufacturers have been trying to keep up with the IoT craze, but the wide variety of IoT ecosystems have made that difficult. If you hate having to use voice commands with a home assistant, then you could follow Justin of pseudo-server.com’s lead and build an ESP8266 WiFi remote to control all of your IoT devices.
This remote is designed to control devices via MQTT messages. That works for a lot of IoT devices, but not all of them. That said, if you’re the type of person who would build a remote like this, then you probably also purchased IoT devices that are compatible with multiple ecosystems, and that probably includes MQTT-based systems like Home Assistant.
This project doesn’t require any unusual parts or custom PCBs, so you can make your own remote for less than $30.
The primary components are an ESP8266 WiFi-equipped board, a LiPo battery charger module, a 3.7V 1200mAh LiPo battery, a small protobard, six through-hole buttons, RGB LEDs, diodes, and resistors.
The only complex portion of the wiring is the button matrix, which lets you scan through all the buttons with the minimal number of GPIO pins. The RGB LEDs are just there to be used as indicators.
Justin has provided all of the code for the ESP8266, but you will need to configure it to work with your system. It’s designed to work with Home Assistant, which is open-source home automation software that relies on MQTT messages. Five of the buttons are available for commands, but you can also setup permutations of those buttons.
For example, you can hold down buttons 2 and 3 to turn on your living room light and buttons 3 and 4 to turn on your bedroom light. The result is an affordable WiFi remote for controlling your smart home without resorting to something like the Amazon Echo.