# Умные жалюзи Умные жалюзи должны быть достаточно умны, чтобы открываться и закрываться без лишнего напоминания. ![](/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 <Servo.h> #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)