Voice Activated Arduino Blinds




Introduction: Voice Activated Arduino Blinds

About: Enjoying the projects? Support this page on Patreon: https://goo.gl/QQZX6w

A while ago I made an Instructable where I added a servo and Bluetooth device to my door lock letting me control it with my phone like an addict I just can't stop adding Bluetooth to stuff and so in this project I'm going to show you how to make Bluetooth controlled blinds with some voice activation features. Let's get started!

Step 1: Parts List

This project is pretty cheap and really doesn't need that many parts, the parts we will need are:

  • Arduino Nano (here)
  • Hc-06 Bluetooth module (here)
  • Motor Controller (here)
  • 2x geared motors (here)
  • 2x 220-ohm resistors (here)
  • 2x push buttons (here)
  • LED (here)

And for tools and materials we will need:

  • Cardboard
  • Wire
  • soldering iron and solder
  • hot glue gun and hot glue
  • Box cutter

Step 2: Features

So the main feature that these blinds are going have is the ability to open and close them from an app. I have two blinds that I want to control with this device so I'm going to be using two motors, one for each blind. When the command U is sent through the Bluetooth device it will spin both motors to the open position and if the command D is sent both motors will spin to the closed position. Now one of the issues I had with my Bluetooth door lock project was that my phone would die before I got home meaning I wouldn't be able to get into my room and so for this project we are going to be adding buttons to the device that let us open the blinds when the button is pressed. Now, of course, this will also feature voice control and the ability to control individual motors allowing us to open one blind at a time but ill talk more about that later,

Step 3: The Circuit

Don't be fooled by the messy wiring diagram this circuit is actually pretty simple and straight forward if you follow the wiring diagram piece by piece so let's start by connecting the motor controller to the Arduino:

  • Pin 8 connects to M1 on the motor controller
  • Pin 9 connects to E1 on the motor controller
  • Pin 10 connects to M2 on the motor controller
  • Pin 11 connects to E2 on the motor controller

Now we are going to want to connect the Bluetooth module to the Arduino we do this as follows:

  • 5 Volt Pin connects to VCC on the Bluetooth module
  • Ground Pin connects to Ground on the Bluetooth module

Rx and Tx will also be connected to the Arduino but we cant do this yet as once these connections are made we cant upload code so don't connect them until we upload the code.

  • Rx connects to Tx on the Bluetooth module
  • Tx connects to Rx on the Bluetooth module

We are also going to want to connect our buttons that let us control the motors without a smartphone we connect them as follows

  • Connect a resistor from Pin 7 on the Arduino to 5 volts on the Arduino
  • Connect a resistor from Pin 4 on the Arduino to 5 Volts on the Arduino
  • Connect one leg of the button to Pin 7 and the other leg to ground
  • Connect one leg of the next button to Pin 4 and the other leg to ground

Now we are going to connect an LED to pin 4 which will show that the device has power:

  • Pin 4 goes to the cathode (long leg of LED)
  • Ground goes to anode (Short leg of LED)

And lastly, we are going to connect the motors to the motor controller by screwing them into the screw terminal

Step 4: The Code!

Download the sketch, open it in the Arduino IDE and upload it to the Arduino Nano.

Step 5: Power Supply

To gives these motors enough power to turn the somewhat stiff blind mechanism we are going to need at least a 9 Volt 1 Amp wall plug power supply. Once you've found a power supply we are going to want to connect it to our Arduino and the Motor Controller.

It connects to the Arduino as follows:

  • Positive (+) connect to the VIN Pin on the Arduino
  • Ground (-) connects to the Ground Pin on the Arduino

It connects to the Motor controller as follows:

  • Positive (+) connects to VS on the motor controller
  • Ground (-) connects to GND on the motor controller

Now we can plug the motor controller in and give it a test, if everything lights up we can move onto the next step!

Step 6: Making the Case

This step can be completely up to you as pretty much any case design will work, however, lets take a look at how I designed mine. I made mine out of some strong cardboard, we are going to print out a template, stick it to the cardboard and cut it out. We are going to need to cut our 2 of the main oval shapes, 1 long stip which will be the sides of the case and two curved pieces that we will mount or button on.

We are going to want to score the long piece so we can make it bend around our oval shape which must then be glued down, once we have both sides scored and glued down we can glue down our circuit in the middle of the oval.

Now we are going to want to glue our buttons to two different pieces of cardboard and stick these to the top and bottom of the case, we are going to want to glue them in a way that makes the top of the button peak out of the case, this is so we can glue another piece of cardboard to the top of the button which hides it but still allows us to use it.

