Automated Window Blinds
Fully automated blinds that roll up and down through wifi.
Author: Naomi Lita in collaboration with Rebeca Chiorean
GitHub Project Link: https://github.com/UPB-FILS-MA/project-nimintz
Description
My project aims to automate a window blinds roller. A stepper motor raises and lowers the blinds. A motor driver that is attached to the pico is coupled with the stepper motor. Rebeca Chiorean's project uses another Pico to operate the roller via wifi. Together, our two projects show how a household item can be remotely operated while keeping individuals with disabilities in mind.
Motivation
This project aims to show how a home appliance can be remotely operated using the raspberry pi picos and rust programming language. In the near future, I wish to automate all of my home's window blinds.
Architecture
Log
Week 6 - 12 May
I purchased the components for the project. I tried to see if the motor would rotate using thony and micropython, and happily, it worked.
Week 7 - 19 May
I configured the project in rust. This week I fixed errors in the code. On the other hand, I started designing the toothed disks for the 3D printer.
Week 20 - 26 May
I 3D printed the necessary disks for the motor and assembled the scale model. Also, I fixed all the software bugs. Rebeca and I connected our picos through wifi.
Hardware
The pico gets a signal from another pico connected through wifi (Rebeca's project: Pico Wand). This signal is transmitted to the motor driver (ULN2003), which in turn activates the stepper motor (28BYJ-48) that rolls the blinds up or down. After the command to roll up or down is performed, an led will blink twice as a confirmation.
Components
- 28BYJ-48 stepper motor: this motor is a unipolar stepper motor with 4 phases. It has the torque of about 0.34 kg per cm on its axis. This is enough to raise a lightweight model blind.
I will use this table for the clockwise direction to create a matrix where high is 1 and low is 0:
For counterclockwise rotation, it is the same matrix, only reversed.
- ULN2003 motor driver: this module connects the motor to the pico. This allows the 4 phases of the motor to be controlled through GP02, GP03, GP04, GP05 on the pico which are set to high or low.
Schematics
Photos
Bill of Materials
Device | Usage | Price |
---|---|---|
Rapspberry Pi Pico WH | the microcontroller | 56,23 RON |
Stepper Motor 28BYJ-48 5V and Driver ULN2003 | the motor to rotate the blinds and the driver to connect it to the microcontroller | 16,97 RON |
Breadboard | to place the components | 24,61 RON |
Jumper wires | to conect the components | 24,61 RON |
Power source | to give the motor 5V and pico 3V3 | 24,61 RON |
Resistors | regulate the power supply | 12,29 RON |
Red LED | blink | 0,69 RON |
3D printed toothed disks | connect the motor to the blinds | |
9V adaptor | power supply |
Software
I only included those specific for this project.
Library | Description | Usage |
---|---|---|
uln2003 | 28BYJ-48 stepper motor with ULN2003 driver | Used for controlling the motor with rust |
cyw43 | Rust driver for the CYW43439 wifi chip | Used for the WiFi implementation |
cyw43-pio | Driver for the nonstandard half-duplex SPI used in the PicoW | Used for the WiFi implementation |