Sometimes the sun is my friend, warming the house on cool days. Other times it’s my enemy, warming the house on hot days. Blinds are one solution to this problem, but it seems that no matter how I set my blinds before I leave for the day, the weather changes and I come home to a sweltering or freezing house.

So I built this mini blind minder to open and close them automatically. It’s powered by an Arduino microcontroller, which uses a temperature sensor to read the room temperature and then activates a servomotor to open the slats when it’s too cool and close them when it’s too warm. It has an adjustable thermostat and it can also be operated manually to open or close your blinds with a push of a button.

You’ll solder a custom Arduino “shield” — a circuit board with headers that plug into the Arduino — and then mount it all in a tidy RadioShack project case. This project requires only a moderate amount of soldering, so you can easily build it in a day or a weekend.




Step #1: Prepare the case.

Mini Blind MinderMini Blind MinderMini Blind MinderMini Blind Minder
  • NOTE: All sizes are for the listed components. If you're using different components, check your measurements before cutting.
  • Cut a rectangular hole for the servo in the center of the narrow end of the case. There’s not a lot of extra room, so be sure it's centered. You may need to carve out a bit of the screw posts inside the case for the servo to fit.
  • Drill four 1/16" pilot holes for the screws that will secure the servo. (Don't mount it yet.)
  • On the opposite end of the case, drill a 5/16" hole for the power connector and a 1/4" hole for the temperature sensor.
  • In the cover, drill one 3/4" hole for the Manual switch, two 5/16" holes for the Up and Down buttons, and a 7/32" hole for the RGB LED.

Step #2: Wire the off-board components.

Mini Blind MinderMini Blind MinderMini Blind MinderMini Blind Minder
  • Cut sixteen 6" lengths of hookup wire and strip 1/4" off each end.
  • Solder wires to all the leads of the LED, the switches, and the temperature sensor.
  • Solder wires to the center and edge pins of the power connector.
  • Add heat-shrink tubing over the soldered connections.

Step #3: Build the shield.

Mini Blind MinderMini Blind MinderMini Blind Minder
  • Cut a piece of perfboard 15 holes by 20 holes. It will just barely fit in the width of the case, so check the fit before going to the next step.
  • Cut the header pins into blocks of 5, 4, 2, and 2 pins. You should have 3 left over.
  • Use pliers to push the pins flush with the plastic spacer. This will make the pins long enough to fit securely in the Arduino.

Step #4: Build the shield (cont'd).

Mini Blind MinderMini Blind MinderMini Blind MinderMini Blind Minder
  • Solder the pins in place on the bottom of the board.
  • The 5-pin header connects to digital pins 3–7.
  • The 4-pin header connects to Vin, GND, GND, and 5V.
  • One 2-pin header connects to A0 and A1.
  • The other 2-pin header connects to digital pins 8 and 9. Use pliers to bend a dogleg in these pins so they'll fit the awkward spacing on that side of the Arduino.

Step #5: Solder the shield.

Mini Blind MinderMini Blind MinderMini Blind MinderMini Blind Minder
  • Refer to the circuit diagram when building the shield.
  • Solder the following components to the shield and connect them to the appropriate header pins.
    • 10K micro potentiometer. Connect the odd leg to A1, and the other 2 legs to +5 and GND.
    • (3) 100Ω resistors. Connect one each to digital pins 3, 5, and 6.
    • (3) 10K resistors. Connect one end to ground, connect the other near (but not to) digital pins 4, 7, and 8.
    • 3-pin header for the servo. Connect the center pin to digital 9. Connect the other pins to GND and 5V. Mark which pin is the ground so it's easy to connect the servo correctly.

Step #6: Calibrate the servo.

Mini Blind Minder
  • Place the shield on the Arduino and connect the servo. Take care to get everything oriented correctly or you could burn out the servo or the Arduino.
  • Connect the Arduino to your computer with a USB cable.
  • Download the Mini Blind Minder code as a .zip file here. Unzip the files and open them in the Arduino IDE. (Guidance for setting up the Arduino IDE and connecting to your Arduino can be found here.)
  • Upload calibrate_servo.ino to the Arduino.
  • Adjust the screw on the side of the servo until the servo stops turning. This may require a fine touch.
  • To test the servo, upload test_servo.ino to the Arduino. The servo should oscillate between turning clockwise and counterclockwise, with a 1-second pause between. If not, double check your connections and recalibrate the servo.