Once this is done we can take our second oval and cut it into 3 pieces, a top piece, a bottom piece and a long strip from the middle. the middle piece will be glued in the middle with that LED mounted in the middle of it. The top piece is then glued to the top button and the button piece is then glued to the bottom button. When gluing the pieces to the buttons be very careful to not add too much super glue as if the glue gets into the button mechanism it will break the button.

Step 7: Connecting the Motors to the Blinds

To connect the motors to our blinds we are going to need to take the stick and hook that is normally used to open the blinds and break the hook off, we will then glue that to the shaft of the motor and hook it onto the blinds movement mechanism.

Now we cant just leave the motor dangling there so we are going to have to glue it to the wall, I used hot glue but the motors are pretty light so most mounting options will work. Same for the case, I glued mine to my wall but its so light that most options will work just fine.

Step 8: Setting Up the App

The app we are going to be using is called "Arduino Bluetooth Control" by Broxcode, the reason I chose this App is because it has not only a terminal feature but also a feature allowing us to send commands to the Arduino when a chosen phrase is said.

To set it up we are going to pair our Bluetooth device with our smartphone, open the app and click the pair button and search for HC-06 and pair with it, if it asks for a password its either 1234 or 0000 once its paired, click on the terminal option and send U and then D through which should make the motors spin clockwise and then counter-clockwise.

To set up the voice commands open the options menu and scroll down to voice command settings, in there we have the option to send a command when a phrase is said, put the command you want to send in the command box which will be U and then in the phrase box put Let there be light, or whatever you want. Then we will go to the next voice command option and put D in the command send box and Let there not be light in the phrase box meaning our blinds will open when we say let there be light and close when we say let there not be light.

Step 9: An Overview

Okay, lets just take some time to get a full understanding of how everything works. If you want both blinds open we can either push the top button or we can say let there be light in the app if we want both blinds closed we can push the bottom button or say let there not be light in the app.

If we only want one of the two blinds open at a time we can go into the terminal section of the app and send the command K to open the left blind and I to close the left blind or W to open the right blind and L to close the right blind. That's pretty much all the features of the blinds.

If you have questions please let me know in the comments and ill be happy to answer them.

Wireless Contest

Runner Up in the
Wireless Contest

Be the First to Share


    • Stick It Challenge

      Stick It Challenge
    • Electronics Contest

      Electronics Contest
    • Origami Speed Challenge

      Origami Speed Challenge



    Question 2 years ago on Step 9

    Nice write up and project. It's been a year and a half, are you still using the blinds? Have you made any improvements? I've been reading so much about Arduino and motor control that my head is spinning. Maybe I missed it, but what stops the motors from going past the blinds fully open/closed? Say someone continually holds the open button - wouldn't the motors just keep pushing till something breaks? I haven't read your code, but the schematics don't seem to have any fail safe - unless I'm just too tired to see, lol.

    Thanks for sharing this.


    Question 3 years ago on Step 1

    Power supply is not clear, can explain or give some pictures of power supply and it's connection to nano and motor controller

    the minecrafth
    the minecrafth

    4 years ago

    if you can make this work with alexa and google home (i have both in my bedroom) please pm me i really want to make my bedroom blinds electronic! also if i could tell it open 50% that would be amazing! i never open them 100% only like 50% during the day


    4 years ago

    Is there any reason that you soldered the 220ohm pullup resistors instead of using the arduino INPUT_PULLUP setup command?

    Don Barthel
    Don Barthel

    4 years ago

    Great instructable!

    If you run the motor one direction for a time (say 2 seconds) to open then in the opposite direction for the same time to close, and do that 100 times, would not the fully open and fully closed points drift? In other words, after a while you'd have to recalibrate the points of fully open and fully closed.

    If so, then we need a sensor to tell us when they are fully open (or fully closed). But not both because the method of "run for two seconds to change" is good enough if you are always starting from a known point. But how to sense fully open or closed?

    electronics for everyone
    electronics for everyone

    Reply 4 years ago

    Hey! I understand what you are saying and im sure that issue might happen however the reason iI didnt add a sensor is purely because if it becomes misaligned i can just open the blinds twice which will make them go up as high as poissble which will realign it


    4 years ago

    I'd sure love to see a video! I'm in the process of a similar project, but the issue I'm finding is that the 1:48 gear ratio is still much too tall. When driven hard enough to have the necessary torque, the blinds move way too fast (and precisely stopping at full-open is hard). I've found those cheap stepper motors seem to work very well, but I'd love not to have 6 wires per window.


    4 years ago

    This is a good start.

    Not all blinds are mounted recessed and the angle of the dangle, so to speak, may not be possible for most applications. Maybe using a 180-degree gear motor and attach it directly to the blind header. The motor output faces down and transmits the rotation through a gear to the adjusting rod. Something like this: