Меню

Счетчик людей своими руками

Датчик проходов на arduino

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

Датчик проходов представляет собой устройство состоящее из двух частей — приемника и источника излучения. Счет и запись данных осуществляется с помощью arduino nano. В качестве приемника используется модуль фоторезистора, выполненный на основе микросхемы LM393. Данные будут передаваться по аналоговому выходу модуля. Фоторезистор должен находится в специальном затемненном корпусе, чтобы исключить возможность срабатывания счетчика от посторонних источников света. Источник излучения представляет собой простейший лазерный диод. В данном устройстве был использован лазер от простой лазерной указки. Наличие лазера дает преимущество в расстоянии и стабильности по сравнению с инфракрасными светодиодами.Так же в данном устройстве имеется индикатор — 7 — сегментный 4 — разрядный индикатор под управлением драйвера TM1637. Для осуществления сброса используются 2 кнопки без фиксации. Сброс происходит только после ввода пароля. В процессе разработки будет задействована энергонезависимая память микроконтроллера для того, чтобы данные не терялись при случайном или намеренном отключении питания.

Кнопка сброса и ввода пароля подключены через 10 кОм резистор. Arduino, модуль фоторезистора и индикатор питаются от 5 вольтовой линии, можно использовать вывод +5v от arduino. Сам arduino может питаться от внешнего блока питания (7-12 вольт) используя пин Vin, по usb или пин +5v.

Программа

Принцип работы программы прост. Лазер постоянно светит на фоторезистор. Программа каждый раз получает значение с фоторезистора 0-1023. Во время излучения лазера показание с фоторезистора не превышает 50, когда некий объект перекрывает луч лазера то его показание превышает пороговое значение в 50. Когда значение превысит порог в 50 программа подождет 500 мили секунд (достаточное для того,чтобы человек прошел) затем снова опрашивает датчик и если значение снова менее 50 значит человек прошел иначе будет ждать пока человек не пройдет если вдруг он встал на месте. Зажав кнопку в течении 3 секунд начать сброс программа перейдет в режим сброс пароля на индикаторе будет отображаться вводимый с кнопки ввод цифровое значение (повторное нажатие увеличивает значение кода на +1). Без особого труда можно ввести 2-х значный пароль сброса. В программе используется энергонезависимая память eeprom в которую записывается значение счетчика. Перед началом работы программа обращается к памяти извлекает и выводит на дисплей последнее сохраненное значение счетчика (самое большое). Чтобы увеличить ресурс данного устройства ограниченную в циклах записи память используем с максимальной эффективностью. Для этого каждое следующее значение, полученное с счетчика записывается в последующие ячейки памяти, т.е. используются все ячейки памяти по порядку.При сбросе очищается значение счетчика не только в оперативной памяти но и в eeprom.

Устройство размещается внутри двух корпусов размерами 45x65x20мм. В готовых купленных корпусах были сделаны прорези для кнопок и индикатора, а также usb

Внутри второго корпуса был расположен драйвер питания со стабилизаторами 5 и 3.3 вольт куда был интегрирован лазерный диод. Данный драйвер питает arduino по usb используя внешний источник питания 12 v

Фото готового устройства и тестирование

Надеюсь данное устройство вам пригодится, желаю удачи в дальнейшей сборке, спасибо.

Источник

Автоматический счетчик посетителей и контроль света в комнате на Arduino

В повседневной жизни мы часто можем видеть счетчики посетителей на стадионах, в торговых центрах, офисах, учебных классах и т.д. Каким образом они подсчитывают количество людей и выключают свет когда никого нет внутри? В этой статье мы рассмотрим устройство на Arduino Uno для автоматического контроля света в помещении с двунаправленным счетчиком количества посетителей.

Читайте также:  Шкаф с окном под счетчик

Необходимые компоненты

  1. Плата Arduino Uno (купить на AliExpress).
  2. ЖК дисплей 16х2 (купить на AliExpress).
  3. Инфракрасный датчик (купить на AliExpress).
  4. Реле (на 5 В).
  5. Транзистор BC547.
  6. Резисторы.
  7. Светодиод.
  8. Макетная плата.
  9. Соединительные провода.

Основные принципы работы устройства

Рассматриваемый нами проект цифрового счетчика посетителей основан на использовании таких компонентов как датчики, двигатели, плата Arduino Uno и т.д. Этот счетчик будет способен подсчитывать количество посетителей в двух (обоих) направлениях. То есть он будет увеличивать счетчик посетителей когда человек проходит в центр/офис/стадион через входные ворота и уменьшать счетчик посетителей когда человек выходит из центра/офиса/стадиона через выходные ворота. Кроме указанных применений подобный счетчик можно также использовать на автопарковках и других общественных местах.

