Разработка счетчика посетителей

VIII Международный конкурс научно-исследовательских и творческих работ учащихся
Старт в науке

Разработка счетчика посетителей

Куреева Е.С. 1
1МБОУ «Гимназия №11 г. Ельца»
Австриевских Н.М. 1
1МБОУ «Гимназия №11 г. Ельца»
Автор работы награжден дипломом победителя I степени
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

Введение

Проблема:

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

Актуальность:

В современном мире информация о количестве посетителей очень важна.

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

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

Особенно актуально использование таких приборов на объектах повышенной опасности. Это очень важно, т.к. здесь используют, производят, перерабатывают, хранят или транспортируют радиоактивные, взрыво- и пожароопасные, химические и биологические вещества, создающие реальную угрозу возникновения чрезвычайной ситуации.

Также счетчик может быть полезен в расчете эффективности бизнеса. Наличие данных по посещениям в сопоставлении со статистикой по продажам позволяет вычислить конверсию (соотношение количества посетителей и реальных покупателей).

Цель:

Цель проекта - создать счетчик посетителей.

Задачи:

Узнать, что такое Arduino и изучить принцип его работы

Узнать, какие бывают счетчики посетителей и из чего они состоят

Выбрать наиболее подходящий вариант

Составить схему устройства

Написать программу для работы счетчика

Собрать счетчик и перенести на него программу

Проверить устройство в действии

Методика исследования

Основная концепция

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

Arduino – комбинация аппаратной и программной частей для простой разработки электроники.

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

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

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

Существует несколько версий платформ Arduino: Leonardo, Uno, Nano, Due.

Версия UNO является одной из самых популярных и широко иcпользуемой для небольших проектов.

Программирование микроконтроллеров Arduino осуществляется на языке программирования С/C++. Он прост в освоении, и на данный момент Arduino — это, пожалуй, самый удобный способ программирования устройств на микроконтроллерах.

Контроллер Arduino Uno построен на платформе ATmega328, имеющей 14 цифровых входов/выходов (6 из которых могут использоваться как выходы ШИМ), 6 аналоговых входов, кварцевый генератор 16 МГц, разъем USB, силовой разъем, разъем ICSP и кнопку перезагрузки (см. таблицу №1). Для работы необходимо подключить платформу к компьютеру посредством кабеля USB, либо подать питание при помощи адаптера или батареи.

Таблица №1

Технические характеристики Arduino Uno

Микроконтроллер

ATmega328

Рабочее напряжение

5 В

Входное напряжение (рекомендуемое)

7-12 В

Входное напряжение (предельное)

6-20 В

Цифровые Входы/Выходы

14 (6 из которых могут использоваться как выходы ШИМ)

Аналоговые входы

6

Постоянный ток через вход/выход

20 мА

Постоянный ток для вывода 3.3 В

50 мА

Флеш-память

32 Кб (ATmega328), из которых 0.5 Кб используются для загрузчика

Энергозависимая память (SRAM)

2 Кб

Энергонезависимая память (EEPROM)

1 Кб

Частота процессора

16 МГц

Встроенный светодиод

на 13 порту

Длина

68.6 мм

Ширина

53.4 мм

Вес

25 г

Сравнение с аналогами

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

1. На базе инфракрасных датчиков

Работают такие системы так.

На входе в магазин (или в иной контрольной точке, где есть наименьшая вероятность помехам работе оборудования) устанавливаются 2 устройства — излучатель ИК-лучей и приемник. Предполагается, что покупатели будут проходить между ними. Система включается, и между излучателем и приемником пропускается 2 инфракрасных луча.

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

К основным преимуществам инфракрасных систем подсчета посетителей можно отнести:

доступную стоимость;

низкую заметность;

относительно высокую защищенность от помех, перепадов температуры, влажности воздуха, освещенности в помещении.

2. На базе тепловых датчиков

Принцип работы таких систем совершенно иной.

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

Недостатки у тепловых датчиков:

относительно высокая стоимость;

чувствительность к изменению теплового фона (например, вследствие включения кондиционера или обогревателя);

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

3. На базе видеосчётчиков

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

К основным преимуществам таких решений можно отнести:

как и в случае с тепловыми счётчиками — возможность установки на потолке

