Счетчик входящих людей на Ардуино

Подсчет входящих/выходящих людей в помещении на Arduino — простой и интересный проект для начинающих, который не претендует на большую точность подсчета. Представленный вариант позволит определять сколько человек находится в комнате, а также сколько людей заходило в магазин в течении всего периода измерений с выводом всей информации на монитор порта Arduino IDE 1.8.9 и на LCD дисплей.
Данный проект позволит вам узнать не только сколько зашло посетителей, но и сколько вышло. Так как в проекте используется два оптических датчика на фоторезисторе, то важно в каком порядке идет прерывание луча лазерного светодиода. Если проект используется для создания умного освещения, то для надежности работы проекта лучше всего добавить в схему датчик движения.
Как сделать датчик проходов Ардуино
Для этого проекта нам потребуется:
- плата Arduino Uno / Arduino Nano / Arduino Mega;
- 2 лазерных модуля KY-008;
- 2 модуля с фоторезистором;
- светодиод и резистор;
- LCD дисплей 1602 Ардуино;
- провода «папа-мама».

Кроме вывода информации на жк дисплей о том, сколько людей находится в помещении или заходило всего за весь день. В схему добавлен светодиод, который включается, когда в помещении кто-то находится. Вместо светодиода можно использовать LED ленту для организации освещения в помещении, которую можно включать от Arduino. После сборки схемы загрузите следующий скетч в плату.
Скетч для счетчика прохода на Ардуино
int x = 0; // количество людей в помещении сейчас int y = 0; // количество входивших людей за день byte w = 0; #include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C LCD(0x27, 20, 2); void setup() { LCD.init(); LCD.backlight(); Serial.begin(9600); pinMode(A1, INPUT); pinMode(A2, INPUT); pinMode(10, OUTPUT); } void loop() { // выводим данные на LCD дисплей LCD.setCursor(0, 0); LCD.print("People Now - "); LCD.print(x); LCD.setCursor(0, 1); LCD.print("People Total - "); LCD.print(y); // выводим данные на монитор порта Serial.print("People Now - "); Serial.println(x); Serial.print("People Total - "); Serial.println(y); delay(100); // если в помещении есть человек, включаем свет if (x >= 1) { digitalWrite(10, HIGH); } if (x < 1) { digitalWrite(10, LOW); } // считываем данные с датчиков int TSOP1 = analogRead(A1); Serial.print("T1 - "); Serial.println(TSOP1); int TSOP2 = analogRead(A2); Serial.print("T2 - "); Serial.println(TSOP2); if (TSOP1 < 500) { Serial.println("1 Sensor"); w = 1; } if (TSOP2 < 500) { Serial.println("2 Sensor"); w = 2; } if (TSOP1 > 500) {} if (TSOP2 > 500) {} // цикл запускается при срабатывании первого датчика // ждем, пока не сработает прерывание на втором датчике // когда лазер прерывается, прибавляем людей и выходим из цикла while (w == 1) { int TSOP2 = analogRead(A2); Serial.print("T2 - "); Serial.println(TSOP2); if (TSOP2 < 500) { Serial.println("2 Sensor, While 1"); x = x + 1; y = y + 1; delay(2000); w = 0; } if (TSOP2 > 500) {} } // цикл запускается при срабатывании второго датчика // ждем, пока не сработает прерывание на первом датчике // когда лазер прерывается, вычитаем людей и выходим из цикла while (w == 2) { int TSOP1 = analogRead(A1); Serial.print("T1 - "); Serial.println(TSOP1); if (TSOP1 < 500) { Serial.println("1 Sensor, While 2"); x = x - 1; if (x < 0) { x = 0; } delay(2000); w = 0; } if (TSOP1 > 500) {} } }
Пояснения к коду:
- переменная
byte w;
используется для входа/выхода из циклов while в скетче; - программа может работать без LCD дисплея, вся нужная информация дублируется на мониторе порта Arduino IDE.
Оптический счетчик посетителей можно поставить у двери или турникета помещения (организации), для подсчета количества посетителей за день, неделю или месяц. Также можно сделать умное освещение для автоматического включения света при наличии людей в комнате. Устройство не обладает точностью и его можно легко обмануть, для этого нужно пройти сразу нескольким людям вплотную друг к другу.
Подборка на тему: Счетчик входящих людей на Ардуино
2 комментариев для “Счетчик входящих людей на Ардуино”
Добавить комментарий
Записи похожие на: Arduino: подсчет посетителей магазина
- Функция map() Arduino IDE
- ИК приемник + Ардуино. Подключение
- Arduino IDE скачать на русском
- Итоги работы кружка «Робототехника»
Проекты похожие на: Arduino: подсчет посетителей магазина
А можно в качестве фоторезистора использовать LM393? Можно ли собрать эту схему на макетной плате? Если да то как?
Насколько я понял, вы имеете ввиду цифровой датчик освещенности Ардуино — он тоже изготовлен на основе фоторезистора, так что можно. Сборка на макетной плате зависит, только от того, откуда руки растут 🙂 В теории можно любую схему на макетной плате собрать