Проект разделен на 4 части: датчики, контроллер, дисплей для отображения числа посетителей и ворота. Датчик будет обнаруживать проходящих людей и подавать соответствующий сигнал на контроллер, который будет увеличивать или уменьшать счетчик посетителей в зависимости от того, вошел человек или вышел. Затем контроллер выдает команду на ЖК дисплей отобразить текущее количество посетителей.

Принцип обнаружения человека инфракрасным датчиком основан на том, что проходящий человек прерывает поток света на некоторое время и это прерывание света обнаруживается приемным инфракрасным датчиком.

Работа схемы

Структурно рассматриваемое нами устройство состоит из 4-х модулей: модуль датчиков, модуль управления, модуль отображения и модуль реле.

В модуле датчиков, схема которого представлена на рисунке ниже, мы имеем два инфракрасных датчика с инфракрасными диодами, потенциометр, компаратор (на операционном усилителе) и светодиоды. Потенциометр предназначен для установки опорного напряжения компаратора (для регулировки чувствительности устройства). Инфракрасные датчики обнаруживают отсутствие или присутствие объекта (человека) в поле своего действия и выдают соответствующие сигналы на компаратор. Компаратор сравнивает два напряжения и обеспечивает соответствующий цифровой сигнал на своем выходе. В представленном устройстве мы использовали два компаратора (поскольку у нас два модуля инфракрасных датчиков), реализованных на микросхеме LM358.

Модуль управления построен на основе платы Arduino UNO, которая используется для управления всем устройством. Выходы компараторов подсоединены к цифровым контактам 14 и 19 Arduino. Плата Arduino считывает сигналы с этих цифровых контактов и на их основе выдает соответствующие управляющие сигналы на реле, которое управляет включением и выключением цепи электрической лампочки (bulb).

Модуль отображения состоит из ЖК дисплея 16×2, на котором будет отображаться число людей, находящихся в комнате и статус света (включен/выключен) когда никого нет в комнате.

Модуль реле состоит из транзистора BC547 и реле на 5 В, управляющим включением/выключением электрической лампочки. Транзистор необходим для управления реле поскольку плата Arduino не обеспечивает необходимые значения токов и напряжений для этого. Плата Arduino будет подавать управляющие команды на транзистор, а он с помощью реле будет включать и выключать электрическую лампочку.

Полная схема устройства представлена на следующем рисунке.

Выходы инфракрасных датчиков непосредственно подключены к цифровым контактам Arduino 14(A0) и 19(A5). База транзистора через резистор подключена к контакту 2 Arduino. ЖК дисплей подсоединен к Arduino в 4-битном режиме. Контакты RS и EN ЖК дисплея подключены к контактам 13 и 12 Arduino. Контакты данных ЖК дисплея D4-D7 подключены к контактам 11-8 Arduino.

Читайте также:  Счетчик водяной резьбовой 50

Исходный код программы

В коде программы первым делом необходимо подключить библиотеку для работы с ЖК дисплеем и инициализировать необходимые контакты для работы.

#include

LiquidCrystal lcd(13,12,11,10,9,8);
#define in 14
#define out 19
#define relay 2

Затем необходимо указать направление работы для инициализированных контактов (на ввод или на вывод) и инициализировать ЖК дисплей для работы.

Далее в цикле программы мы считываем выходы датчиков и инкрементируем и декрементируем значение счетчика посетителей. Также мы проверяем на равенство нулю значение этого счетчика. Если он равен нулю, то это значит что в комнате никого нет – в этом случае мы выключаем свет в комнате (выключаем электрическую лампочку при помощи транзистора и реле).

Если же счетчик посетителей не равен нулю, то включаем свет. Также определим две функции: на вход и на выход посетителя.

Источник



Счётчик людей в помещении, управляющий освещением

Когда люди в течение дня приходят в помещение и уходят из него, свет, который забыл выключить ушедший последним, нередко остаётся гореть на всю ночь. Предлагаемый прибор, постоянно подсчитывая входящих и выходящих, всегда «знает”, сколько человек находится внутри. Устройство автоматически включает освещение, как только в помещение кто-нибудь входит, и выключает его, когда все вышли.

Построен прибор на микроконтроллере PIC12F629, обрабатывающем сигналы двух оптических бесконтактных датчиков положения объекта Opto-Bero 3RG7010-0CC00 фирмы Siemens, установленных на косяке двери так, что каждый входящий пересекает чувствительную зону сначала первого, а затем второго датчика, а выходящий пересекает их в обратном порядке.

Возможные варианты установки датчиков показаны на рис. 1. Вариант А используют, если косяк достаточно широк и имеется возможность разместить в вырезанных в нём углублениях два датчика, расположив их чувствительные поверхности в одной плоскости. В противном случае используют вариант Б. Опасаться затенения одного из датчиков закрытой дверью не следует, эта ситуация учтена в программе микроконтроллера и к ошибкам не приводит.

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

