# Охранная система
Для обнаружения движения достаточно хорошо работают детекторы тепла (PIR датчики).
Суть сводится к тому, что однопиксельный "тепловизор" накрывается специальной линзой,
которая при любом движении нагретого объекта перед устройством будет посылать переменные сигналы.
При обнаружении изменения простейший триггер переключается в режим тревоги.
![](/assets/images/iot/05/pir_sensor.jpg)
![](/assets/images/iot/05/pir_pinout.jpg)
Обратите внимание как расположены выводы датчика. К сожалению, надписи видно только при снятой линзе.
### Схема подключения
Схема включения - достаточно простая:
![](/assets/images/iot/05/guard.svg)
| WeMos D1 | PIR модуль |
|-----------|-------------|
| 3V3 | VCC |
| GND | GND |
| D2 | OUT |
Для экономии на деталях в случае тревоги будем мигать встроенным светодиодом (BUILTIN_LED).
### Пример кода
```c
#define PIR_PIN D2
void setup() {
pinMode(PIR_PIN, INPUT); // Конфигурируем PIR_PIN как вход
pinMode(BUILTIN_LED, OUTPUT); // Конфигурируем BUILTIN_LED как вход
digitalWrite(BUILTIN_LED, HIGH); // BUILTIN_LED имеет подтягивающий резистор, HIGH = OFF, LOW = ON
}
void loop() {
int state = digitalRead(PIR_PIN);
digitalWrite (BUILTIN_LED, (state)? 0:1); // BUILTIN_LED имеет подтягивающий резистор, HIGH = OFF, LOW = ON
}
```
### Готовое устройство
![](/assets/images/iot/05/guard.jpg)
## Задача
При обнаружении движения отослать сообщение в топик **itschool/guard** и помигать светодиодом (или капканом, или сиреной - на ваш выбор).
> *Следует учесть, что импульс, выдаваемый датчиком движения, длится некоторое время (задаваемое подстроечным резистором на плате), а сообщения нужно отсылать только в самый первый момент времени, когда сработал датчик - **по фронту** импульса.*
[к списку задач](iot/summer/tasks)