Introduction: Project: Smart Blinds

About: student MCT at Howest (Kortrijk Belgium)

I am a student at Howest Kortrijk and for our first year we have to prove our competences based on a project we had to develop ourselves.

For my project I chose a “smart Blinds” system that would work autonomously based on user input.

Features:

  • Works completely autonomous, except for initial user input.
  • Change behavior based on "rules" such as
    • 'Close between X AM and Y PM'.
    • 'Close when the temperature exceeds x°c'.
  • Chart with temperature of the past 10min.

Supplies

  • raspberry pi
  • lcd display
  • temperature sensor
  • reed switch
  • breadboard
  • brightness sensor
  • MCP3008
  • stepper motor
  • ULN2003 stepper driver
  • potentiometer
  • resistors
  • common building materials

Step 1: The Database

What do we want?

  1. all of our sensors in one place
  2. all of our measured data in one place
  3. all occured events (in case problems occur)

How do we solve this?

  1. One table with all possible events
  2. One table with the log (events that occurred)
  3. One table with the sensors
  4. One table with the measured data

Step 2: Create a Fritzing Schema

This step isn't necessary, but highly recommended. Planning your work in advance is always a good idea and will save a lot of time later when something stops working.

Step 3: Start Designing Your Frontend

If you don't know what data you want to display, you won't be able to efficiently make your backend.

Use Figma or Adobe XD to create a prototype of your website.

Step 4: Programming

There's a lot of ways to come to the same conclusion. Mine is only one of them.
You can find my take here.

Step 5: Building and Testing

you have a plan.

You have the hardware.

you have a frontend.

You have a backend.

Now create an enclosure for your contraption and start integrating everything you made.

I used a plastic box and cheap wood as support since it's a simple prototype, but you can integrate it directly into your home if you wish.

When all is said and done you can start testing, try using every feature in every possible order to make sure no problems are present.