DIY Motorized Roller Shades + Wireless MQTT Smart Home Integration

Twitter: @TheHookUp1
UK Amazon:

Roller Shade:

Geared Stepper Motor (amazon):
Geared Stepper Motor (stepper online):

Stepper Driver:
Stepper Online Driver (5V Logic Only):

ESP8266 NodeMCU:
D1 Mini Pro:
External WiFi Antenna:

Buck Converter:
5V Power Supply:

4 Core 18AWG Wire:

Jumper Wires:

12V Power Supply:

M3 Screws:

3d Printed Hub STL File:

Mounting Holes Template:

Arduino Code:

ESPFlashEZ Program:
ESPEZ Shade Bin File:

Configuration YAML Additions:

Wiring Schematic:

Node-RED Alexa Sequence:

Music by

28 Replies to “DIY Motorized Roller Shades + Wireless MQTT Smart Home Integration”

  1. Udi Shvekey

    Hey Rob,
    Your videos are just awesome! thank you so much!
    I have a quick question about a similar setup. well, a somewhat similar…: I have an AC motor that would raise the curtain if L1 is hot and lower it if L2 is hot. I have N shared and of course Ground. I am looking for a smart way to make sure I only send current to either L1 or L2 but NEVER at the same time (or the motor will fry). I was thinking of using the Sonoff double relay but the problem is that potentially both channels can be hot at the same time. Do you have a tip for making sure they are never hot at the same time? thanks a lot! you are Awesome!!!

  2. fortnoxz71

    this is exactly what I'm looking for. any way I could use ir control instead? or the projector USB 5 volts as a trigger to make the screen on and off? meaning when the projector is on the screen drops, and when off, the screen raises? I'd rather have ir control so the multi remote can make it work and not have to run wires. thanks, any help would be grateful

  3. Mmm Bbb

    First let me thank you for your work and your video they are quite clear.

    Unfortunately I ran into a few issues.

    First: once the D1mini is connected to my Wifi network, the webpage of the d1Mini isn't accessible anymore on it's new IP. So you cannot change anything without re-flashing. Unfortunately If you re-flash with the bin file the AP doesn't show up anymore, you need to "erase_flash" before you re-flash it again.

    My second issues comes with the fact I do not use the same stepper as you, therefore a full rotation isn't occurring. Actually when I used the "stepper controller" you said to buy, the stepper motor went back and forth at each value.
    When I used the "easydriver stepper controller" it when ok but never full turn.

    I tried to understand your code but with no success. Since I am not a engineer I am not good at coding.

    Would it be possible to :

    get the webUI running after it linked to the house WIFI (sort of like tasmota)
    change the number of stepsPerRevolution within the webUI
    change the speed within the webUI

    This would be useful for all project requiring steppers not only shades.

    Thank you for your help

  4. Brett Wilson

    Nice video, explained everything really well. Do you know how the shade cloth is attached to the roller? I was wondering if the actual cloth can be swapped out with a different percentage of shade.

  5. George Washington

    GREAT idea. Clear, easy to follow instructions. This is EXACTLY what I was looking for. I am in the process of automating the 3 outdoor shades and would appreciate your input. Unfortunately, my shades (3) are 14'-3" wide each and VERY HEAVY construction (to withstand the high winds we get on the central Banana River, facing the ocean barrier island, along the central East Coast of Florida). They use stainless cables running down each side with a 20 pound steel rod sewn in horizontally (helps pull them down and keep the wind from whipping them in the air). They extend just over 8' down. My problem is the company wanted OVER $550 EACH to motorize them. OUCH!!! After testing and using torque measurements to determine what it would take to move these, I am unable to find a stepper motor with the necessary torque. Measured out at about 6Nm (a bit hard to start turning) desired 60 RPM………QUESTIONS: 1-I found several DC gear motors with sufficient torque and some even have encoders attached (I could put one on if necessary). Would the 'Stepper Motor' driver work with a standard DC motor (using one pole and a relay)? 2-If not, could you suggest some place for me to search for an answer? … Thanks again for your very helpful video.

  6. Phil Brown

    Rob, Fantastic… Thanks. Got it working with a scavenged printer nema17 motor and a A4988 motor driver. I am using it on test with my vertical blinds. There’s no real load on the motor with these blinds, as its only turning a lay-shaft to alter the angle of the blinds. I will order New components for the 5 blinds I need to convert when the testing is completed.
    One thing I cant seem to get my head around, is how to set up an Automation to close the blind at a set time and open them at another time. For example: Dusk and Dawn. Could you point me in the right direction please. I really appreciate the work you have done on this.

  7. Fernando Tapia

    Very good video, I used the input number in my setup, but it randomly stops working, the opening close and stop work only the slider is the one stops working, what could it be?hope you can help me, is there a place to send you a message?

  8. Tarek Salem

    Thanks Rob for this amazing project i followed everything but when i connect the gnd to nodemcu v3 does not connect to wifi I've to power up nodemcu first then connect gnd to work, it means every time the power cut off I've to repeat the same procedure what i did wrong ?

  9. pjb6817520

    Good Tutorials.
    I am looking to adapt your idea to work with a small stepper motor, 28BYJ and IN2003 driver board, but I am new to arduino and cant seem to see where the nodemcu pins are defined in a way that would work with the IN2003 driver board. I am hoping that if I can get that sorted out, the rest of the code will drive the motor as yours does, with the nodemcu taking care of the interface with HASSIO. Any help gratefully received.

  10. Phoenix

    Hey Rob,

    I went ahead with an RF tubular motor for my blinds as the cost was considerably lower. These RF motors only have up, down and stop commands and the limits are set on the motor.
    Is there any way I can program them in HA to have specific stop location like in your video, IE 40% or even an input slider would be fantastic!
    Thanks budd

  11. Sumit Lonkar

    Thank you for sharing work with you. Just followed your instruction step by step and got this working. However, I am seeing weird issue. As soon as I disconnect NodeMCU from ardunio IDE and plug it in micro usb supply mqtt client just drops the connection. I have three more nodemcu running and they are all working fine. Below is the error I am seeing in Mqtt logs. Any idea what might be happening?

    1538714951: New client connected from as curtain (c1, k15, u'MQTTBroker').
    1538715155: Client curtain has exceeded timeout, disconnecting.
    1538715155: Socket error on client curtain, disconnecting.

  12. Seaha

    Hey dude. My encoder motors are finaly arrived. I have no problem with with the hardware stuff i could cad them myself but please i am an electronic noob. So i need a code and a wiring. Maybe you do this project soon

  13. adas4190

    Another question: is it possible to add to the code that when shade reaches max up or down it publish state open or close? (And how to do it if poss)

    I have bought stepper you had and it works flawless!
    You are genius!

  14. David Lister

    David Lister (uk)
    Bought all the parts from us and flashed the board. No problem. Can see the board on my router but no movement from the motor. Setup home assistant as you have indicated. Is their any test I can do to track down my problem. I have in the past setup a blind by using sonoff with tasmota and relays. Your video inspired me to build this project. At the moment I am watching you videos on nod red. When working I was a methods engineer , flow charts are my thing. Hope you can help. Excellent video keep up the good work

  15. Mat Smith

    Greetings from the UK. Really enjoying watching your videos. Natural teacher! I notice how you said "because I feel comfortable with the Node MCU"… this brings to mind something interesting. We all feel comfortable with slightly different boards – for me it's the Arduino Nano and Mega clones, connected to a "Funduino" board which is basically the W5100 network chip on a board that is smaller than the Arduino network shield. I'm comfortable with this arrangement mainly because I really like wired networking for my home devices. I can't be doing with changing batteries, hence PoE. Despite the general difference in approach, still interesting watching your vids, so keep them coming! (But hey, if I can convert you to hard-wired devices, I will 🙂

    Out of interest, I'm thinking of making my own boards based on the Mega and Nano concepts, see my blog post here:

Leave a Reply

Your email address will not be published. Required fields are marked *