Главный недостаток систем, функционирующих на базе принципа распознавания покупателя на общем световом фоне — невысокая точность подсчетов

4. На базе Arduino с помощью ультразвукового дальномера HC-SR04

Ультразвуковой датчик определяет расстояние до объекта так же, как это делают летучие мыши или дельфины. Датчик HC-SR04 генерирует узконаправленный сигнал на частоте 40 кГц и ловит отраженный сигнал (эхо). По времени распространения звука до объекта и обратно можно достаточно точно определить расстояние до него.

К основным преимуществам можно отнести:

доступную стоимость;

низкую заметность;

относительно не сложное изготовление

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

Для создания счетчика посетителей понадобится (рис.1):

1. Плата Arduino Uno;

2. Макетная плата;

3. USB-кабель;

4. УЗ дальномер HC-SR04 (2 шт);

5. LCD дисплей

6. резистор 220 Ом (2 шт);

7. Комплект проводов

Рис.1

Сборка

Собрала схему - подключила модули друг к другу и к контроллеру (рис. 2, 3, 4).

Написала скетч (программу). Программа была скачана из интернета и адаптирована к особенностям схемы (Приложение № 1, 2).

Загрузка программы в контроллер:

На официальном сайте Ардуино (https://www.arduino.cc) скачала драйвер, выбрала версию в ZIP архиве (можно сохранить на флешку и пользоваться с других компьютеров без установки). Распаковала загруженный файл и для удобства перенесла папку на рабочий стол.

Чтобы загрузить драйвер, входим:

"компьютер" ⇒ "свойства системы" ⇒ "диспетчер устройств" ⇒ "неизвестное устройство" (это и есть модуль Ардуино) ⇒ "обновить драйверы" ⇒ "выполнить поиск драйверов на этом компьютере" ⇒ "обзор" ⇒ указала папку на рабочем столе ⇒ "далее" ⇒ "установить". После установки драйвера - "закрыть".

Зашла в программу Ардуино из папки на рабочем столе, далее "запустить" ⇒ "разрешить доступ" - открылось окно программы Ардуино, далее необходимо вставить программу – скетч. Начала загрузку.

Рис.2

Рис.3

Рис.4

Приложение №1

Блок - схема алгоритма программы

Приложение № 2

Программа.

#include <LiquidCrystalRus.h>

const int rs = 2, en = 3, d4 = 10, d5 = 11, d6 = 12, d7 = 13;

LiquidCrystalRus lcd(rs, en, d4, d5, d6, d7);

#define PIN_TRIG1 7

#define PIN_ECHO1 6

#define PIN_TRIG2 9

#define PIN_ECHO2 8

int qtyin = 0;

int qtyout = 0;

int wight = 50; //ширина коридора, по которому проходят люди, уменьшенная на 20 см, подбирается экспериментально, чтобы однозначно определять, если дальномер показывает меньше - человек в зоне действия датчика, если больше - никого нет.

long duration1, cm1;

long duration2, cm2;

int control = 0;

int manin = 0;

int manout = 0;

int maninside = 0;

int readytonext = 1;

int prev1 = 0; // предыдущеесостояниедальномера 1

int prev2 = 0; // предыдущее состояние дальномера 2

void setup() {

lcd.begin(16, 2);

pinMode(PIN_TRIG1, OUTPUT);

pinMode(PIN_ECHO1, INPUT);

pinMode(PIN_TRIG2, OUTPUT);

pinMode(PIN_ECHO2, INPUT);

Serial.begin(9600);

}

void loop() {

lcd.clear();

// Сначала генерируем короткий импульс длительностью 2-5 микросекунд.

digitalWrite(PIN_TRIG1, LOW);

delayMicroseconds(5);

digitalWrite(PIN_TRIG1, HIGH);

// Выставиввысокийуровеньсигнала, ждемоколо 10 микросекунд. В этот момент датчик будет посылать сигналы с частотой 40 КГц.

delayMicroseconds(10);

digitalWrite(PIN_TRIG1, LOW);

// Время задержки акустического сигнала на эхолокаторе.

duration1 = pulseIn(PIN_ECHO1, HIGH);

// Теперь осталось преобразовать время в расстояние

cm1 = (duration1 / 2) / 29.1;

Serial.print ("Left ");

Serial.print (cm1);

lcd.setCursor(0, 0);

lcd.print (cm1);

//Serial.print (\t);

digitalWrite(PIN_TRIG2, LOW);

delayMicroseconds(5);

digitalWrite(PIN_TRIG2, HIGH);

// Выставиввысокийуровеньсигнала, ждемоколо 10 микросекунд. В этот момент датчик будет посылать сигналы с частотой 40 КГц.

delayMicroseconds(10);

digitalWrite(PIN_TRIG2, LOW);

// Время задержки акустического сигнала на эхолокаторе.

duration2 = pulseIn(PIN_ECHO2, HIGH);

// Теперь осталось преобразовать время в расстояние

cm2 = (duration2 / 2) / 29.1;

Serial.print (" Right ");

Serial.print (cm2);

lcd.setCursor(4, 0);

lcd.print (cm2);

//Serial.print (\t);

if (cm1 < wight){

if(prev1 == 0 && control == 0) { //если в прошлом цикле обработки человек уже был в зоне действия датчика, то не реагируем - уже обработано в прошлом цикле.

// в контрольную зону на вход

control = 1;

prev1 = 1;

}

if (prev1 == 0 && control == 1) {

//из контрольной на выход

control = 0;

prev1 = 1;

manout = manout + 1;

}

}

if (cm2 < wight) {

if (prev2 == 0 && control == 0) {

//в контрольную зону на выход

control = 1;

prev2 = 1;

}

if (prev2 == 0 && control ==1) {

//из контрольной на вход

control = 0;

prev2 = 1;

manin = manin + 1;

}

}

if (cm1 > wight) {prev1 = 0;}

if (cm2 > wight) {prev2 = 0;}

maninside = manin - manout;

if (maninside < 0) {

maninside = 0;

}

lcd.setCursor(0, 1);

Serial.print (" Inside ");

Serial.print (maninside);

//lcd.print ("Inside ")

lcd.print (maninside);

lcd.print (" man")

Serial.print (" man.");

Serial.print ("\n");

delay(250);

}

Проверка счетчика в действии. Результат работы

Проверим собранный счетчик в действии.

Подключим счетчик к компьютеру (рис.5).

Рис.5

При прохождении объекта через дальномеры результат выводится на экран. Мы видим, что при входе на экране отображается количество прохождений, при выходе количество минусуется. В итоге на экране отображается разница между количеством вошедших и вышедших посетителей (рис.6 - 14).

Рис.6 Рис.7

Рис.8 Рис.9

Рис.10 Рис.11

Рис.12 Рис.13

Рис.14

Также работу счетчика можно посмотреть на видео. (См.приложение – Видео).

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

Проведение анкетирования

Для изучения проблемы я провела анкетирование в местах массового скопления людей. Было опрошено 43 человека.

Я задала 2 вопроса:

Нужно ли устанавливать счетчики посетителей в местах массового скопления людей?

Где необходима установка такого прибора?

Результаты опроса – в таблицах № 2 и № 3 и диаграммах № 1 и № 2

Таблица № 2

 

Вопрос1

Ответ

Нужно ли устанавливать счетчики посетителей в местах массового скопления людей?

Да

33

Нет

3

Затрудняюсь ответить

7

Диаграмма № 1

Таблица №3

Ответ

Вопрос 2

 

Где необходима установка

счетчика посетителей?

На объектах повышенной опасности

6

В учебных заведениях

16

В торгово-развлекательных центрах

14

В аэропортах, на вокзалах

7

Диаграмма 2

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

Заключение

Цель и задачи, поставленные в работе, выполнены. В результате данной работы исследован принцип работы Arduino. На основе сравнения выбран счетчик, который сделан при небольших затратах и относительно не сложно. Проведено анкетирование в местах массового скопления людей относительности актуальности данного прибора.

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

В конце работы счетчик был проверен в действии.

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

Список литературы

Интернет – сайты:

Официальный сайт Ардуино (https://www.arduino.cc)

Все об Ардуино (https://all-arduino.ru/)

Подключение ультразвукового датчика к Ардуино

(http://роботехника18.рф/ультразвуковой-датчик-к-ардуино/)

Подключение Arduino, установка драйвера

(https://www.youtube.com/watch?v=E5a6iLrxAug)

Просмотров работы: 23