One room in the house was always too hot. Rather than buy a $90 smart register, I built one: a servo to swing the louvers, a tiny Wi-Fi microcontroller to drive it, a temperature sensor to know what the room's actually doing, and Alexa to run the whole thing by voice. It's the same electronics skill set as an RC plane — a receiver, a servo, and a little wiring — pointed at the house instead of the sky.
| Part | Job |
|---|---|
| Wemos D1 Mini (ESP8266) | The brain — a tiny Wi-Fi microcontroller that runs the code and talks to the network. |
| Hobby servo | The muscle — swings the vent louvers open and closed. The same servos that move RC control surfaces. |
| DHT22 sensor | The senses — reads the room's temperature and humidity so the vent can react to real conditions. |
| Sinric Pro | The bridge — the free service that makes an Alexa "open the vent" command reach the ESP8266. |
Commercial smart vents exist, but they're expensive and locked to their own app. The core of one is embarrassingly simple: something to physically move the louvers, and something smart enough to be told when to move them. If you've wired an RC plane, you already own the mental model — a servo is a servo whether it's moving an elevator or a vent flap, and a microcontroller is just a receiver with Wi-Fi instead of a radio link.
The controller is a Wemos D1 Mini, a thumb-sized board built on the ESP8266 Wi-Fi chip. It's the workhorse of hobby home-automation: cheap, programmable from the Arduino IDE, and Wi-Fi is built in, so it can join your network and take commands with nothing else attached. It runs the sketch that reads the sensor, drives the servo, and listens for commands from the cloud.
A standard hobby servo — the exact part that moves a rudder or aileron on an RC plane — does the physical work. Its arm links to the vent's louvers so that rotating the servo swings them from fully closed to fully open. Servos are perfect here because they hold a commanded position and don't need a limit switch: tell it "open" (one angle) or "closed" (another) and it goes there and stays. Mounting it so the geometry gives full louver travel without straining the servo is the fussiest part of the mechanical build.
Why it fits: the louvers are swung by a standard hobby servo — the exact part that moves a rudder or aileron — and a 5-pack covers this build with spares left over for a plane.
The spec that matters: a servo holds a commanded angle with no limit switch needed — "open" is one angle, "closed" is another, and it stays put.
If the linkage binds at either end of travel: the servo buzzes and strains holding position — set the open/closed angles so the louvers never fight the geometry.
A DHT22 temperature-and-humidity sensor lets the vent know what the room is actually doing, so it isn't just a dumb remote-controlled flap — it can report the temperature back to you and, if you want, decide to open or close on its own. It's a three-wire sensor (power, ground, and a single data line to the ESP8266) and there's a well-worn Arduino library for reading it.
Getting Amazon Alexa to talk to a homemade gadget is the part that sounds hard and isn't. Sinric Pro is a free service that acts as the middleman: you register a virtual device in Sinric, enable its Alexa skill, and add a matching bit of code to the ESP8266 sketch. Now when you say "Alexa, open the vent," Amazon passes it to Sinric, Sinric passes it to your board over the internet, and the servo swings. It's the cleanest way to make a DIY device appear to Alexa as if it were a store-bought smart plug or switch.
This isn't an airplane, but it's built with airplane skills — soldering headers, driving a servo, and thinking about mechanical linkage travel. If you're getting into microcontroller projects, the soldering gear I use on RC electronics is exactly what you want for wiring up an ESP8266, and the habit of checking servo travel and direction carries straight over from wiring a plane. Same tools, same servos, different destination.
Why it fits: the soldering gear I use on RC electronics is exactly what you want for wiring up an ESP8266 — headers on the D1 Mini, three wires to the DHT22, leads to the servo.
The spec that matters: adjustable temperature with a fine tip, so small board pads get soldered instead of cooked.
If you leave the header pins push-fit instead of soldered: loose connections in a floor vent shake free — solder it once and it stays fixed.
Nothing to correct yet — this write-up matches the video. Spot something off? Tell me and I'll fix it.
Auto-transcribed from the video, so expect the odd mis-heard word. Here so you can search or skim what was said without watching.
Today we are going to be making a smart automatic register for your home. Music Hey guys welcome back. So I've had this problem in my room for a long time where if I leave my register then open it gets really hot in the room and if I leave it closed it gets very cold in the room. So it doesn't regulate through the house very well so I'm going to fix this today. So I'm going to take my floor vent like this and I'm going to make, I'm going to add a servo to it so that it can automatically open on its own.
This is going to be controlled with a little Wi-Fi controller so that I can upgrade this in the future. So I can add things like a thermostat so that I can set the temperature I want in the room through my phone and I can also see what temperature it is in the room from anywhere in the world over Wi-Fi. So I would also be able to turn the switch on and off automatically so I can open and close the register. So let's take this and get the code written for it and we can also get the servo installed into our floor register and we can get it all working. Oh hi there!
If you guys are liking this video make sure you hit that like button and also subscribe to my channel so you can follow more of my videos. So here I am adding a 16 volt 100 microfarad capacitor here. It should be about 5 volts but a little bit over won't hurt it and this is what I have handy. So this just helps with keeping the data going through it smooth and that's not a good explanation but it's just a good idea. Okay so all the code is working now so I'm going to show you guys a little bit of the code in here.
I'm just going to talk through it a little bit. I'm not a code expert so I'm going to do my best to explain that. So looking through here we have starting off with our... So hashtag include here we're just including all the libraries that we need for this code so we can just... these are going to be referenced later in the code so that's why they're in here initializing or just saying that they're going to be in here so that Arduino knows that it needs to pull them from our library stored on our computer.
So our ESP8266 that's our board that's the stylo board so we just need to get our API keys so what I'm using for this is sinerick.com. So sinerick is just an in-between between our Alexa and our microcontrollers so our Wemos in this case so we need our API key right here and here is our device so we can just take and import that API key and we can put in our password so we can put in our SSID for internet and our password and then the rest of this should stay the same besides here's our digital 4's our D4's our port you have to put D4 on online. So then scrolling down here it's initializing URL sinerick I don't think this section of code is actually being used it was just a test thing that it didn't take out so you could technically take that out but I don't think it really matters to be in there. DHT is our sensor is our temperature sensor that we have right here this is the DHT yeah this is the DHT 22M2302 micro little sensor here and I have the temperature set to 80 degrees right now so we can auto so this is for the portion that we're using to use the app on our phone the Alexa app and we can turn it on and off there but I'm actually not using that because there's compatibility issue that it won't let me do the temperature control and the app control at the same time so again this part of the code is really not being used but it doesn't hurt that it's there so if you're not familiar with writing Arduino code the when you even open up the Arduino for your for a new code it opens up with the void setup in the void loop so as you see here you put your setup code here and your main code here so those are the two things we need for it to work so we are going to so you see here is our void setup and this is the initial things that it does when it sets up for when it turns on so then it does all this stuff it checks to the wi-fi so this is just pulling from that ssid and my wi-fi password that we put in up there so up top that was just telling it the information and that just like it makes it a little bit more simple so you wouldn't have to hunt through all these spots and put it in um you can just put it in that one spot and then you can just say this is my my wi-fi password so waiting for wi-fi to connect um this is just like some scripts that serial print that tells you um like what's going on and stuff like that so dht so i have so the heartbeat here is the one setup so this is um to like keep it activated i guess i'm not completely sure about that but they said that the heartbeat was um somebody else that i was looking at they said that the heartbeat was to keep it so that it doesn't like shut down or something like that um and it's kind of important though so i set up this void loop part and then void loop temperature so my void temperature is my main program that i kind of added in here so so i wrote this part so that would tell me in our um serial manager here our temperature and then we would be able to know when it's up to that a degrees for testing purposes kind of not completely necessary in real life because we don't actually have a screen plug into this so the get temperatures actually like getting temperature from the sensor itself so it's going to get the Fahrenheit um degrees Fahrenheit and then so i have it saying if the Fahrenheit current temperature is greater than the set temperature which is referring to that 80 degrees or that 76 i think we changed it to a previous in the code it's going to servo attach and then it's going to write to the servo that it's going to go to 100 degrees so we're actually going to have to adjust this later so that we can get our on and off position so that it doesn't go too far and not go far enough to get it to open and close properly so um yeah so we have one for if it gets above 80 degrees which is our set temperature and then we have another one if it gets below our 80 degrees is their set temperature there so then it does all this it goes to the position that we want it to so we have it going to six degrees on the other end so then we have this is actually not being used so i'm actually going to leave those because i was for testing um float get temperature this is all again i think this is just for testing so we really don't need any of that but again it really doesn't hurt to be in there so yeah so that's pretty much our basic codes i just want to show you that and explain it a little bit do my best to explain it i think it's really important when you're writing code to have it explain to you because it's kind of difficult sometimes to understand what's going on with the code so i just wanted to show you guys and for those that um are just interested in the final product i will be listing this code in the description below and you can check it out i don't know how i'm gonna upload it i'll probably put it in like a google drive or something like that or maybe i'll get a github um so let's get this all hooked up for the final version and let's get it um so that we can test it out and then we'll go install it if we just melt that up a little bit we can see our temperature rose to our above our 76 and our vent then closed because we don't want it any warmer in the room so that's all working flawlessly so hopefully um when it goes back down 76 it'll open up again and it should work okay so it looks like that's looking great so let's go install it and see how it works we have our microcontroller here we can just plug in our sort of for our vent here and we can put our vent on and then we have our and then we have our sensor right here that we can stick um somewhere a little bit further away from here so i'm just going to run this back down this way a little bit and it's going to live over here so it's a little bit further away from the vent so you see it's open up right now and it's doing great so when it warms up it should close there's my microcontroller right there and then i have the sensor run over here to get a little bit away from the vent so it will give me a little bit better readings if i move it around i can probably get that to adjust how i like it okay guys so we got that installed in the other room and it's working great keeping the temperature working a lot better in there so i'm super excited about this and hopefully it'll make things a lot nicer in the future so i actually have a little bit longer of a wire as you saw in there so that i can get the sensor a little bit away from the register which is always good because you don't want your register right beside because it's going to make the other room the other part of the room but i don't want to make it too far away because then microcontrollers like separate and it just gets a little bit complicated so we're going to go with this for now if you guys have any questions about this project make sure you leave them in the description below and there's a lot of things that um could be different about your version if you were trying to build this yourself so leave in the comments below and i will make sure to get back to you if you did like this video hit that like button and hit subscribe so you can check out more of my videos in my channel so go check that out um i'll be leaving a link in the description below for the code have a great day bye