Step #7: Mount the components in the case.

Mini Blind MinderMini Blind MinderMini Blind MinderMini Blind Minder
  • Upload mini_blind_minder.ino to the Arduino.
  • Disconnect the shield from the Arduino and the servo from the shield.
  • Attach the servo to the case with its 4 self-threading screws.
  • Secure the switches and power plug in place with their retaining screws.
  • Attach the LED with a dab of hot glue.
  • Hot-glue the temperature sensor in place. The body should stick out the bottom of the case a bit so it can get an accurate temperature reading from the room. (The inside of the case tends to warm up a little bit from the electronics.)

Step #8: Attach the components to the shield and test.

Mini Blind MinderMini Blind MinderMini Blind MinderMini Blind Minder
  • Solder the switch leads. One lead of each switch connects to 5V. The other leads:
    • The Manual switch connects between pin 4 and the 10KΩ resistor.
    • The Up button connects between pin 7 and the 10KΩ resistor.
    • The Down button connects between pin 8 and the 10KΩ resistor.
  • Solder the LED leads. In order, starting from the flat edge of the LED, the pins are:
    • Red, connect to the other side of the 100Ω resistor on pin 3.
    • Anode (longest pin) to 5V.
    • Blue to the other side of the 100Ω resistor on pin 6.
    • Green to the other side of the 100Ω resistor on pin 5.
  • Solder the power connector. The center connector to Vin, the outside connector to GND.
  • Solder the temperature sensor. From the front (flat side facing you) the pins are, from left to right:
    • +5V. Connect to 5V on the shield.
    • Analog out. Connect to A0 on the shield.
    • Ground. Connect to GND on the shield.

Step #9: Attach the components to the shield and test (cont'd).

Mini Blind MinderMini Blind MinderMini Blind Minder
  • Hot-glue the Arduino into the bottom of the case.
  • Reconnect the servo and attach the shield to the Arduino. Then plug in the power. After a second or two the light will come on.
  • Test your Mini Blind Minder, following the "Use it" instructions below to understand how it should operate. If it's working correctly, proceed to installation.

Step #10: Install and calibrate.

Mini Blind MinderMini Blind MinderMini Blind MinderMini Blind Minder
  • Lower your blinds and open the slats.
  • Count how many turns and in what direction it takes to close the slats.
  • Plug in the power and set it to manual mode.
  • Adjust the 10K trimpot while alternately pressing the Up and Down buttons. When the trimpot is centered, the servo won't turn. The further it is from the center, the longer the servo will run when it's on. Turned clockwise, it will open the blinds clockwise. Turned counterclockwise, it will open them counterclockwise. Adjust the trimpot until pressing the Down button rotates the correct direction and number of rotations to close your slats.
  • Attach the case to the window frame with 2 wood screws, on the edge away from the window. Position it vertically so that your blinds' wand fits between the spokes of the servo horn, but doesn't hit the top of the servo. You can also use double-sided foam tape for a temporary and less durable installation.
  • Attach the front of the case.
  • Close the blinds and the slats. Press the Down button to rotate the servo to the closed position. If the light blinks, that means it's already closed.
  • Tie a 1/4" loop in the rubber band and cut off the rest.
  • Make a simple slip clutch by looping the rubber band around the wand and 2 of the spokes of the servo horn. This will keep the servo from damaging anything in case something goes wrong.

Step #11: Use it!

Mini Blind MinderMini Blind MinderMini Blind Minder
  • When the Manual switch is turned on, the LED turns white and you can open and close the blinds with the press of a button. Pressing the Down button closes them, pressing the Up button opens them. If the light blinks, the slats are already open or closed.
  • When the Manual switch is off, your Mini Blind Minder is in Automatic mode it will open and close the blinds based on the temperature of the room. The color of the LED shows the current room temperature in relation to the thermostat setting: green when it's the same temperature, red when the room is hotter than the thermostat setting, blue when it's colder. Press the Up button to raise the thermostat temperature, Down to lower it. Each press changes the thermostat 1ºC. It can be adjusted between 10ºC (50ºF) and 30ºC (86ºF).
  • After you adjust the temperature, the Minder may take a few seconds to open or close the blinds.
  • When it's powered off, the Minder automatically remembers the thermostat temperature and the position of the blinds.
Steve Hoefer

