Датчик движения для Arduino: PIR HC-SR501, микроволновый или ToF
Слова «движение» и «присутствие» в описаниях датчиков используют как синонимы, хотя это принципиально разные вещи. Датчик движения замечает перемещение, датчик присутствия — сам факт, что кто-то есть в комнате, даже если он неподвижно сидит в кресле.
Большинство дешёвых модулей — именно датчики движения, и это причина номер один разочарований: свет в туалете гаснет, пока человек не шевелится.
Разборы конкретных моделей
Виды датчиков
Белый мутный купол. Видит перемещение тёплого тела между зонами своей линзы. Дальность до семи метров, угол сто десять градусов, потребление копеечное, цена тоже. Не видит неподвижного человека и ложно срабатывает на поток тёплого воздуха, штору над батареей и солнечный зайчик.
Излучает радиоволну и ловит изменение отражения. Чувствительнее PIR, замечает даже дыхание, работает сквозь тонкие стены, картон и пластиковый корпус. Обратная сторона: срабатывает на движение за стеной и на качающуюся ветку за окном, а настроить зону обнаружения почти невозможно.
Радар миллиметрового диапазона. Видит именно присутствие, различает движущуюся и неподвижную цель, сообщает расстояние до неё и настраивается по зонам. То, что нужно для умного дома. Стоит в несколько раз дороже PIR и общается по UART, а не одним проводом.
Почему PIR не видит стоящего человека
Внутри датчика два чувствительных элемента, а линза-купол делит поле зрения на множество узких секторов. Когда тёплое тело переходит из одного сектора в другой, разница сигналов между элементами меняется — это и считается движением.
Неподвижное тело даёт постоянную разницу, а на постоянный сигнал датчик по своей конструкции не реагирует. Это не дефект и не вопрос настройки чувствительности: так работает сам принцип. Если нужно именно присутствие, PIR не подойдёт ни при каких настройках.