# Охранная система Для обнаружения движения достаточно хорошо работают детекторы тепла (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)