Счетчик посетителей и проходов через дверь: какие бывают простые DIY-решения

Когда я впервые взялся за сборку счетчика посетителей для небольшого шоурума, то быстро осознал: дело не в цифрах как таковых. Ты начинаешь видеть, как пространство дышит в разные часы, когда стоит усилить освещение или перенести активность. Счетчик проходов через дверь — это инструмент, который показывает реальную нагрузку, а не просто «сколько зашло». В простом виде такой прибор собирается даже без глубокой автоматизации: пара датчиков, микроконтроллер и внятная логика подсчета. Ниже разберем, какие решения бывают, чем отличаются, где чаще всего ошибаются и как подобрать вариант под конкретную задачу.

Зачем вообще считать проходы

Счетчик посетителей — не только про статистику. На практике он закрывает вполне прикладные вопросы, которые рано или поздно всплывают в любом работающем помещении:

  • оценить посещаемость по часам и дням без ручного учёта;
  • понять, в какие моменты помещение перегружено, а когда — пустует;
  • сравнить эффект от акций, вывески, изменённого расписания или событий;
  • замерить нагрузку на входную группу, ресепшен или узкий проход;
  • автоматически запускать свет, индикацию или уведомления при достижении порога;
  • собирать данные для отчёта без постоянного заполнения табличек вручную.

Если нужна грубая оценка — хватит простых решений. Если же важно разделять вход и выход, считать в обе стороны и избегать ошибок на плотном потоке, потребуется более аккуратная схема и продуманная логика обработки сигнала. Дальше я покажу, на что обращать внимание в каждом случае.

Какие бывают DIY-счетчики посетителей

Все самодельные решения я условно разбил на несколько групп. Вот наглядная сводка, чтобы сразу понимать, где что применять:

Тип решения Как работает Плюсы Минусы Где уместно
Кнопка или ручной ввод Оператор нажимает кнопку при проходе Дешево, просто, надежно Только ручной учет Небольшие точки, временные мероприятия
Один датчик пересечения Фиксируется факт прохода через луч или зону Дешево, легко собрать Плохо считает направление и двойные срабатывания Узкий проход, простая статистика
Пара датчиков на двери Сравнение порядка срабатывания двух датчиков Можно различать вход и выход Требует настройки и логики Дверь, проход, тамбур
ИК-барьер Перекрытие инфракрасного луча Доступные модули, понятный принцип Чувствителен к монтажу и геометрии Внутренние проходы
Ультразвук Изменение расстояния до объекта Не требует луча между точками Сложнее стабильно настроить Эксперименты, простые сценарии
PIR-датчик движения Реагирует на движение тепла Дешево, широко доступно Не считает точные проходы Освещение, грубая активность
Камера + компьютерное зрение Распознает людей и движение Гибко и мощно Сложно, дороже, приватность Продвинутые проекты

Для DIY-проектов в небольших пространствах я чаще всего беру ИК-барьер, пару ИК-датчиков или магнитный датчик двери в связке с логикой на ESP32 или Arduino. По опыту, именно эти комбинации дают наилучший баланс между простотой и полезностью данных.

Самые простые DIY-решения: от совсем базовых до более точных

1. Ручной счетчик на кнопке

Самый прямой вариант: один человек — одно нажатие. Подходит, когда поток небольшой, а важна не автоматизация, а дисциплина учёта. Я не раз ставил такую схему на временных мероприятиях, где нужно быстро прикинуть посещаемость за вечер.

Плюсы:

  • почти нулевая стоимость — любая тактовая кнопка и пара проводов;
  • минимум схемотехники, собрать можно за десять минут;
  • легко объяснить любому сотруднику;
  • не требует калибровки.

Минусы очевидны любому, кто пробовал вести учёт вручную:

  • человеческий фактор — забывают нажимать именно в час пик;
  • сложно вести точный учёт, когда поток резко возрастает;
  • нет разделения входа и выхода;
  • данные быстро становятся неполными.

Такой вариант отлично работает как временное решение, но для постоянной эксплуатации он надоедает уже через неделю. Лучше сразу смотреть в сторону автоматики.

2. Один ИК-барьер на входе

Инфракрасный барьер состоит из излучателя и приемника. Когда человек проходит между ними и перекрывает луч, микроконтроллер фиксирует событие. Это один из самых простых автоматических вариантов: принцип понятен, модулей в продаже полно, а схема сводится к одному цифровому входу.

