Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Создание счетчика посетителей, управляемого приложением для Android

Компоненты и расходные материалы

​​
Arduino UNO
× 1
Макет (общий)
× 2
Фоторезистор
× 3
Лазерный модуль
× 3
Зуммер
× 1
Светодиодный модуль RGB
× 1
LED (общий)
× 3
Резистор 1 кОм
× 3
Резистор 221 Ом
× 3
Батарея
× 1
Перемычки (общие)
× 1

Приложения и онлайн-сервисы

IDE Arduino
MIT App Inventor

Об этом проекте

Описание

Прежде всего, счетчик посетителей - это устройство, которое определяет количество людей, проходящих через подъезд. Я думал, что сделать счетчик людей, чтобы обезопасить мою комнату, когда мне нужно было уехать в отпуск на две недели. Кроме того, я хотел использовать счетчик людей в качестве сигнала тревоги, который предупреждает людей, у которых нет разрешения на вход в комнату. Лазер - лучший вариант для точного счета с помощью LDR из-за его скорости, поэтому я решил использовать лазеры с LDR для подсчета. В мою комнату есть три возможных входа (две двери и одно окно), поэтому я использовал три лазера и три LDR. Однако я понял, что мне нужно дистанционно управлять устройством, если я хочу выбирать между тем, какой входной лазер открыт, или включен ли сигнал тревоги или нет. Поэтому я добавил модуль Bluetooth HC-06 для связи с устройством с помощью созданного мной приложения для Android. Более того, приложение для Android отображает количество людей, которые входят в тот вход, за которым вы хотите наблюдать.

Чтобы поддержать мои проекты и статьи, вы можете посетить мой сайт здесь :)

Создание приложения

Существует множество различных способов создания приложения для Android, например, преобразование кода из HTML в Java или программирование приложения с помощью Python. Однако MIT App Inventor - самый простой способ из-за его структуры перетаскивания, когда вы хотите создать приложение для Android, но не забывайте, что оно еще не было совместимо с iOS.

Счетчик людей! - это имя приложения, которое включает два экрана с именами Screen1 и Screen2.

Экран1

Это главный экран для перехода к главному экрану, но, во-первых, необходимо правильно ввести пароль, установленный в MIT App Inventor. (По умолчанию я установил пароль «counter».)

Экран2

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

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

Как сделать счетчик людей с помощью лазеров и LDR

Лазер (усиление света за счет вынужденного излучения) - это устройство, которое в основном направляет пакет света по очень прямой линии к цели. А LDR (светозависимый резистор) может легко обнаружить увеличение интенсивности света, если лазер направлен прямо на себя. Когда между лазером и LDR есть препятствие, LDR обнаруживает уменьшение интенсивности света. Итак, если бы вы могли подсчитывать каждое уменьшение диапазона оптимального уровня, у вас был бы счетчик людей. Согласно моему эксперименту с LDR, диапазон оптимального уровня должен быть от 150 до 350.

Связи

  • Уномодули Arduino
  • Контакт 2 --------- Laser_Module_1
  • Контакт 3 -------- Laser_Module_2
  • Контакт 4 -------- Laser_Module_3
  • Контакт 5 -------- Зуммер
  • Контакт 6 -------- Модуль Bluetooth HC-06 (TX)
  • Контакт 7 --------- Модуль Bluetooth HC-06 (RX)
  • Контакт 8 --------- Control_Led_1
  • Контакт 12 --------- Control_Led_2
  • Контакт 13 ---------- Control_Led_3
  • Контакт 9 ------- RGB_Module (R)
  • Контакт 10 ------ RGB_Module (G)
  • Контакт 11 ------- RGB_Module (B)
  • АО ------------ LDR_1
  • A1 ------------- LDR_2
  • A2 ------------ LDR_3

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

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

Код

  • PeopleCounter_with_Lasers.ino
