# Умные жалюзи
Умные жалюзи должны быть достаточно умны, чтобы открываться и закрываться без лишнего напоминания.
![](/assets/images/iot/06/jalousie.png)
Благодаря тому, что жалюзи основную часть дня остаются на месте и лишь немного вращаются, лучше всего здесь будет использовать сервопривод,
который тоже не любит слишком сильно и далеко вращаться. Мы будем использовать SG90.
![](/assets/images/iot/06/sg90.jpg)
У нашего сервопривода имеется три контакта:
- коричневый — GND;
- красный — питание +5V;
- оранжевый (или желтый) — сигнальный.
### Схема подключения
![](/assets/images/iot/06/smart_blinds.svg)
| WeMos D1 | Servo SG90 |
|-----------|------------|
| 5V | Коричневый |
| GND | Красный |
| D2 | Оранжевый |
### Пример кода
```c
#include
#define SERVO_PIN D2 // Вывод управления сервоприводом
// Объявляем объект типа Servo с именем myServo
Servo myServo;
int delayMS = 2000; // Задержка в мс
long lastMS = 0;
int step = 0;
void setup()
{
// связываем сервопривод с выводом SERVO_PIN
myServo.attach(SERVO_PIN);
}
void loop()
{
if (millis() - lastMS > delayMS ) {
if (step++ % 2 == 0)
myServo.write(0); // Поворачиваем вал на 0 градусов
else
myServo.write(180); // Поворачиваем вал на 180 градусов
lastMS = millis();
}
}
```
### Готовое устройство
![](/assets/images/iot/06/smart_blinds.jpg)
## Задача
1. По команде в mqtt топик **itschool/blinds** поворачивать привод жалюзи на определенный угол. Данные будут приходить числом от 0 до 100%, как пересчитать в 180 градусов угла?
2. Совместить на сервере логику поведения жалюзи и показания датчика света;
3. Реализовать возможность открытия по будильнику (по команде с сервера).
[к списку задач](iot/summer/tasks)