По опыту: рекомендую брать модули с уже сформированным цифровым выходом (обычно HIGH/LOW), а не аналоговые, чтобы не возиться с дополнительной фильтрацией на стороне МК. Что важно:

  • датчики нужно крепить жестко, без люфта — малейшее смещение меняет юстировку;
  • луч должен проходить в зоне, где человек точно его перекроет, иначе возможны пропуски;
  • рядом с датчиком не должно быть отражающих поверхностей — зеркал, глянцевых панелей, которые дают ложные срабатывания;
  • обязательно нужна защита от повторного срабатывания: один проход в коде должен давать строго один инкремент, иначе получите кратные счёты на медленном движении.

Подходит для узких дверей, турникетных зон, входов в комнату или подсобку. Я часто ставлю такой барьер в проходах шириной до 90 см — дальше уже нужны более мощные излучатели или дополнительные меры.

3. Два датчика для определения направления

Если поставить два датчика на небольшом расстоянии друг от друга, можно понять, в какую сторону движется человек. Сначала срабатывает датчик A, потом B — это вход. Если наоборот — выход. Получаем не просто «количество событий», а раздельную статистику, что гораздо полезнее для реальной аналитики.

Главное здесь — грамотно выбрать расстояние между датчиками. Я обычно ставлю 15–25 см для внутренних проходов. Если датчики слишком близко, система путается при быстрой ходьбе. Если слишком далеко, человек может изменить траекторию, и логика станет менее надёжной. Проверено: при расстоянии больше 40 см процент нераспознанных пар резко растёт.

Такой подход удобен для:

  • дверей с одним узким направлением движения;
  • проходов в небольших помещениях;
  • зон, где важен точный баланс вход/выход.

В прошивке обязательно закладывайте тайм-аут: если второй датчик не сработал за, скажем, 1,5 секунды, событие сбрасывается. Это спасает от зависших состояний.

4. Магнитный датчик двери + логика прохода

Иногда вместо точного подсчёта людей достаточно считать открывания двери. Для этого используют геркон или другой магнитный датчик. Это не столько счётчик посетителей, сколько счётчик событий двери. Я часто применяю такой подход в служебных и складских помещениях, где важно знать, насколько часто пользуются входом.

Полезен, если нужно понять:

  • насколько часто открывают входную дверь;
  • как часто пользуются дверью в подсобку или на склад;
  • сколько раз входная группа активируется за день.

Проблема в том, что одно открытие не всегда равно одному посетителю — могут зайти двое, или один и тот же человек выйдет и сразу вернётся. Но для мастерской, кладовой или технического помещения такая точность часто избыточна. Зато схема элементарная: геркон на косяке, магнит на двери, подтягивающий резистор и GPIO на ESP32.

Как выбрать датчик под задачу

Выбор зависит от того, что именно вы хотите измерять: факт движения, проход через линию или открытие двери. Я всегда сначала определяю сценарий, а потом подбираю железо — иначе легко уйти в сторону красивого, но бесполезного прототипа.

Короткий ориентир

  • Нужна простота — кнопка или геркон.
  • Нужно считать проходы — ИК-барьер.
  • Нужно понимать направление — два датчика.
  • Нужен учет активности двери — геркон.
  • Нужна гибкая интеграция с логикой, Wi‑Fi, логами — ESP32.

Сравнение по практическим критериям

Критерий Кнопка Геркон ИК-барьер Пара ИК-датчиков ESP32 + датчики
Сложность сборки Очень низкая Низкая Низкая Средняя Средняя
Точность проходов Низкая Низкая Средняя Выше средней Зависит от логики
Определение направления Нет Нет Нет Да Да
Устойчивость к шуму Высокая Высокая Средняя Средняя Высокая при правильной прошивке
Стоимость Низкая Низкая Низкая Низкая–средняя Средняя
Полезность данных Базовая Базовая Хорошая Очень хорошая Максимальная

Как видите, ESP32 в связке с датчиками даёт наиболее гибкий результат, и я почти всегда склоняюсь к этому варианту, если проект не одноразовый.

На чем собирать: Arduino или ESP32

Для простого прототипа Arduino вполне сгодится, если задача локальная и без связи. Но когда я перешёл на ESP32, то оценил не только Wi-Fi — с ним можно спокойно вести лог на SD-карту и одновременно отвечать на HTTP-запросы, что очень удобно для локальной статистики. Для постоянного практического проекта сегодня я однозначно выбираю ESP32.

Почему:

  • больше GPIO — можно подключить и датчики, и дисплей, и реле без дополнительных сдвиговых регистров;
  • встроенный Wi‑Fi и Bluetooth — счетчик легко становится частью общей сети;
  • удобно отправлять счётчики в облако, локальный сервер или MQTT-брокер;
  • можно вести логирование на microSD или внутреннюю файловую систему;
  • легко связать с Home Assistant, MQTT или сделать простой веб-интерфейс;
  • при желании делается локальная страница со статистикой в реальном времени.

