Summer 2022
The problem description for the app project in the summer term 2022.
Last updated
Was this helpful?
The problem description for the app project in the summer term 2022.
Last updated
Was this helpful?
For the project of this semester, you are going to build a smart blinds control system that offers gesture recognition as well as control via buttons. The user is presented with a graphical user interface (GUI), which contains the live webcam image, three buttons up, down and stop to control the blinds, as well as an animation of the blinds to show the current position (see below). Aside from the GUI, the user should be able to control the blinds from a hardware button installed next to the blinds. To prevent the room from overheating, the application should automatically close or open the blinds, depending on a preset temperature or light threshold. How far the blinds close should be proportional to the room temperature or the light level.
1.1: The user should be able to move the blinds up and down using buttons on the GUI. A third button should allow the user to stop the blinds at any position in between.
1.2: In addition to the HTLM buttons from 1.1, the user can alternatively use the hardware button to control the blinds. The first time the user presses the button, the blinds close. The next time, the blinds stop. The third push of the button causes the blinds to go up, and the circle repeats.
1.3: At any time, the user can check the current position of the blinds as a number between 0 (up) and 100 (all the way down) shown on the GUI. The value should update every 500 milliseconds. The user can see the same information on the OLED display as well.
1.4: The RGB LED informs the user about the current operation of the blinds. It should blink green when the blinds go up and red when they are closing. The LED should stay lit in the respective color when the blinds are up (green) or down (red).
1.5: The user should be able to use three different gestures captured by the webcam to control the blinds. A first gesture, for example thumbs-up, should make the blinds go up. A second gesture moves the blinds down, and a third stops them.
2.1: When the light or temperature sensor exceed a threshold, the blinds should automatically close to a certain degree. The degree depends upon how far the threshold has been exceeded and should be proportional to the value. Find an appropriate formula to calculate the position of the blinds depending on the temperature/light value.
2.2: The user should be able to check the current temperature/light value at any given time on both, the GUI and the OLED display.
2.3.: The user should be able to set the temperature/light threshold using an input field and a button.
2.4: The user can program the blinds to close or open at a certain time of the day. Therefore, the user enters a time (e.g., 19:00) and chooses the desired position of the blinds for that time as a value from 0 to 100. When the time comes, the blinds automatically move to the desired position.
Use the following Glitch project as a template for your solution. Click on the link and remix the project:
You can use the blind's API to perform the following operations:
blindsUp()
- start moving the blinds upwards
blindsDown()
- start moving the blinds downwards
blindsStop()
- stop the blinds
blindsGetPosition()
- get the current position of the blinds (0 - 100)
You can use setInterval()
to perform a check every X milliseconds.
Depending on the sensor you have at hand, you can either use the temperature or the ambient light sensor. Make sure you find appropriate ranges for the automatic control via the sensor's values in both cases.