DOI: 10.12731/2227-930X-2020-4-123-138 УДК 004.93
ПРИМЕНЕНИЕ QR-КОДОВ ДЛЯ ОРГАНИЗАЦИИ КОНТРОЛЬНО-ПРОПУСКНОГО ПУНКТА
Хамидуллин М.Р., Емельянов Д.В., Мустафин А.Ф., Исавнин А.Г.
Сегодня большинство компаний имеют автоматизированную систему пропусков, в которой работник подносит карточку, по которой регистрируется время его входа и выхода. Но зачастую в компаниях, использующих такой метод работы, отсутствуют устройства, изготавливающие данные карты и поэтому их необходимо заказывать у других организаций, что требует дополнительных затрат. Это может стать поводом отложить прием сотрудника на работу, что может быть критично в некоторых ситуациях. На сегодняшний день задача автоматизации контрольно-пропускного пункта является одной из самых важных задач, так необходимо вести учет времени прихода сотрудников на работу, разгрузить очередь, обеспечить безопасность работы предприятия.
Цель - разработка компонентов автоматизированного программного обеспечения по учёту рабочего времени персонала.
Метод или методология проведения работы: в статье рассмотрен проект по учёту рабочего времени персонала и учёта кадров с использованием среды программирования С#, Xamarin, SQL.
Результаты:разработано приложение для компьютеров и мобильных устройств, регистрирующая пользователей для регистрации прохода, и генерирующая уникальные для каждого пользователя коды доступа, которые тут же конвертируются в QR-коды и сравнивающие их с кодами, поданными на считыватель.
Область применения результатов: полученные результаты целесообразно применять предприятиям для организации контрольно-пропускного пункта с целью учета времени рабочих.
Ключевые слова: QR-код; язык программирования; шифрование; считыватель; микроконтроллер.
USING QR -CODES TO ORGANIZE A CHECKPOINT
Khamidullin M.R., Emelyanov D. V., Mustafin A.F., Isavnin A.F.
Today, most companies have an automated pass system in which an employee presents a card that records the time of his entry and exit. But often in companies using this method of work, there are no devices that produce these cards and therefore they must be ordered from other organizations, which requires additional costs. This can be a reason to postpone the hiring of an employee, which can be critical in some situations. Today, the task of automating a checkpoint is one of the most important tasks, so it is necessary to keep track of the time employees arrive at work, unload the queue, and ensure the safety of the enterprise.
Purpose - development ofautomated software components for staff time tracking.
Method or methodology of work: the article considers a projectfor recording staff time and personnel accounting using the C#, Xamarin, SQL programming environment.
Results: an application for computers and mobile devices was developed that registers users to register a passage and generates access codes unique for each user, which are immediately converted into QR codes and comparing them with the codes submitted to the reader.
Scope of the results: the results obtained are advisable to apply to enterprises to organize a checkpoint in order to track the time of workers.
Keywords: QR code; programming language; encryption; reader; microcontroller.
Введение
В данной статье рассматривается одно из возможных решений проблемы организации пропускного пункта. Подходы, изложенные в данной работе, описывают механизм реализации проходного
пункта в организации с применением QR -кодов и шифрования. Данная система необходима для разгрузки очередей работников на проходной, ликвидации любой возможности человеческой ошибки при пропуске человека на территорию предприятия, а также для облегчения труда бухгалтеров, т.к. система выводит точное количество часов, проведённых работником на рабочем месте за заранее указанный промежуток времени.
Данной статьей мы надеемся призвать улучшить уже существующую схему работы, описав механизм реализации проходного пункта в организации с применением QR-кодов и шифрования. Также разработанное решение позволит небольшим предприятиям, которые не используют автоматизированные системы пропускного контроля.
Ранее [1] мы уже описывали ситуацию с языками программирования на рынке, поэтому в данной статье продолжим использовать преимущества языка программирования С#, ведь он все так же имеет огромное сообщество программистов по всему миру.
После языка программирования необходимо определиться с турникетом. Обычно турникеты не оборудованы механизмами, для работы с ними через отдельно разрабатываемую программу, хотя на рынке и представлены решения [2], позволяющие контролировать турникет не только при помощи стандартного оборудования, данное решение все также потребует присутствия дополнительного микроконтроллера, а, в некоторых случаях и закупки нового турникета. Поэтому в данной задаче лучше всего сразу определиться с микроконтроллером. Неоспоримым лидером на рынке микроконтроллеров является АМшпо, которая позволит наладить диалог между турникетом и компьютером. Пользователи, желающие максимально полно и эффективно использовать возможности микроконтроллера, могут без ограничений использовать любые сторонние компиляторы и внутрисхемные программаторы [3].
Материалы и методы
Рассмотрим устройство желаемой системы. В существующую систему вместо пульта управления турникетом подключается микроконтроллер АМшпо. Сам микроконтроллер подключается к
компьютеру, у которого есть подключение к базе данных сотрудников и к считывателю QR-кодов.
Итоговая схема (представлена на рисунке 1) включает в себя шесть элементов: сервер с базой данных, вычислительный центр (в нашем случае персональный компьютер на проходной), мобильный телефон (должен быть у проходящего), микроконтроллер, устройство считывания QR-кодов (например, камера) и турникет.
Рис. 1. Схема подключения компонентов в системе (1 - сервер с базой данных), 2 - компьютер вахтёр, 3 - телефон работника, 4 - микроконтроллер, 5 - турникет, 6 - сканер QR-кодов)
Программа на компьютере имеет несколько функций:
- создание авторотационного QR-кода, необходимого для авторизации в мобильном приложении;
- запрос идентификационного номера и уникального ключа пользователя с сервера;
- генерация кода, с определённым интервалом, для сверки со сгенерированным QR-кодом на мобильном телефоне работника;
- отправка сигнала, при успешной сверки QR-кода, на контроллер;
- приём видеопотока и захват QR-кодов с устройства считывания QR-кодов;
- отправка записей о прошедших людях в базу данных на сервере.
Считыватель QR-кодов отправляет на компьютер видеопоток, к которому сотрудники поднося телефоны с QR-кодами. Турникет принимает сигнал открытия/закрытия с микроконтроллера. Контроллер принимает сигнал с компьютера и отправляет сигнал, согласно запрошенному действию, на турникет.
Программа на телефоне выполняет следующие действия:
- одноразово, при первом входе, считывает авторотационный QR-код;
- генерирует QR-код с определённым интервалом, необходимый для прохода через турникет.
Итоговый цикл работы, при устройстве работника на предприятие, выглядит так:
- работника заносят в базу данных на сервере;
- работник устанавливает мобильное приложение на телефон;
- отдел кадров выдаёт сотруднику уникальный авторотационный код в виде QR-кода;
- после считывания авторотационного кода, мобильное приложение начинает генерировать QR-код, необходимый для прохода через турникет, с определенным интервалом;
- работник подносит телефон с открытым приложением к считывателю;
- компьютер захватывает QR-код с видеопотока, передаваемого со считывателя;
- компьютер расшифровывает QR-код и сверяет его со своим сгенерированным кодом;
- в случае, если коды совпали, компьютер подаёт сигнал на контроллер, а контроллер подаёт сигнал открытия на турникет;
- компьютер отправляет в базу данных на сервере данные о дате и времени прохода работника.
Алгоритм создания одноразовых паролей для защищенной аутентификации существует уже не первый год и используются мно-
жеством крупных компаниях. Данный алгоритм является довольно распространённым способом дополнительный защиты аккаунта в сети Интернет [8].
Для создания ключа, а также кода, согласно ключу, не нужно погружаться в структуру работы данного алгоритма, ведь для решения задачи можно использовать, открытый для интеграции в проект, репозиторий «Otp.NET», доступный на GitHub и NuGet [9]. Для начала на компьютере создается код, а также указывается время существования данного кода. Иногда может потребоваться создать предыдущий или последующий ключ. Для этого необходимо выполнять (в данном случае генерируется предыдущий ключ):
byte[] key = KeyGeneTation.GenerateR5ndoniKey(n);
var totpCode= totp.ComputeTotp(DateTime .UtcNow);
var totpCode = totp. ComputeTotp(DateTnne.UtcNow. AddSeconds(-k));.
Рис. 2. Код по генерации ключей
В качестве основного инструмента для аутентификации пользователей был выбран QR-код, как самый лёгкий и недорогой инструмент.
Была создана база данных для SQL, содержащая необходимое и достаточное для работоспособности системы количество таблиц. Схему можно увидеть на рисунке 3.
Генерация QR-кода на телефоне может быть произведена с помощью библиотек «ZXing.NetMobile.Forms» и «ZXing.Net. Mobile» [10]. Они могут быть интегрированы в проект с помощью система управления пакетами NuGet. Их исходный код и примеры доступны на GitHub.
Заранее создаем строковую переменную (qrcodetext). С помощью подлеченных библиотек библиотеки выполним сканирование и дешифровку QR-кода по нажатии кнопки.
3 О idproho^i 3 ID : int<11) tt Key 0 : int(11 tt Key 1 : int(11 tt Key2 : int(11 tt Key 3 : int(11 tt Key4 : int(11 tt Key5 : int(11 tt Key б : int(11 tt Key7 : int(11 tt Key8 : int(11 tt Key9 : int{11 tt Key 10 : int<1 tt Key 11 : int(1 tt Key 12 : int<1 tt Key 13 : int(1 tt Key 14 : int<1 tt Key 15 : int<1 tt Key 16 : int<1 tt Key 17 : int<1 tt Key 18 : int{1 tt Key 19 : int(1 tt KeysPing : ir
Рис. 3. Схема базы данных на SQL scanPage = new ZXing S|cannerP age();. scanPage. OnScanResult += (result) =>
Device3eginInvokeOnMainThread(() =>
await NavigationJ^JshModaLAsync(scanPage);
Рис. 4. Сканирование и дешифровка QR-кода по нажатии кнопки
Таким образом по завершении сканирования QR-кода в переменной qrcodetext будет содержаться информация, находившаяся в QR-коде. Далее программный код аналогичен коду на компьютере [11, 12].
Результаты
Для полноценного функционирования приложения необходимо устройство, которое было бы у каждого работника. В наше время таким устройством обладает каждый человек - мобильное устрой-ство(смартфон). Однако к мобильному устройству, для использования его в качестве пропуска, предъявляются требование, такие как наличие камеры для считывания QR-кода.
Можно сделать вывод, что такими характеристиками обладает каждое мобильное устройство, поэтому проблем с недоступностью быть не должно.
Приложение было разработано на Xamarin Forms - интерфейс для создания приложений на мобильные устройства на языке C#.
Схему работы Xamarin Forms можно видеть на рисунке 5.
Рис. 5. Схема работы Xamarin Forms.
Суть этого интерфейса в том, что он конвертирует элементы приложения, созданные для системы на Windows или Macintosh в элементы для мобильных систем, таких как Android или IOS.
Такое приложение будет полноценно работать на телефонах, поддерживая все внешние библиотеки для С#.
Для создания мобильного приложения использовались следующие библиотеки:
1. АБо^е - необходима для того, чтобы подключать 1Р камеры или телефоны, используемые в качестве 1Р камер к приложению через указание 1Р источника изображения.
2. Zen.Barcode - используется для генерации QR-кода из определённой строки.
3. ZXmg - библиотека, используемая для декодирования QR-кодов.
4. OtpNet - необходима для генерации кодов пропуска. Коды генерируются в зависимости от ключа, уникального для каждого пользователя, и текущего времени.
5. System.Ю.Ports - библиотека, необходимая для вывода сигнала на микроконтроллер.
При первом запуске пользователю будет предложено авторизоваться. Для этого необходимо нажать кнопку «Войти» и отсканировать QR-код, генерируемый на ПК приложении. QR-код содержит Логин и 20 символов уникального ключа, необходимого для генерации ТОТР ключа. Также на главной странице имеется QR-код, ведущий на интернет страницу производства. Увидеть изображение формы авторизации можно на рисунке 6.
Рис. 6. Форма авторизации
После нажатия кнопки «Войти» на телефоне активируется камера, а в приложении будет показано изображение, передаваемое с камерой. Так же можно включить вспышку, а по центру изображения есть центрирующая полоска красного цвета для более удобного считывания QR-кода. Увидеть изображение с окна считывания кода в приложении можно на рисунке 7.
Рис. 7. Считывание кода для авторизации
После того, как QR-код, необходимый для авторизации, будет считан, на экране останется лишь генерируемый через ТОТР код авторизации для считывания через считыватель на проходной. Сам код, генерируемый через ТОТР зависит от секретного ключа, уникального для каждого пользователя и текущего времени. Во время авторизации вместе с логином на устройство также передаётся и уникальный код, необходимый для генерации. Поэтому устройство на телефоне не требует подключения к интернету для того, что система функционировала правильно.
Рис. 8. Окно с кодом считывания
Выводы
Большинство предприятий на сегодняшний день оборудовано устаревшей технологией пропуска работников на предприятие и учёта их рабочего времени. Такой метод - один из самых неэффективных методов пропуска работников. Все действия в нём выполняются человеком, что создаёт очереди на проходной. Отдельно стоит сказать про учёт рабочего времени на большинстве предприятий. В основном никакого учёта нету, а работнику просто «начисляют» 8 часов времени каждый день, если он не прогулял и не находился на больничном, либо в отпуске. Такой метод работает только в случае, если человек работает по определённому графику, и определённое количество времени в день. Даже с учётом этого бухгалтерам требуется подавать запросы, чтобы узнать отработанное каждым работником время за месяц для того, чтобы корректно начислить зарплату. Данные технологии позволят не только многократно удешевить анализируемую систему, но и не оттягивать прием работников из-за отсутствия возможности быстро сделать электронный пропуск. Итогом разработки системы был спроектирован аппаратно-программный комплекс, позволяющих регистрировать пользователей, их входы и выходы с предприятия,
и рассчитывать общее время работы на предприятии. Учитывая всё вышеизложенное, можно сделать вывод, что система, которая была бы избавлена от многих недостатков, полностью автоматизированная, значительно улучшила бы ситуацию в этой области.
Список литературы
1. Акмаров П.Б. Кодирование и защита информации : учебное пособие. Ижевск: Ижевская ГСХА, 2016. 136 с. URL: https://e.lanbook. com/book/133975 (дата обращения: 28.02.2020).
2. Богачёв К.Ю. Основы параллельного программирования. Москва: БИНОМ. Лаборатория знаний, 2015. 345 с. URL: https://ibooks.ru/ reading.php?productid=350082 (дата обращения: 28.02.2020).
3. Гарибов А.И. Основы разработки приложений для мобильных устройств на платформе Windows Phone: учебное пособие. Москва: ИНТУИТ, 2016. 459 с. URL: https://elanbook.com/book/100344 (дата обращения: 28.02.2020).
4. Иванова Г.С. Технология программирования : учебник. М.: КНО-РУС, 2011. 336 с.
5. Подбельский В.В. Язык декларативного программирования XAML. Москва: ДМК Пресс, 2018. 336 с. URL: https://e.lanbook. com/book/111428 (дата обращения: 28.02.2020).
6. Пономаренко В.И., Караваев А.С. Использование платформы Arduino в измерениях и физическом эксперименте // Известия Вузов. ПНД. 2014. Т. 22, №4. С. 77-90. URL: https://cyberleninka. ru/article/n/ispolzovanie-platformy-arduino-v-izmereniyah-i-fizicheskom-eksperimente (дата обращения: 28.02.2020).
7. Рудинский И.Д. Технология проектирования автоматизированных систем обработки информации и управления. Москва: Горячая линия-Телеком, 2011. 304 с. URL: https://elanbook.com/book/5191 (дата обращения: 28.02.2020).
8. Соколова В.В. Разработка мобильных приложений: учебное пособие. Томск: ТПУ, 2014. 176 с. URL: https://elanbook.com/book/82830 (дата обращения: 28.02.2020).
9. Тугов В.В. Проектирование автоматизированных систем управления: учебное пособие / В.В. Тугов, А.И. Сергеев, Н.С. Шаров.
Санкт-Петербург: Лань, 2019. 172 с. URL: https://elanbook.com/ book/123695 (дата обращения: 28.02.2020).
10. Чикалов А.Н. Схемотехника телекоммуникационных устройств: Учебное пособие для вузов [Электронный ресурс]: учеб. пособие / А.Н. Чикалов, С.В. Соколов, Е.В. Титов. Москва: Горячая линия-Телеком, 2016. 322 с. URL: https://e.lanbook.com/book/94634
11. Шаньгин, В.Ф. Защита информации в компьютерных системах и сетях [Электронный ресурс] : учеб. Пособие. Москва: ДМК Пресс, 2012. 592 с. URL: https://elanbook.com/book/3032
12. Шандров Б.В. Технические средства автоматизации: учебник / Б.В. Шандров, А.Д. Чудаков. М.: ИЦ «Академия», 2007. 368 с. С. 358.
13. Шишмарёв В.Ю. Основы автоматического управления: учебное пособие. М.: Академия, 2008. 352 с. С. 343-344.
14. Khamidullin M.R., Mardanshin R.G., Prozorov A.V., Karimov R.I. The Introduction of QR-Codes in Production Processes // Journal of Environmental Treatment Techniques. 2019, Special Issue on Environment, Management and Economy, pp. 1097-1100.
15. Isavnin A.G., Khamidullin M.R. Determining of total expenses for the objective of equipment replacement // Life Science Journal , 2014, .№11 (6), pp. 704-706.
References
1. Akmarov P. B. Kodirovanie i zashchita informatsii [Encoding and protection of information]. Izhevsk, 2016. 136 p.
2. Bogachev K.Yu. Osnovy parallel'nogo programmirovaniya [Parallel programming basics]. Moscow: BINOM, 2015. 345 p.
3. Garibov A.I. Osnovy razrabotkiprilozheniy dlya mobil'nykh ustroystv na platforme Windows Phone [Fundamentals of developing applications for mobile devices on the Windows Phone platform]. Moscow: INTUIT, 2016. 459 p.
4. Ivanova G.S. Tekhnologiya programmirovaniya [Programming technology]. Moscow: KRONUS, 2011. 336 p.
5. Podbel'skiy V.V. Yazyk deklarativnogo programmirovaniya XAML [XAML Declarative Programming Language]. Moscow: DMK Press, 2018. 336 p.
6. Ponomarenko V. I., Karavaev A. S. Ispol'zovanie platformy Arduino v izmereniyakh i fizicheskom eksperimente [Using the Arduino Platform in Measurements and Physics Experiment]. Izvestiya VuzovPND, 2014. V. 22, №4. P. 77-90.
7. Rudinskiy I.D. Tekhnologiya proektirovaniya avtomatizirovannykh sistem obrabotki informatsii i upravleniya [Design technology for automated information processing and control systems]. Moscow: Telekom, 2011. 304 p.
8. Sokolova V.V. Razrabotka mobil'nykh prilozheniy [Development of mobile applications]. Tomsk: TPU, 2014. 176 p.
9. Tugov V.V., Sergeev A.I., Sharov N.S. Proektirovanie avtomatiziro-vannykh sistem upravleniya [Design of automated control systems]. Saint-Petersburg: Lan, 2019. 172 p.
10. Chikalov A.N. Skhemotekhnika telekommunikatsionnykh ustroystv [Circuitry of telecommunication devices]. Moscow: Telekom, 2016. 322 p.
11. Shan'gin V.F. Zashchita informatsii v komp'yuternykh sistemakh i setyakh [Information security in computer systems and networks]. Moscow: DMK Press, 2012. 592 p.
12. Shandrov B.V., Chudakov A.D. Tekhnicheskie sredstva avtomatizatsii [Technical means of automation]. Moscow: IT Academy, 2007. 368 p.
13. Shishmarev V.Yu. Basics of automatic control. Moscow: IT Academy, 2008. 352 p.
14. Khamidullin M.R., Mardanshin R.G., Prozorov A.V., Karimov R.I. The Introduction of QR-Codes in Production Processes. Journal of Environmental Treatment Techniques, 2019, pp. 1097-1100.
15. Isavnin A.G., Khamidullin M.R. Determining of total expenses for the objective of equipment replacement. Life Science Journal, 2014, no 11 (6), pp. 704-706.
ДАННЫЕ ОБ АВТОРАХ
Хамидуллин Марат Раисович, доцент, кандидат экономических наук
Набережночелнинский филиал Казанского национального исследовательского технического университета им.А.Н.Туполева
ул. Академика Королева, 1, г. Набережные Челны, 423814,
Российская Федерация
Емельянов Дмитрий Владимирович, доцент, кандидат технических наук
Набережночелнинский филиал Казанского национального исследовательского технического университета им.А.Н.Туполева ул. Академика Королева, 1, г. Набережные Челны, 423814, Российская Федерация [email protected]
Мустафин Азат Филькатович, доцент, кандидат педагогических наук Набережночелнинский филиал Казанского национального исследовательского технического университета им.А.Н.Туполева ул. Академика Королева, 1, г. Набережные Челны, 423814, Российская Федерация [email protected]
Исавнин Алексей Геннадьевич, профессор, доктор физико-математических наук
Набережночелнинский филиал Казанского государственного (Приволжского) Федерального университета проспект Мира, 68/19, г. Набережные Челны,423812, Российская Федерация [email protected]
DATA ABOUT THE AUTHORS Khamidullin Marat Raisovich, PhD in Economics
Kazan National Research Technical University, Naberezhnye Chelny Branch
1, Akademik Korolev Str., Naberezhnye Chelny, 423814, Russian
Federation
ORCID: 0000-0002-3326-0955
Emelyanov Dmitry Vladimirovich, PhD in Technics
Kazan National Research Technical University, Naberezhnye Chelny Branch
1, Akademik Korolev Str., Naberezhnye Chelny, 423814, Russian
Federation
Mustafin Azat Filkatovich, PhD in Pedagogic
Kazan National Research Technical University, Naberezhnye Chelny Branch
1, Akademik Korolev Str., Naberezhnye Chelny, 423814, Russian
Federation
Isavnin Alexei Gennadyevich, Doctor of Physical and Mathematical Sciences
Kazan Federal University, Naberezhnye Chelny Branch 68/19, ProspektMira Str., Naberezhnye Chelny, 423812, Russian Federation [email protected]