Для счётчика проходов ESP32 особенно удобен, если вы хотите не только считать, но и:

  • показывать число на дисплее прямо над дверью;
  • отправлять данные на сервер каждые N минут или событий;
  • вести суточную статистику с графиками;
  • включать подсветку или сигнал при достижении порога (например, когда зал заполнен).

Я часто использую ESP32 DevKit с внешним стабилизатором питания на 3,3 В и парой танталовых конденсаторов по питанию — это убивает большинство проблем с шумами и просадками.

Базовая схема простого счетчика

Ниже — рабочая логика для простого устройства на ESP32 или Arduino. Она проверена мной не на одном десятке прототипов.

  1. Датчик фиксирует пересечение луча или зоны.
  2. Контроллер получает импульс на GPIO — обычно по прерыванию или опросу с таймером.
  3. Программа проверяет, не было ли недавнего ложного срабатывания (антидребезг).
  4. Счётчик увеличивается на 1.
  5. Данные отображаются на экране, в Serial Monitor или передаются по сети.

Если нужно считать вход и выход, используется второй датчик и состояние системы:

  • первым сработал левый датчик — ждём правый;
  • первым сработал правый — ждём левый;
  • если второй датчик не сработал в заданный промежуток (у меня обычно 1,2–1,5 с), событие сбрасывается;
  • если сработали оба в правильном порядке, фиксируется направление и увеличивается соответствующий счётчик.

В коде я всегда использую конечный автомат с состояниями IDLE, WAIT_FOR_SECOND и VALIDATE — так проще отслеживать логику и не допускать накопления ошибок.

Что обязательно добавить в прошивку

  • антидребезг — без него одиночный проход даст шлейф импульсов;
  • тайм-аут между событиями — предотвращает множественные счета при медленном движении;
  • защиту от повторного счета — блокировка на 200–300 мс после зафиксированного события;
  • сброс незавершенной пары датчиков — если второй датчик молчит дольше допустимого, состояние сбрасывается в исходное;
  • индикацию ошибок — если датчик не отвечает или завис, контроллер должен сигнализировать (хотя бы через Serial).

Без этих функций даже хороший датчик будет выдавать мусор на реальном потоке. Я убедился в этом, когда тестировал прототип на входе в мастерскую: без тайм-аутов один неспешный посетитель мог насчитать 3–4 прохода.

Типовые ошибки при сборке

Слишком чувствительный вход

Если не настроить фильтрацию, один человек может засчитаться два или три раза. Особенно часто это случается при медленном проходе или когда человек задерживается в дверном проеме. Решается программно: задержка на обработку и игнорирование повторных импульсов в пределах «окна».

Неправильная высота установки

Датчик, установленный слишком низко или слишком высоко, может не сработать на реального человека. Для дверного прохода я ставлю ИК-барьер на высоте 80–100 см от пола — это зона уверенного перекрытия и для взрослых, и для детей. Обязательно проверьте с разными людьми.

Слабое питание

Многие самодельные проблемы начинаются не с датчика, а с питания. Просадки, шум и плохие соединения вызывают ложные срабатывания. Я всегда ставлю отдельный стабилизатор на 3,3 В для логики и короткие (до 20 см) провода от БП к модулю. Если датчик питается от 5 В, лучше взять отдельный LDO, а не тянуть питание через длинный USB-кабель.

Отсутствие проверки на месте

Схема, которая хорошо работает на столе, может вести себя иначе на двери. Реальный тест обязателен: с разной скоростью прохода, с сумкой, вдвоем, в темной одежде, с открытой дверью и при естественном освещении. Я всегда выделяю на это минимум полчаса, иначе потом получаешь необъяснимые скачки в статистике.

Неправильный выбор технологии

Не стоит использовать PIR-датчик, если вам нужен точный счет проходов. Он видит движение, но не гарантирует корректный учет каждого человека. Для подсчета конкретных проходов PIR — ненадёжный инструмент, как бы ни хотелось сэкономить.

Пошаговый план сборки простого DIY-счетчика