PeopleCounter_with_Lasers.ino Arduino
 ///////////////////////////////////////////// // Создание счетчика посетителей с помощью лазеров // // на устройстве Android // // Кутлухан Актар // // ///////////////////////// //////////////////////// Цель проекта - создать счетчик людей, который определяет количество людей, которые входят в комнату с помощью лазеров и LDR, и Управляйте им с помощью приложения для Android. //// Подключите одну ногу LDR к GND с помощью резистора 1 кОм. результаты счетчика посетителей точны, пожалуйста, установите оптимальный уровень LDR правильно. ////// Подключения://// Arduino Uno // Laser_Module_1 // Pin 2 ------------ ------------ // Laser_Module_2 // Контакт 3 ------------------------ // Laser_Module_3 // Контакт 4 ------------------------ // Зуммер // Контакт 5 ------------------- ----- // Модуль Bluetooth HC-06 // Контакт 6 ------------------------ TX // Контакт 7 ----- ------------------- RX // Control_Led_1 // Контакт 8 ----------------------- - // Control_Led_2 // Пин 12 ------------------------ // Control_Led_3 // Вывод 13 ------------------ ------ // RGB_Module // Вывод 9 ------------------------ R // Вывод 10 -------- ---------------- G // Вывод 11 ------------------------ B // LDR_1 / / AO ------------------------ // LDR_2 // A1 ------------------ ------ // LDR_3 // A2 ------------------------ #include  int LaserPin_1 =2; // Определение контактов лазерных датчиков. Int LaserPin_2 =3; int LaserPin_3 =4; int BuzzerPin =5; // Зуммер pin.int Control_RX =6; // Выводы RX и TX для библиотеки SoftWareSerial. Int Control_TX =7; int RedPin =9; // Выводы ШИМ для датчика RGB LED. Int GreenPin =10; int BluePin =11; int Control_Led_1 =8; // Устанавливаем каждый из светодиодов как отметку состояния каждого из лазерных модулей. Int Control_Led_2 =12; int Control_Led_3 =13; int LDR_1 =A0; // Аналоговые выводы для LDRs.int LDR_2 =A1; int LDR_3 =A2; int LDR_1_Read; // Определить значение LDR как глобальные переменные int LDR_2_Read; int LDR_3_Read; int Counter =0; // Установить нулевое значение счетчика по умолчанию. Volatile boolean Alarm_is_Activated =false; // Выбираем, включен сигнал тревоги или нет. Volatile boolean Alarm_Initial =false; volatile boolean Counter_Detect =false; // Это переменная, указывающая время задержки для Arduino.SoftwareSerial Control (Control_RX, Control_TX); // Определяем контакты Rx и Tx для связи с модулем Bluetooth.String Name ="Control"; // Назовите свой модуль и установите для него пароль. Int Password =1111; String Uart ="9600,0,0"; void setup () {Serial.begin (9600); Control.begin (9600); // Запускаем модуль Bluetooth HC-06 для связи. // Change_BluetoothModule_Defaults (); // Вы можете активировать его, если хотите изменить настройки модуля Bluetooth по умолчанию. pinMode (LaserPin_1, ВЫХОД); pinMode (LaserPin_2, ВЫХОД); pinMode (LaserPin_3, ВЫХОД); pinMode (RedPin, ВЫХОД); pinMode (GreenPin, ВЫХОД); pinMode (BluePin, ВЫХОД); pinMode (Control_Led_1, ВЫХОД); pinMode (Control_Led_2, ВЫХОД); pinMode (Control_Led_3, OUTPUT);} недействительный цикл () {get_Data_From_LDR (); // Получаем данные с датчиков LDR. if (Control.available ()) {// Если модуль Bluetooth HC-06 доступен, Commands () продолжился. char c =Control.read (); Serial.println (c); // Управляем символами, которые задаются приложением, с помощью терминала. Команды (c); } Установить будильник(); // Запускаем функцию тревоги. Set_Counter (); // Начинаем счетчик людей. } void Commands (char i) {// Выбираем, какие события происходят, когда конкретный символ отправляется из приложения в Arduino. переключатель (i) {case '1':Control.print (Counter); ломать; case '2':Alarm_is_Activated =true; ломать; case '3':Alarm_is_Activated =false; ломать; case '4':digitalWrite (LaserPin_1, HIGH); digitalWrite (Control_Led_1, HIGH); ломать; корпус 5:digitalWrite (LaserPin_1, LOW); digitalWrite (Control_Led_1, LOW); ломать; case '6':digitalWrite (LaserPin_2, HIGH); digitalWrite (Control_Led_2, HIGH); ломать; корпус «7»:digitalWrite (LaserPin_2, LOW); digitalWrite (Control_Led_2, LOW); ломать; case '8':digitalWrite (LaserPin_3, HIGH); digitalWrite (Control_Led_3, HIGH); ломать; корпус 9:digitalWrite (LaserPin_3, LOW); digitalWrite (Control_Led_3, LOW); ломать; case 'r':Counter =0; ломать; }} void get_Data_From_LDR () {// Получаем данные датчиков LDR. LDR_1_Read =аналоговое чтение (LDR_1); LDR_2_Read =аналоговое чтение (LDR_2); LDR_3_Read =аналоговое чтение (LDR_3); } void Set_Counter () {// Устанавливаем счетчик посетителей. if (LDR_1_Read <150 || LDR_2_Read <150 || LDR_3_Read <150) {// Если обнаружено движение. Counter_Detect =true; } еще {Counter_Detect =false; } if (Counter_Detect ==true) {Counter =Counter + 1; задержка (500); // Даем время, чтобы точно узнать количество людей, которые входят в комнату. } if (Counter_Detect ==false) {Counter =Counter; }} void Set_Alarm () {// Устанавливаем настраиваемую систему сигнализации. if (Alarm_is_Activated ==true) {if (LDR_1_Read <150 || LDR_2_Read <150 || LDR_3_Read <150) {// Если обнаружено движение. Alarm_Initial =true; } else {Alarm_Initial =false; } если (Alarm_Initial ==true) {тон (BuzzerPin, 500); Color_Change (255, 0, 0); задержка (50); Color_Change (0, 255, 0); задержка (50); Color_Change (0, 0, 255); задержка (50); Color_Change (255, 255, 0); задержка (50); Color_Change (80, 0, 80); задержка (50); Color_Change (0, 255, 255); задержка (50); Color_Change (255, 255, 255); задержка (50); }} if (Alarm_is_Activated ==false || Alarm_Initial ==false) {noTone (BuzzerPin); Color_Change (0, 0, 0); }} void Color_Change (int red, int green, int blue) {// Простое изменение переменных модуля RGB. red =255 - красный; green =255 - зеленый; blue =255 - синий; analogWrite (RedPin, красный); analogWrite (GreenPin, зеленый); analogWrite (BluePin, blue);} void Change_BluetoothModule_Defaults () {// Измените значения по умолчанию модуля Bluetooth, какие бы значения вы ни выбрали. Control.print («АТ + НАЗВАНИЕ»); // Меняем имя. Control.println (Имя); Serial.print («Имя изменено:»); Serial.println (Имя); задержка (2000); Control.print («AT + PSWD»); // Смена пароля. Control.println (Пароль); Serial.print («Пароль изменен:»); Serial.println (Пароль); задержка (2000); Control.print («AT + UART»); // Изменить скорость передачи. Если модуль Bluetooth - HC-05, значение скорости передачи по умолчанию - 38400. Control.println (Uart); Serial.print («Скорость передачи установлена:»); Serial.println (Uart); задержка (2000); Serial.println («Задача выполнена.»); // Вы можете увидеть, правильно ли выполнена задача или нет, используя терминал.} 

Изготовленные на заказ детали и корпуса

Файл кода People Counter! peoplecounter_J375iBnBF8.aiaФайл Apk People Counter! peoplecounter_uBf7MU4A1c.apk

Схема


Производственный процесс

  1. Вентилятор с регулируемой температурой
  2. Робот, управляемый жестами, использующий Raspberry Pi
  3. РОБОТ МАЛИНЫ PI WIFI, УПРАВЛЯЕМЫЙ С СМАРТ-ТЕЛЕФОНА ANDROID
  4. 3D RGB Arduclock
  5. Играйте с Fire через Wi-Fi (ESP8266, NeoPixels и приложение для Android)
  6. Игрушка под управлением Android с использованием Raspberry Motor Shield
  7. Светодиоды, управляемые Alexa через Raspberry Pi
  8. MyRiver
  9. Игра с джойстиком
  10. Идея ко Дню Святого Валентина - счетчик дней, проведенных вместе (фото)