Steve Hoefer

Steve Hoefer is a creative swashbuckler, freelance writer and inventor. He regularly contributes projects to the pages of MAKE and his inventions have appeared internationally on TV, radio, and print. He lives on his family farm in Iowa.

  • whatever

    “the servo” ? What servo? Where does one get one? How about a parts list with supplier info?

    • There is a detailed parts list at the top right of the page.

      • Parallax Continuous Rotation Servo
        Model: 90008 | Catalog #: 273-457

      • j2

        It’s not obvious that the equipment list scrolls and there are more elements than are visible at first blush/view – at least on my mac where scrollbars are set to only show when scroll.

  • Why not show how to put the “arduino” on the pcb, the cost is about 5-6 bucks and is about as much soldering as the shield and you get to keep your 30 dollar prototyping arduino for prototyping other ideas. here is a guide, just take the circuit and solder it to the proto board:

    • Robarino

      If that’s how you want to do it, do it. WIth Arduino projects people can accomplish their goals any way they want.

  • Jeff Robertson

    Nice project. I’ve wanted to do the same thing for years.

  • Cody

    how does the servo spin the wand usually you have to twist the wand how well does it do that

    • inventer

      Emagine this:
      You have rope hanging from the roof, you grab it with one arm in the way that your arm is perpendicular to your body and you start to spinn around yourselfe. Wath would be the outcome of that ?

      A: rope gets twisted, but if the rope var solid (plastic -composit) it will refuse to get twisted and turns.

      You get the analogy?

  • This is really a nice nifty thingy, we have blinds at our home, and this gives a nice idea of custom hardware we can introduce for a domotica project I’m developing together with a friend.

  • Elemo valentine

    This project is a fantastic one,that really hit a so many mind this so great.

  • Bassam

    I downlod the arduino sketch ,but it did not open and it shows message that it can not open

  • There is no such thing as an “Arduino microcontroller”!!!!

    • Cindi

      Yes, there is your friend….

  • rustycansTom

    Great project. It could do with a light sensor to reverse the logic at night though.

    • Sam Freeman

      Good idea. It does have a manual switch, but adding the light sensor functionality shouldn’t be too hard.

  • inventer

    Hello !
    Nice project, I think it’s not an elegant solution with ruberband doh. Maybe a hole on the top so that you can put the stick in it? it would be more clean design and more efficent and the construction will live longer. You also decrease momentum wich alows you to save on the energy.
    If you are conserd about when thing go wrong, you can use a condition on the maximum voltage (V+v) in the scrip, wich correspond to the amout of work needed (V) turn the stick in the proper angul and initial acceleration (v).

    You could also use another case that is much longer and much smaler. The box could be installed at the top of window insted and exposed with one side to the sun. In this way it could have sensor that massures intensetiy of the light and also the temperatur in the room and can work with both inputs to be more efficent. I the same time it could oprate directly on the gears at the top witouth even be seen.

  • Hey, love the project but im wondering is theres a way you could add more than one blind so you could have a servo in a different location and just wire them together on a Y connect so it splits the signal and what one does the other does too? also, how do you limit the servo so they dont twist too far

    • Eli Kia

      I think you can limit the servo’s rotations in the calibration step, or the Micro 10 K-OHM potentiometer.

  • Eli Kia

    Steve- I just threw in $125 for the weekend project “Mini Blind Minder” before realizing it wasn’t really realistic for me. And this is where I came up with a mod that would make the project optimized for bedrooms. The project right now is ideal for kitchens, or living rooms, but in a bed room, you may want your blinds to close when it gets dark, so people can’t see in. Instead of using a TMP36 sensor, why don’t you use a photoresistor attached to jumper leads? That way, when the light levels lower, it slowly closes your blinds. I’m in 7th grade, and still a long way from the skills of Make:’s editors, so I was wondering if you guys would help me come up with a way to do this… and I’m sure other Makers would love to see this mod too. If you can help me, please let me know. Thanks a lot guys! (And keep up the good work! :) Hopefully a lot more to come!)
    Eli Safaie-Kia
    Los Angeles, Califoria

  • Eli Kia

    Is there anyway to either open or close the blinds from the Arduino Serial Monitor, using a command, or attaching an IR receiver to you could use a remote? Also, how do you change the threshold or preferred temperature? Thanks!

  • Ica

    where is the schematic and program thanks