I pull my curtain up and down a couple of times a day. If I watch a movie I pull it down and then, I pull it up to get better lighting. I also pull it down when I go to sleep and I pull it up again when I wake up. I want this process to be automatic, if my curtain rises before I wake up, it will be easier for me to wake up when the clock goes off. Just like those night lights that lights up before you wake up this can do the same but with the sun as a source.
If you are like me and would like to have your home automated, you might also have considered buying motorized Curtains. But if you have, then you have also realized that they cost a considerable amount.
Therefore, I have decided to make my own motorized curtain. This project will be about modding an existing IKEA curtain, adding a motor to it and writing some code. Without further ado, let’s begin!
Step 1: How It Should Work
These two pictures should give you an idea about how I wanted it to work. What they do not tell you is that the manual-control for up and down can be used at any time (even in the initial phase). And the external control sends “requests”, you might not always be able to see the curtain, or you might have made it so the phone sends requests automatically.
For example you push on the phone that you want it to go up, it will move up if it is in the down position and it will do nothing if it is already up. This makes it so you won’t need to think about witch button you push and you can also make it so it sends a request to move up at 8:30 in the morning for example.
In this case the external control is a NodeMCU controlled by a phone. But you could choose to use another Arduino with an SMS-shield instead if that would be a better solution for you.
The curtain will work with only a remote controller so if you do not need the “phone control” feature you could skip it, the code that I provide will still work.
Step 2: Tools & Supplies
For this project we will need some tools.
- Soldering Iron
- Crimp tool
- Wire Strippers
- Glue gun
- Electrical tape
Step 3: Parts
- 1: Pulldown Curtain (that fits the window, IKEA is one supplier of these).
- 1: Motor(The one I use is a servo-motor, with the servo
functionality removed. It is supplied with good plastic mounts, this makes it easy to mount it to the curtain).
- 2: Relays (You could also use power transistors for this if you want).
- 1: 5V power supply. (Do not buy a “fake” power supply of ebay
[or any other seller], instead wait for a sale in one of your local stores).
- 1: Arduino
- 1: NodeMCU
- 1: Reflective IR Sensor
- 1: 433MHz Reciever(will be used to take commands from remote).
- 1: Radio remote. (I recommend “Livolo Mini Remote Controller”
only because it is the one I will be using in this project and I will provide code that support this remote).
- 1: Project Box
- 1: Switch (For manual control).
- 2: Zip Ties (Used to hold the motor onto the L-shaped mounts)
Step 4: Code for the Curtain
You do not have to change anything in the code for the Arduino (RullgardinV3.3English) but if you want to be able to use your phone to control the curtain and set timers for when it should rise in the morning and roll down in the evening. Then you will need to change at least two things in the code for the NodeMCU board (ESP8266_CurtainCompanion) I have marked these two rows and one of them is the authentication token for your project in the Blynk app on your phone. The other one is the name and password of your Wi-Fi connection.
The code for this project is quite long, please download them if you want to take a look.