Вариант для начала: один ИК-барьер + ESP32

  1. Выберите место установки и измерьте ширину прохода. Если больше метра — возможно, потребуется более мощный излучатель или дополнительная линза.
  2. Подберите ИК-датчик с чётким цифровым выходом. Я предпочитаю модули типа TCRT5000 для узких проёмов или готовые барьеры с отдельным излучателем и приёмником для проходов пошире.
  3. Подключите датчик к GPIO ESP32. Обычно достаточно трёх проводов: питание, земля и сигнал. Не забудьте подтягивающий резистор на 10 кОм, если модуль не имеет своего.
  4. Напишите простую логику подсчёта импульсов. Начните с опроса в loop() или используйте прерывания по изменению уровня.
  5. Добавьте антидребезг и задержку между событиями (я ставлю 250–300 мс).
  6. Выведите число на Serial Monitor или подключите небольшой OLED-дисплей.
  7. Протестируйте проходы с разной скоростью — медленно, быстро, с остановкой в проёме.
  8. Скорректируйте порог срабатывания и временные интервалы, если видите дубли.
  9. Закрепите датчик и спрячьте проводку в кабель-канал или гофру.
  10. Проверьте работу в течение полного дня — оставьте логгер и проанализируйте вечером.

Мини-чек-лист перед запуском

  • датчик закреплён жестко, без люфта;
  • провод не шатается и не натянут в месте пайки;
  • питание стабильное, без просадок при пиковых нагрузках;
  • счётчик не реагирует на случайные помехи (хлопки дверью, вибрацию);
  • один проход = одно событие (проверено на 20–30 проходах);
  • при двух людях подряд система не теряет данные и не склеивает их;
  • есть понятный способ сброса и просмотра счётчика (кнопка или веб-интерфейс).

Где такие решения реально полезны

Практика показывает, что простые счётчики отлично вписываются в самые разные сценарии:

  • небольшие магазины и шоурумы — оценить конверсию и часы пик;
  • мастерские и ремонтные зоны — понять загрузку и планировать ресурсы;
  • входы в бытовые и служебные помещения — контроль доступа;
  • коворкинги и студии — учёт посещаемости без дорогих систем;
  • выставочные инсталляции — подсчёт гостей на стенде;
  • домашние проекты с автоматикой — интеграция в умный дом;
  • небольшие общественные пространства, где важна понятная статистика без абонентской платы.

Если задача связана с атмосферой и управлением пространством, счётчик легко связывается с другими устройствами: подсветкой, табло, индикацией занятости, кнопкой вызова или простым уведомлением в Telegram. Я не раз подключал такой модуль к системе оповещения: когда счетчик переваливает за N, загорается светодиод «Занято» или приходит уведомление администратору.

FAQ

Можно ли сделать счетчик без микроконтроллера?

Да, но это будет либо ручной учёт, либо очень ограниченная схема на дискретных компонентах. Для нормального автоматического решения микроконтроллер сильно упрощает жизнь, особенно когда нужна обработка ошибок и передача данных.

Что точнее: ИК-барьер или PIR-датчик?

Для проходов точнее ИК-барьер. PIR-датчик лучше реагирует на движение, но хуже подходит для подсчета конкретных людей — он легко даёт ложные срабатывания на сквозняки или смену освещения.

Можно ли считать людей через одну дверь в обе стороны?

Да, если использовать два датчика и логику определения направления. Именно так я делаю в большинстве своих проектов.

Что выбрать для первого проекта?

Для первого практического DIY-счётчика рекомендую ИК-барьер + ESP32. Это понятный старт, который потом можно расширить до статистики, логов и автоматизации, не переделывая всё с нуля.

Как уменьшить ложные срабатывания?

Нужны жёсткая установка датчика, нормальное питание с фильтрацией, антидребезг в коде и обязательное тестирование на реальном проходе с разными людьми. Часто помогает экранирование сигнального провода, если он длиннее полуметра.

Нужен ли дисплей?

Не обязательно. Для старта достаточно Serial Monitor или веб-страницы на ESP32. Дисплей полезен, если счётчик должен быть виден прямо на месте — например, повесить над входом число посетителей за день.

Вывод

Самый простой счётчик проходов через дверь — это либо ручная кнопка, либо один датчик пересечения. Но если вам нужен действительно полезный DIY-проект, лучше сразу смотреть в сторону ИК-барьера, пары датчиков или геркона в связке с ESP32. Тогда устройство будет не просто «считать», а выдавать данные, на которые можно опираться в реальной работе помещения.

Главный принцип, который я вынес из своих проектов: сначала выбираем сценарий, потом датчик, потом логику обработки. Если перепутать порядок, получится красивый прототип, который плохо ведёт себя на двери. Начните с одного ИК-барьера и ESP32, а когда почувствуете уверенность — добавляйте направление, дисплей и интеграцию. Удачи в сборке!