Счётчик прохода людей на Ардуино — это простой и интересный проект для начинающих, который не претендует на очень точный подсчет. Представленный вариант будет определять количество людей, находящихся в помещении, а также количество людей или посетителей магазина в течение всего периода измерений с выводом всей информации на последовательный порт Arduino IDE и на жидкокристаллический дисплей 1602.
СОДЕРЖАНИЕ
Необходимые компоненты:
- Arduino Uno / Arduino Nano / Arduino Mega
- дисплей LCD 1602 i2c
- 2 лазерных светодиода
- 2 датчика освещенности
- светодиод и резистор
- макетная плата
- коннекторы
- библиотека LiquidCrystal_I2C.h
Дополнительные материалы на эту тему:
Датчик прохода посетителей с дисплеем LCD 1602 позволит довольно точно узнать, сколько людей посетило ваш магазин. В проекте используются два датчика освещенности ky-018. Для алгоритма работы программы важно в каком порядке прерывается лазерный луч, от этого зависит понятие микроконтроллером входа или выхода посетителя. Счетчик может быть установлен в проеме входной двери офиса или магазина.
Счетчик людей в магазине на Ардуино с дисплеем

| LCD 1602 i2c | Arduino Uno | Arduino Nano | Arduino Mega |
| GND | GND | GND | GND |
| VCC | 5V | 5V | 5V |
| SDA | A4 | A4 | 20 |
| SCL | A5 | A5 | 21 |
Помимо отображения на дисплее LCD 1602 информации о количестве людей в помещении или пришедших на весь день. В схему можно добавить светодиод, который будет включаться, когда кто-то находится в комнате. Вместо светодиода для освещения в комнате можно использовать LED ленту, которую можно включать от Arduino через реле или транзистор. После сборки схемы загрузите на плату следующую программу.
Скетч для счетчика посетителей магазина на Ардуино
#include "Wire.h"
#include "LiquidCrystal_I2C.h"
LiquidCrystal_I2C LCD(0x27, 20, 2);
int x = 0;
int y = 0;
byte w = 0;
void setup() {
LCD.init();
LCD.backlight();
Serial.begin(9600);
pinMode(A1, INPUT);
pinMode(A2, INPUT);
pinMode(10, OUTPUT);
pinMode(7, OUTPUT);
digitalWrite(10, HIGH);
}
void loop() {
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) { w = 1; }
if (TSOP2 < 500) { w = 2; }
while (w == 1) {
TSOP2 = analogRead(A2);
Serial.print("T2 - ");
Serial.println(TSOP2);
if (TSOP2 < 500) {
x = x + 1;
y = y + 1;
delay(2000); w = 0;
}
}
while (w == 2) {
int TSOP1 = analogRead(A1);
Serial.print("T1 - ");
Serial.println(TSOP1);
if (TSOP1 < 500) {
x = x - 1;
if (x < 0) { x = 0; }
delay(2000); w = 0;
}
}
}
Заключение. Этот проект позволит вам узнать не только, сколько посетителей вошло, но и сколько вышло из помещения. Поскольку в проекте используются два оптических датчика Arduino LDR, важно знать, в каком порядке прерывается лазерный луч. Оптический счетчик посетителей может быть установлен на двери или турникете помещения (организации) для подсчета количества посетителей в день, неделю или месяц.
