The Problem
I have a mini split AC in my house, but during the summer it gets brutal outside — easily 100°F+ here in Southern California. My dog stays outside during the day, but when it’s that hot, I don’t want her out there. The problem is, if I bring her inside, the house isn’t much better unless the AC is running. And I’m not about to leave the AC blasting for 8+ hours while I’m at work just to keep the house cool for a few hours in the afternoon.
What I actually need is a way to turn on the AC remotely from my phone while I’m at work, let it cool the house down before I bring my dog inside, and then shut it off when it’s cool enough so I’m not wasting power all day. I also want to see the temperature inside the house in real time so I know when it’s actually comfortable.
The Plan
The mini split uses an IR remote — no WiFi, no smart home integration, just a basic infrared signal. So the solution is to build a small device that can:
- Connect to my home WiFi and be reachable from my phone over the internet
- Blast IR signals that mimic the mini split’s remote control
- Read the room temperature with a sensor so I can see what it’s like inside
- Be controllable from anywhere — from work, from the car, wherever I have cell signal
Hardware I’m Planning
- ESP32 — WiFi-connected microcontroller, the brain of the whole thing. Has plenty of GPIO and runs on 3.3V
- IR LED + transistor driver — To transmit the AC remote signals. The IR LED needs a transistor to push enough current for reliable range across the room
- IR receiver module (VS1838B) — To capture and decode the existing remote’s signals first, so I know exactly what codes to transmit
- DHT22 or SHT30 temperature/humidity sensor — To monitor the indoor conditions and report back
- 5V USB power supply — The device will sit plugged in near the AC unit permanently
Software Approach
The ESP32 will run a lightweight web server (probably using ESPAsyncWebServer or just the built-in WiFi server) that exposes a simple API:
GET /status— Returns current temperature, humidity, and AC state (on/off, last command sent)POST /ac/on— Sends the IR “power on” sequence with a target temperaturePOST /ac/off— Sends the IR “power off” signalGET /temp— Returns just the temperature reading
For remote access from outside my home network, I have a few options. Since I already have a VPS, I could set up a reverse proxy or VPN tunnel back to the ESP32. Or I could use MQTT with a cloud broker so the ESP32 subscribes to a topic and I publish commands from my phone. MQTT is probably the cleaner approach since it handles the NAT traversal problem naturally and I can build a simple dashboard or even use an existing MQTT app on my phone.
IR Signal Capture
Before I can control the AC, I need to decode what signals the remote actually sends. The plan is to use the IRremoteESP8266 library to capture the raw signal timings from my existing remote, then store those codes in the firmware. Most mini splits use either NEC, Daikin, Mitsubishi, or Fujitsu protocols — the library supports all of them.
The workflow will be:
- Point the existing remote at the IR receiver module
- Press the button I want to capture (power on at 72°F, power off, etc.)
- Record the raw timing data
- Store it in the ESP32 firmware as a constant
- Replay it through the IR LED to control the AC
Temperature Monitoring
The DHT22 gives me temperature and humidity readings that I can poll every 30 seconds or so. I want to log this over time so I can see trends — like how fast the house heats up after I turn off the AC, or how long it takes to cool down from 90°F to 75°F. This data will help me figure out the optimal schedule for turning the AC on and off.
Long term, I could even automate it: if the temperature goes above 85°F, turn on the AC automatically. If it drops below 74°F, shut it off. That way I don’t even have to think about it.
Why Not Just Buy a Smart IR Blaster?
Yeah, there are products like Switchbot and Broadlink that do exactly this. But I’m an embedded engineer — building it myself means I understand every piece, I can customize it however I want, and honestly it’s a more fun project than clicking “add to cart.” Plus I get to integrate it directly with my own server infrastructure instead of depending on someone else’s cloud.
Current Status
This is still in the planning phase. I have the ESP32 and IR components on order. Next steps are capturing the remote signals and getting a basic web server running on the ESP32 with temperature readings. I’ll update this post as the build progresses.