Вместо сравнительно дорогих фирменных оптических датчиков можно использовать самодельные, например, построенные по описанию в статье Ю. Виноградова «Лазерная указка в охранной сигнализации» («Радио», 2002, № 7, с. 43, 44). При этом источник излучения каждого такого датчика должен быть установлен точно напротив своего приёмника, который нужно поместить на противоположной стороне дверного проёма.

Схема счётчика показана на рис. 2. К колодке XT 1 в соответствии с номерами контактов подключают выводы датчика, который при входе человека в помещение срабатывает первым, а к колодке ХТ2 — выводы того, который срабатывает вторым. Через контакты 1 и 3 колодок на датчики поступает питающее напряжение 12 В. Когда в чувствительной зоне датчика нет отражающего предмета, открыт находящийся в этом датчике p-n-p транзистор, эмиттер которого соединён с выводом 1, а коллектор — с выводом 2. При наличии такого предмета датчик срабатывает и его внутренний транзистор закрывается.

Читайте также:  Как правильно снять показания электросчетчика меркурий 200

Пока ни один датчик не сработал, транзисторы VT1 и VT2 открыты, поэтому логические уровни напряжения на входах GP1 и GP2 микроконтроллера DD1 низкие. При срабатывании какого-либо датчика соединённый с его выводом 2 транзистор VT1 или VT2 закрывается. Уровень на входе GP1 (если сработал первый датчик) или на входе GP2 (если сработал второй) становится высоким.

Колодку ХТ4 включают последовательно в разрыв цепи осветительной лампы вместо обычного выключателя или параллельно ему. Выключателем SA1, подключённым к колодке ХТ3, можно разорвать цепь обмотки исполнительного реле К1, выключив этим автоматическое управление освещением. Если в этом выключателе нет необходимости, контакты колодки ХТ3 следует замкнуть перемычкой.

В начале своей работы (при подаче питания) программа микроконтроллера обнуляет организованный в ней счётчик срабатываний датчиков, а на выходах GP0 и GP4 устанавливает низкие уровни. Светодиод HL1 в этом состоянии выключен, транзистор VT3 закрыт. Ток через обмотку реле К1 не течёт, поэтому освещение выключено его разомкнутыми контактами.

Когда человек проходит мимо датчиков, программа определяет порядок их срабатывания. Если первым сработал датчик № 1, а за ним датчик № 2, значит, человек вошёл в помещение. Значение счётчика увеличивается на 1. Обратный порядок их срабатывания показывает, что человек вышел, и значение счётчика уменьшается на 1. Таким образом, число, накопленное в счётчике, всегда равно числу находящихся в помещении людей. Если оно больше нуля (максимально возможное значение — 255), на выходе GP0 высокий уровень и освещение включено. Если равно нулю (меньше оно стать не может, это предусмотрено в программе), то людей в помещении нет и освещение выключено. Учёт каждого входящего подтверждается серией вспышек светодиода HL1. Их число в серии равно числу людей, находящихся в данный момент в помещении. Человек, остановившийся в дверном проёме, не изменяет значение в счётчике. Оно изменится только при продолжении им движения в прежнем направлении.

Питается прибор от любого источника постоянного напряжения 12 В, потребляя в дежурном режиме ток не более 20 мА, к которому при включении освещения добавляется ток, текущий через обмотку реле К1. На микросхеме DA1 выполнен стабилизатор напряжения 5 В для питания микроконтроллера.

Печатная плата прибора изображена на рис. 3. Микроконтроллер PIC12F629-I/P допускается заменить на PIC12F675-I/P. Вместо интегрального стабилизатора 78L05 можно установить другой на +5 В, в том числе более мощный — 7805 (КР142ЕН5А), с учётом разницы в назначении его выводов. Транзисторы 2N2222 заменяются, например, на КТ315А, а замену транзистору 2N2926 следует подбирать с учётом рабочего тока обмотки реле К1. Контакты реле должны выдерживать переменное напряжение 220 В и ток (в том числе пусковой) ламп, которыми они управляют. Подойдёт, например, реле TRIL- 1 2VDC-FB-2CM.

Исходный код программы на языке ассемблера и прошивка микроконтроллера PIC12F629 доступны по этой ссылке.

Автор: В. Юшин, г. Электросталь Московской обл.
Источник: Журнал Радио 2013 №11

C этой схемой также часто просматривают:

Датчик присутствия людей
Акустический автомат управления освещением по двум хлопкам в ладоши
Регулятор скорости вентилятора автомобильной печки на PIC контроллере
Плата для программатора PICkit3
Прибор для поиска скрытой проводки на PIC12F629
Фотореле-таймер на микроконтроллере

Источник