ESP8266 – WiFi controlled aircon remote
How to use an ESP8266 as a remote control for aircons (and maybe other appliances).
In my other post Solar panel monitoring I shared my small project to monitor the production of our solar panels. As we have to be very careful not to produce more energy than we consume, the next logical step is to automatically switch on appliances in the case of energy over-production.
This post is about my small project to automatically switch on the aircon if enough energy is produced by the solar panels.
To achieve this an ESP8266 module is reading the power consumption every minute from the spMonitor device (see above link for details what the spMonitor device does).
If the solar panels produce 300 Watt more than the house is consuming, an aircon is remotely switched on in FAN mode. In this mode my aircon uses around 100W, so the excessive energy is consumed.
If the over-production of energy reaches 500W the aircon is switched from FAN mode to COOL mode to consume the excessive energy.
If the consumption of energy reaches 200W higher than the production of the solar panels the aircon is switched off again.
During a cloudy day the production levels of the solar panels can vary every minute. To avoid repeated on/off switching of the aircon (which is of course not healthy for the appliance) the switching levels must be valid for at least 10 minutes.
The above algorithm is not perfect yet, but I am have it implemented now for more than a week and it works well so far.
All software sources and all schematics are available in my Github repository.
I use specific features of the Adafruit HUZZAH ESP8266 module in this instructable. If you plan to build this system with an ESP8266 module from another supplier check carefully that it is compatible with the power supply I use and with the voltage level of the RXD pin. The Adafruit HUZZAH ESP8266 module accepts 3.3V to 12V power supply and has a level shifter on the RXD pin. If your ESP8266 module doesn’t have these features you will definitely destroy your module!
The components used in this project:
For the remote control:
- Adafruit HUZZAH ESP8266 (or similar ESP12 breakout)
- NPN transistor (I took a S9014, because it was in my storage)
- 330 Ohm resistor
- 2x IR LED e.g. Vishay TSUS4300
To receive the actual energy production value:
- My solar panel monitoring system based on an Arduino Yun
For recording the IR commands from the aircon remote controls:
- Arduino UNO (for recording the IR commands and used as a USBtoSerial converter to program the ESP8266)
- IR receiver (for recording the IR commands). I used a Vishay TSOP58438, but any other IR receiver should work as well.
Beside of the electronics you need of course the environment to program the Arduino Uno and the ESP8266. I use for both the Arduino IDE V1.6.7. The IDE supports natively the Arduino Uno. For the ESP8266 you need to add additional boards with the board manager. Adafruit has a good and easy to understand tutorial how to add support for the ESP8266 to the Arduino IDE: Using Arduino IDE.
Additional libraries needed for the Arduino Uno:
Additional library needed for the ESP8266:
Please use the standard procedures to add these libraries to the Arduino IDE.
All software sources and all schematics are available in my Github repository
On the next page I explain how to record the IR signals from your existing remote.