Please use this identifier to cite or link to this item: https://er.chdtu.edu.ua/handle/ChSTU/7293
Title: Система реєстрації та контролю відвідуваності на основі мікроконтролерів ESP8266
Authors: НЕЧИПОРЕНКО, Ольга
ЧУПИЛКА, Роман
Keywords: ESP8266;КОНТРОЛЬ ВІДВІДУВАНОСТІ;КАРТА ДОСТУПУ;ОБЛІК РОБОЧОГО ЧАСУ;БАЗА ДАНИХ;ІНТЕГРАЦІЯ З ВІДЕОКАМЕРАМИ;ІДЕНТИФІКАЦІЯ СПІВРОБІТНИКІВ;СИСТЕМА МОНІТОРИНГУ;ЗВІТНІСТЬ ДЛЯ МЕНЕДЖЕРІВ
Issue Date: 2025
Abstract: Метою виконання даної кваліфікаційної роботи на здобуття освітнього ступеня «бакалавр» є автоматизація контролю робочого часу, реєстрації присутності та обліку відвідуваності працівників шляхом впровадження системи реєстрації та контролю відвідуваності на основі мікроконтролерів ESP8266. Загальний обсяг роботи становить 78 сторінок. У роботі 16 рисунків. Для виконання роботи використано 25 літературних джерел. Головне завдання – це розробити автоматизовану систему реєстрації та контролю відвідуваності на основі RFID-технологій із використанням мікроконтролера ESP8266, яка забезпечує ідентифікацію користувачів, безпечну передачу даних на сервер, збереження інформації в базі даних та зручне адміністрування через веб-інтерфейс. Стислий опис розділів кваліфікаційної роботи бакалавра складається з аналізу предметної області та постановки задачі; вибору технологій та інструментальних засобів; розробка системи реєстрації та контролю відвідуваності на основі мікроконтролерів ESP8266.
URI: https://er.chdtu.edu.ua/handle/ChSTU/7293
Appears in Collections:123 Комп’ютерна інженерія (Комп'ютерні системи та мережі)

Files in This Item:
File Description SizeFormat 
1_ТИТУЛКА_ЧУПИЛКА-merged.pdf
  Restricted Access
1.97 MBAdobe PDFView/Open Request a copy


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.

Extracted text
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ
ФАКУЛЬТЕТ ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ І СИСТЕМ
КАФЕДРА ІНФОРМАЦІЙНОЇ БЕЗПЕКИ ТА КОМП’ЮТЕРНОЇ ІНЖЕНЕРІЇ
ПОЯСНЮВАЛЬНА ЗАПИСКА
до кваліфікаційної роботи бакалавра
на тему: «Система реєстрації та контролю
відвідуваності на основі мікроконтролерів
ESP8266»
ЧДТУ.252210.010 ПЗ
Виконав: студент 4 курсу, групи КМ-2105
спеціальності 123 – «Комп’ютерна інженерія»
за освітньою програмою – «Комп’ютерні системи
та мережі»
Роман ЧУПИЛКА
Керівник
к.т.н., доцент
Ольга НЕЧИПОРЕНКО
Рецензент
к.т.н., доцент кафедри КІ та ІТ, ЧДБК
Сергій БУРМІСТРОВ
«ЗАХИСТ ДОЗВОЛЯЮ»
Завідувач кафедри ІБ та КІ
д.т.н., професор ___________ Віра БАБЕНКО
Черкаси 2025 року
Форма № Н-9.01
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ
Факультет: інформаційних технологій і систем
Кафедра: інформаційної безпеки та комп’ютерної інженерії
Освітньо-кваліфікаційний рівень: Бакалавр
Спеціальність 123 – Комп’ютерна інженерія
Освітня програма Комп’ютерні системи та мережі
«ЗАТВЕРДЖУЮ»
Завідувач кафедри ІБ та КІ
д.т.н., професор _____________ Віра БАБЕНКО
«28» лютого 2025 року
ЗАВДАННЯ
на кваліфікаційну роботу бакалавра студенту
Чупилці Роману Григоровичу
(прізвище, ім‘я, по батькові)
1. Тема роботи: Система реєстрації та контролю відвідуваності на основі
мікроконтролерів ESP8266
Керівник роботи: к.т.н., доцент Нечипоренко Ольга Володимирівна
(прізвище, ім’я, по батькові, науковий ступінь, вчене звання)
затверджені наказом університету від «25» лютого 2025 р. № 53/03-03
2. Строк подання студентом роботи:
3. Вихідні дані до роботи:
Технологія автоматизації для обліку, відстеження та контролю – RFID; Протоколи передачі
даних: REST API, MQTT, HTTP, TLS/SSL та інші; мікроконтролер - ESP8266; Мова програмування
– PHP; C++;база даних MySQL;функціональні можливості системи: контроль відвідуваності,
облік робочого часу, інтеграція з відеокамерами: відео фіксація обличчя співробітника, ідентифікація
співробітників, система моніторингу, звітність для менеджерів, архів для аудиту.
4. Зміст розрахунково-пояснювальної записки (перелік питань, що їх належить розробити):
Вступ
1. Аналіз предметної області та постановка задачі
2. Вибір технологій та інструментальних засобів
3. Розробка системи реєстрації та контролю відвідуваності на основі мікроконтролерів ESP8266
4. Захист системи реєстрації та контролю відвідуваності на основі мікроконтролерів ESP8266
Висновки
Додатки
Список використаних джерел
5. Перелік графічного матеріалу (з точним зазначенням обов’язкових креслень, плакатів):
Додаток А Специфікація
Додаток Б Текст програм
Додаток В Інструкція користувача
6. Консультанти розділів роботи:
Розділ Прізвище, ініціали Підпис, дата
консультанта завдання видав завдання прийняв
7. Дата видачі завдання: 28 лютого 2025 року
КАЛЕНДАРНИЙ ПЛАН
Термін
№ з/п Назва етапів роботи виконання Примітка
етапів роботи
1 Збір матеріалу 01.03 – 14.03 виконано
2 Обробка матеріалу 15.03 – 20.03 виконано
3 Обґрунтування актуальності виконання досліджень 21.03 - 25.03 виконано
4 Оцінка стану проблеми, виокремлення дослідницьких виконано
задач, постановка задачі дослідження 26.03 – 01.04
5 Викладення сутності і результатів дослідження 03.04 – 08.04 виконано
6 Практичне застосування результатів дослідження 09.04 – 27.04 виконано
7 Оформлення результатів в пояснювальну записку 28.04 – 02.05 виконано
8 Подання роботи на відгук та рецензування 15.05 – 20.05 виконано
Студент ___________________________ Роман ЧУПИЛКА
(підпис)
Керівник роботи ___________________________ Ольга НЕЧИПОРЕНКО
(підпис)
АНОТАЦІЯ
Метою виконання даної кваліфікаційної роботи на здобуття освітнього
ступеня «бакалавр» є автоматизація контролю робочого часу, реєстрації
присутності та обліку відвідуваності працівників шляхом впровадження системи
реєстрації та контролю відвідуваності на основі мікроконтролерів ESP8266.
Загальний обсяг роботи становить 78 сторінок. У роботі 16 рисунків. Для
виконання роботи використано 25 літературних джерел.
Головне завдання – це розробити автоматизовану систему реєстрації та
контролю відвідуваності на основі RFID-технологій із використанням
мікроконтролера ESP8266, яка забезпечує ідентифікацію користувачів, безпечну
передачу даних на сервер, збереження інформації в базі даних та зручне
адміністрування через веб-інтерфейс.
Стислий опис розділів кваліфікаційної роботи бакалавра складається з
аналізу предметної області та постановки задачі; вибору технологій та
інструментальних засобів; розробка системи реєстрації та контролю
відвідуваності на основі мікроконтролерів ESP8266.
Ключові слова: ESP8266, КОНТРОЛЬ ВІДВІДУВАНОСТІ, КАРТА
ДОСТУПУ, ОБЛІК РОБОЧОГО ЧАСУ, БАЗА ДАНИХ, ІНТЕГРАЦІЯ З
ВІДЕОКАМЕРАМИ, ІДЕНТИФІКАЦІЯ СПІВРОБІТНИКІВ, СИСТЕМА
МОНІТОРИНГУ, ЗВІТНІСТЬ ДЛЯ МЕНЕДЖЕРІВ
ANOTATION
The purpose of this qualification work for the degree of Bachelor is to automate
the control of working hours, registration of presence and attendance of employees by
implementing the system of registration and control of attendance based on ESP8266
microcontrollers.
The total volume of the work is 78 pages. The work contains 16 figures. 25
literary sources were used to perform the work.
The main task is to develop an automated system of registration and control of
attendance based on RFID technologies using the ESP8266 microcontroller, which
provides user identification, secure data transfer to the server, storage of information
in the database and convenient administration via the web interface.
A brief description of the sections of the bachelor's qualification work consists
of an analysis of the subject area and statement of the problem; selection of
technologies and tools; development of a system of registration and control of
attendance based on ESP8266 microcontrollers.
Key words: ESP8266, ATTENDANCE CONTROL, ACCESS CARD, TIME
TRACKING, DATABASE, INTEGRATION WITH VIDEO CAMERAS,
EMPLOYEE IDENTIFICATION, MONITORING SYSTEM, REPORTING FOR
MANAGERS
ЗМІСТ
ВСТУП……………………………………………………………………………..4
1 АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ ТА ПОСТАНОВКА ЗАДАЧІ…….…...7
1.1 Аналіз існуючих систем………………………...………….…………..7
1.2 Постановка задачі………...………………………………………...…12
1.3 Висновок до розділу…… ………………………………….…………15
2 ВИБІР ТЕХНОЛОГІЙ ТА ІНСТРУМЕНТАЛЬНИХ ЗАСОБІВ……….......17
2.1 Огляд існуючих технологій……………………………….………….17
2.2 Обґрунтування вибору…..………………………………………...….25
2.3 Висновок до розділу ……………………………………….…………31
3 РОЗРОБКА СИСТЕМИ РЕЄСТРАЦІЇ ТА КОНТРОЛЮ
ВІДВІДУВАНОСТІ НА ОСНОВІ МІКРОКОНТРОЛЛЕРІВ ESP8266…..32
3.1 Структура системи……………...………………………………..…...32
3.2 Опис функцій системи………………………………………………..37
3.3 Технічні вимоги для роботи з системою……………………………..42
3.4 Оцінка ефективності………………………………………………….44
3.5 Висновки до розділу…………………………………………………..46
4 ЗАХИСТ СИСТЕМИ РЕЄСТРАЦІЇ ТА КОНТРОЛЮ ВІДВІДУВАНОСТІ
НА ОСНОВІ МІКРОКОНТРОЛЛЕРІВ ESP8266 ……………..………..….48
4.1 Огляд існуючих рішень …………………..………….……………….48
4.2 Реалізація захисту даних користувачів……………………….….…..52
4.3 Висновки до розділу…………..…………………………….…….…..56
ВИСНОВКИ……………………………………………………………………...58
ЧДТУ.252210.010 ПЗ
Змн. Арк. № докум. Підпис Дата
РозрКобив Чупилка Р. Г. Система реєстрації та Літ. Лист Листів
Керівник Нечипоренко О.В. контролю відвідуваності на 2 78
Рецеанзент Бурмістров С. основі мікроконтролерів
Н.Контроль Гресько С.О. ESP8266 Кафедра ІБ та КІ
Затвфердив Бабенко В.Г. Пояснювальна записка гр.КМ-2105
е
д
р
а
К
К
-
0
6
ДОДАТКИ:
А – 482.ЧДТУ.52210-01 Розробка системи реєстрації та контролю
відвідуваності на основі мікроконтролерів ESP8266
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ……………………………...………...77
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 3
ВСТУП
Актуальність теми. В умовах активної цифрової трансформації та
впровадження технологій Інтернету речей (IoT) у корпоративному
середовищі, питання ефективного контролю робочого часу та відвідуваності
працівників набуває особливої значущості. Традиційні засоби реєстрації
присутності, зокрема паперові журнали або системи, що потребують ручного
введення даних, не забезпечують належного рівня точності, надійності та
захисту від маніпуляцій.
Зважаючи на потребу в автоматизації процесів обліку присутності,
особливої актуальності набуває розробка інтелектуальних систем контролю
доступу, які базуються на сучасних мікроконтролерах з вбудованими
мережевими функціями, зокрема ESP8266. Застосування таких пристроїв
дозволяє створювати масштабовані, недорогі та енергоефективні рішення, що
відповідають потребам сучасного підприємства.
Автоматизована система реєстрації відвідуваності, яка ґрунтується на
використанні RFID-карт та зберігає інформацію у централізованій базі даних,
значно спрощує процес обліку робочого часу, знижує вплив людського
фактора та підвищує прозорість управлінських рішень. Крім того, можливість
інтеграції з іншими інформаційними системами, зокрема із системами
відеоспостереження та автоматизованого керування доступом до приміщень,
забезпечує комплексний підхід до безпеки та контролю персоналу.
Таким чином, впровадження подібних рішень є не лише актуальним
кроком у напрямку підвищення ефективності менеджменту персоналу, а й
важливою складовою побудови інтелектуального офісного середовища, що
відповідає сучасним вимогам до організації праці та корпоративної безпеки.
Метою кваліфікаційної роботи є автоматизація контролю робочого
часу, реєстрації присутності та обліку відвідуваності працівників шляхом
розробки та впровадження системи реєстрації та контролю відвідуваності
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 4
працівників на основі мікроконтролерів ESP8266, яка забезпечує надійний
облік робочого часу, підвищення ефективності управління персоналом та
інтеграцію з додатковими засобами безпеки, такими як відеоспостереження та
автоматичне керування доступом до приміщень
Для досягнення сформульованої мети необхідно вирішити такі задачі:
1. Провести аналіз існуючих систем контролю відвідуваності та доступу.
2. Вибрати апаратне забезпечення на базі мікроконтролера ESP8266.
3. Розробити програмне забезпечення для зчитування карт доступу та
фіксації часу.
4. Забезпечити збереження та обробку даних у базі.
5. Реалізувати інтеграцію з системами відеоспостереження та
автоматичного керування дверима.
6. Провести тестування та оцінку працездатності розробленої системи.
Посібник “Building Secure and Reliable Systems” праця інженерів та
експертів Google присвячений кращим практикам проєктування безпечних і
надійних інформаційних систем у сучасних ІТ-інфраструктурах. Книга
охоплює фундаментальні принципи безпеки, такі як захист від загроз,
управління ризиками, моделі довіри та контролю доступу. Велика увага
приділяється надійності систем — як забезпечити безперервність роботи,
стійкість до відмов і швидке відновлення після інцидентів. Автори, фахівці
Google із багаторічним досвідом, наводять конкретні рекомендації для
розробників, архітекторів і керівників проектів, що допомагають створювати
системи, здатні ефективно захищати дані, управляти доступом користувачів і
одночасно забезпечувати стабільну роботу навіть за складних умов. Є цінним
ресурсом для розробки систем з високими вимогами до безпеки, у тому числі
IoT-рішень і систем контролю доступу.
Одержані в кваліфікаційній роботі результати мають практичне
значення, за рахунок того, що система дозволяє автоматизувати облік
відвідуваності працівників, зменшити вплив людського фактора, підвищити
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 5
точність даних і рівень безпеки в офісі. Завдяки використанню ESP8266
рішення є недорогим, гнучким і придатним для малого та середнього бізнесу.
Система також забезпечує зручне формування звітів і можливість інтеграції з
іншими засобами контролю доступу.
Кваліфікаційна робота складається з 4-х розділів, яких подається
інформація про:
1. Обрану предметну область дослідження та про постановку проблема;
2. Огляд існуючих технологій, за допомогою яких можна реалізувати
подібну систему та обґрунтування вибору тієї чи іншої технології;
3. Реалізацію системи: відображення структури системи, опис функцій
кожної частини системи, технічні вимоги до системи а також практична
оцінка ефективності роботи;
4. Розробка захисту інформації для інформаційної системи.
Використана література, під час написання кваліфікаційної роботи,
досить добре розкриває основні методики та підходи для розробки подібних
автоматизованих систем.
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 6
1 АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ ТА ПОСТАНОВКА ЗАДАЧІ
1.1 Аналіз існуючих систем
Наявність автоматизованої системи авторизації забезпечує високий
рівень безпеки корпоративного середовища. Фіксація кожного проходу
співробітника або відвідувача на вході й виході дозволяє миттєво виявити
несанкціоновані спроби доступу та відреагувати на них. У разі виникнення
інцидентів (наприклад, зникнення майна, нещасного випадку чи порушення
трудової дисципліни) наявність точних логів присутності істотно спрощує
розслідування та встановлення відповідальності.
Система авторизації підвищує відповідальність персоналу за витрачений
на роботі час. Автоматичний облік приходу і відходу співробітників усуває
можливість «пробивання карток» за колег або підробки даних у паперових
журналах. Це, в свою чергу, сприяє честному оцінюванню продуктивності,
оптимізації робочих графіків та справедливому нарахуванню заробітної плати.
Інтеграція авторизації з іншими підсистемами, зокрема з
відеоспостереженням та контролем дверей, створює єдиний механізм безпеки
офісу. Зображення з камер, прив’язане до операцій з RFID-картками, дозволяє
підтвердити особу людини в момент проходу та швидко відреагувати на
будь-які аномалії (наприклад, спробу прориву або використання чужої
картки).
Крім безпеки, така система забезпечує корисну аналітику для
керівництва: можна відстежувати завантаженість приміщень у різний час
доби, планувати прибирання чи обслуговування офісної техніки поза піковими
годинами, а також аналізувати патерни роботи команд для підвищення
ефективності.
Насамкінець, впровадження системи авторизації демонструє клієнтам і
партнерам прагнення компанії до високого рівня організації та піклування про
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 7
безпеку персоналу й інформації. Це створює додатковий іміджевий бонус та
зміцнює довіру до бізнесу.
Системи авторизації та контролю доступу в офісах зазвичай
складаються з кількох взаємопов’язаних компонентів: ідентифікаційного
пристрою (наприклад, зчитувача RFID-карт), центрального контролера, бази
даних користувачів і програмного забезпечення для обліку та моніторингу [1].
Їхня головна функція — визначити, хто саме намагається увійти до
приміщення, чи має ця особа дозвіл на вхід, і за потреби — зафіксувати та
зберегти цю інформацію. Схема роботи авторизації в офісі зображено на
рисунку 1.1.
Рисунок 1.1 – Схема роботи авторизації в офісі
Кожен співробітник отримує індивідуальний ідентифікатор — зазвичай
це безконтактна RFID-картка або брелок, який містить унікальний код. При
піднесенні до зчитувача, пристрій передає цей код до контролера системи. У
деяких системах можуть використовуватись біометричні дані (відбитки
пальців, розпізнавання обличчя) або PIN-коди.
Контролер отримує ідентифікатор та звіряє його з локальною або
віддаленою базою даних. Якщо ідентифікатор є у списку дозволених, система
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 8
відкриває електронний замок дверей або турнікет. У разі невідповідності —
доступ блокується, і подія записується у журналі подій.
Кожна дія — вхід, вихід, спроба доступу, час проходу, ідентифікатор
користувача — автоматично записується у базу даних. Це дозволяє формувати
статистику, вести облік робочого часу, відслідковувати присутність у режимі
реального часу та створювати звіти.
Системи контролю доступу часто інтегрують із камерами
відеоспостереження, які автоматично фотографують або записують момент
входу [2]. Також можлива інтеграція зі системами пожежної безпеки або
евакуації — наприклад, у разі тривоги всі двері можуть автоматично
розблоковуватись.
Керування системою здійснюється через спеціальне ПЗ — локальне або
хмарне. Через нього адміністратор додає/видаляє користувачів, переглядає
логи, формує звіти та налаштовує доступи за зонами, часом або роллю.
Надійні системи передбачають резервні копії даних, автономну роботу
при відключенні інтернету або електроенергії, а також підтримку
шифрування, щоб запобігти підробці ідентифікаторів або атакам на систему.
Таким чином, система авторизації є не просто засобом обмеження
доступу, а цілісною інфраструктурою, яка поєднує безпеку, автоматизацію та
аналітику для ефективного управління доступом у сучасному офісі.
Smart Attendance System — це сучасне рішення, яке використовує різні
технології для автоматизованого обліку присутності. В основі таких систем
можуть бути RFID, біометрія (відбитки пальців, розпізнавання обличчя), GPS
або навіть штучний інтелект [3]. Система в автоматичному режимі фіксує факт
присутності працівника або студента, зберігає інформацію в базі даних, і
формує звіти для адміністрації або керівництва. Принцип роботи зображено
на рисунку 1.2.
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 9
Рисунок 1.2 – Smart Attendance System
Одна з головних переваг Smart Attendance System — це можливість
інтеграції з хмарними сервісами, що забезпечує доступ до даних у реальному
часі з будь-якого пристрою. Це особливо актуально для великих компаній або
навчальних закладів з розгалуженою структурою. Деякі версії таких систем
також підтримують сповіщення (наприклад, автоматичне інформування
батьків про відсутність учня).
Система дозволяє знизити адміністративні витрати, мінімізувати
помилки, уникнути підробки часу та забезпечити прозорий контроль за
відвідуваністю. У навчальних закладах її часто використовують для
щоденного контролю присутності учнів, а в офісах — для обліку робочих
годин.
RFID Attendance System — це рішення, що ґрунтується на використанні
радіочастотної ідентифікації. Кожен учасник системи (учень або працівник)
має RFID-картку або брелок з унікальним кодом [4]. Коли користувач
прикладає картку до зчитувача, система реєструє дату й час входу/виходу, а
також особу користувача. Принцип роботи зображено на рисунку 1.3.
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 10
Рисунок 1.3 – RFID Attendance System
У школах ця система дозволяє автоматично фіксувати присутність
учнів, зменшуючи навантаження на вчителів і класних керівників. Дані про
відсутність або запізнення можуть одразу передаватися до електронного
журналу або навіть надсилатися батькам через SMS або мобільний застосунок.
Університети часто використовують RFID не лише для контролю присутності,
а й для доступу до бібліотек або гуртожитків.
В офісах система забезпечує точний облік робочого часу, контроль за
порушенням розкладу, а також інтегрується з системами безпеки (наприклад,
дверними замками). Вона проста у впровадженні, економічна й не потребує
складного обслуговування, що робить її популярною серед малого та
середнього бізнесу.
Обидва типи систем можуть поєднуватись у гібридних рішеннях, що
забезпечують ще більшу гнучкість і точність обліку відвідуваності. Якщо
потрібно, можу підготувати порівняльну таблицю або зробити короткий огляд
для дипломної роботи.
Існуючі системи реєстрації та контролю відвідуваності часто
характеризуються дуже обмеженими можливостями інтеграції з іншими
програмними та апаратними рішеннями [5]. Через це виникають суттєві
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 11
складнощі при спробах розширити функціонал таких систем або об’єднати їх
у єдину інфраструктуру компанії. Як наслідок, компанії змушені
використовувати окремі, часто несумісні між собою пристрої, що ускладнює
автоматизацію бізнес-процесів і призводить до втрати часу та ресурсів.
Більшість існуючих рішень не мають гнучких і відкритих інтерфейсів
для інтеграції, що обмежує можливості їх взаємодії з іншими системами
контролю доступу, системами безпеки, відеоспостереження або
корпоративними інформаційними платформами. Через це реалізація складних
сценаріїв, таких як автоматичне відкриття дверей після ідентифікації
співробітника або синхронізація з відеокамерами для підтвердження особи,
часто є надзвичайно дорогою та технічно складною.
Розробка системи реєстрації та контролю відвідуваності на основі
мікроконтролерів ESP8266 передбачає створення рішення з вбудованою
підтримкою відкритих протоколів та можливістю легкої інтеграції. Це
дозволить не лише фіксувати час перебування співробітників на робочому
місці, а й забезпечить гнучке підключення до сторонніх систем, таких як
системи контролю доступу, відеоспостереження і корпоративні CRM, що
значно підвищить ефективність і автоматизацію бізнес-процесів у компанії.
1.2 Постановка задач
Для сучасних компаній важливо мати надійний механізм контролю за
відвідуваністю співробітників. Саме тому необхідно розробити просту
систему, яка зможе ефективно фіксувати вхід і вихід працівників у
приміщення. Така система має забезпечувати швидку і точну реєстрацію
кожного проходження, що дозволить уникнути помилок і неточностей у
підрахунку робочого часу.
Проста система контролю має бути максимально зручною для
користувачів — співробітників та адміністрації. Вона повинна підтримувати
прості методи ідентифікації, наприклад, за допомогою карток доступу або
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 12
інших засобів, які не потребують складних дій від користувача. Це гарантує
швидке проходження при вході і виході, мінімізуючи черги і затримки.
Важливою складовою є надійність збереження даних про час входу і
виходу співробітників. Система повинна автоматично заносити цю
інформацію у базу даних, щоб керівники могли легко формувати звіти про
присутність і робочий час. Така автоматизація значно спрощує облік і дозволяє
підвищити ефективність управління персоналом.
Крім того, розроблена система має бути простою в налаштуванні та
експлуатації, не вимагати складного технічного обслуговування і
забезпечувати стабільну роботу в різних умовах експлуатації. Такий підхід
дозволить швидко впровадити систему в роботу і уникнути зайвих витрат на
підтримку.
Основне завдання — створити просту, зручну і надійну систему
контролю вхідних і вихідних потоків співробітників, яка задовольнить базові
потреби компанії у відстеженні присутності та робочого часу без зайвих
складнощів.
Система контролю відвідуваності має бути спроєктована з урахуванням
можливості легкої та гнучкої інтеграції з іншими системами, які вже
використовуються в компанії або можуть з’явитися у майбутньому. Для цього
вона повинна мати універсальний інтерфейс, що забезпечує стандартизований
обмін даними та командне управління. Такий підхід дозволить уникнути
проблем із сумісністю та значно розширить функціональні можливості
системи.
Універсальний інтерфейс повинен підтримувати сучасні протоколи
передачі даних, такі як REST API, MQTT або інші відкриті стандарти, що
широко застосовуються у сфері автоматизації та IoT. Це дасть змогу легко
підключати систему до корпоративних інформаційних систем, систем
контролю доступу, відеоспостереження, а також до хмарних сервісів для
зберігання та аналізу даних.
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 13
Крім того, наявність універсального інтерфейсу сприятиме
автоматизації бізнес-процесів, наприклад, автоматичному відкриттю дверей
після ідентифікації співробітника, синхронізації з системами безпеки або
формуванню комплексних звітів, які базуються на даних з різних джерел. Це
підвищить загальну ефективність роботи компанії та зробить систему більш
гнучкою та адаптивною до змін.
Важливо, щоб інтерфейс був документованим і простим у використанні
для розробників, що полегшить інтеграцію і підтримку системи. Це дозволить
швидко розширювати функціонал без необхідності глибоких змін у базовому
програмному забезпеченні або апаратній частині.
Розробка універсального інтерфейсу є ключовою умовою для створення
масштабованої і адаптивної системи контролю відвідуваності, яка зможе
ефективно взаємодіяти з різноманітними компонентами корпоративної
інфраструктури.
Система повинна надавати менеджменту компанії можливість
оперативно отримувати актуальні списки співробітників, які в даний момент
знаходяться в офісі. Така функція дозволяє контролювати присутність
персоналу у реальному часі, що особливо важливо для забезпечення безпеки,
організації робочого процесу та ефективного управління ресурсами.
Крім того, система має зберігати історичні дані про відвідуваність, щоб
керівники могли переглядати списки людей, які перебували в офісі у певний
проміжок часу. Це дає змогу аналізувати робочий графік співробітників,
виявляти відхилення від нормованого робочого часу та приймати обґрунтовані
управлінські рішення на основі достовірної інформації.
Відображення списків має бути зручним і інтуїтивно зрозумілим, з
можливістю швидкого фільтрування за відділами, датами або іншими
параметрами. Такий підхід забезпечує зручний доступ до необхідної
інформації без зайвих складнощів і дозволяє менеджерам оперативно
реагувати на різні ситуації.
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 14
Наявність цього функціоналу підвищує прозорість роботи компанії та
сприяє формуванню довіри між керівництвом і персоналом, адже дані про
відвідуваність доступні у зручному форматі і базуються на автоматизованому
обліку без людського фактора.
Система повинна забезпечувати відео фіксацію кожного входу
користувача до приміщення. Для цього біля точки контролю доступу
встановлюються камери, які автоматично роблять знімок або коротке відео в
момент ідентифікації співробітника. Такий підхід дозволяє додатково
підтвердити особу, що проходить авторизацію, і підвищити рівень безпеки
системи.
Відеофіксація створює цінний архів даних, який може бути
використаний для подальшого аналізу та аудиту. Це допомагає у випадках
виникнення спірних ситуацій або інцидентів, дозволяючи переглянути
фактичні події і з’ясувати причини проблем.
У перспективі зібрані відеоматеріали можна використовувати для
інтеграції з системами штучного інтелекту (AI), які здатні автоматично
розпізнавати обличчя співробітників і підтверджувати їх особистість без
участі людини. Це значно підвищить швидкість і точність контролю доступу,
а також мінімізує ризики використання чужих карток або спроб
несанкціонованого проникнення.
Таким чином, впровадження відео фіксації при вході не лише підвищує
загальний рівень безпеки, а й створює основу для впровадження інноваційних
рішень на основі AI у майбутньому, роблячи систему більш сучасною і
адаптивною до потреб компанії.
1.3 Висновки до розділу
У результаті аналізу сучасних систем контролю та реєстрації
відвідуваності було визначено, що автоматизована система авторизації є
необхідним інструментом для підвищення безпеки і ефективності управління
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 15
персоналом у компаніях. Впровадження такої системи дозволяє не лише
фіксувати точний час входу та виходу співробітників, але й мінімізувати
ризики несанкціонованого доступу та маніпуляцій із даними.
Інтеграція контролю доступу з відеофіксацією значно підвищує рівень
безпеки, створюючи надійний архів для аудиту та розслідувань.
Перспективним напрямом розвитку є застосування технологій штучного
інтелекту для автоматичного розпізнавання осіб, що дозволить зробити процес
авторизації швидшим і точнішим.
Важливою характеристикою системи є наявність універсального
інтерфейсу, що забезпечує легку інтеграцію з іншими корпоративними
системами — контролем доступу, відеоспостереженням, пожежною безпекою
та хмарними сервісами. Це сприятиме автоматизації бізнес-процесів і
підвищенню ефективності роботи компанії.
Також система має забезпечувати менеджменту можливість оперативно
отримувати актуальні списки співробітників, які перебувають у офісі в
реальному часі, а також доступ до історичних даних. Це підвищує прозорість
і контроль роботи персоналу, сприяє оптимізації ресурсів і створенню
комфортного робочого середовища.
Отже, розробка і впровадження сучасної системи контролю
відвідуваності з використанням RFID, відеофіксації та можливістю подальшої
інтеграції з AI-технологіями є стратегічно важливим кроком для забезпечення
безпеки та ефективності управління персоналом у сучасних компаніях.
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 16
2 ВИБІР ТЕХНОЛОГІЇ ТА ІНСТРУМЕНТАЛЬНИХ ЗАСОБІВ
РОЗРОБКИ СИСТЕМИ
2.1 Огляд існуючих технологій
Мікроконтролери — це компактні комп’ютерні системи, що інтегрують
у собі процесор, оперативну пам’ять, постійну пам’ять для збереження
програм, а також периферійні пристрої для вводу-виводу інформації. Вони
призначені для керування різноманітними електронними пристроями та
системами в режимі реального часу. Мікроконтролери широко
використовуються в автоматизації, робототехніці, системах керування,
інтернеті речей (IoT) та інших галузях.
Існує багато видів мікроконтролерів, серед яких найбільш популярними
є сімейства Arduino і ESP. Arduino — це апаратна платформа, яка базується на
різних мікроконтролерах (наприклад, ATmega328). Вона відома своєю
простотою використання, відкритим апаратним дизайном і багатою
екосистемою програмного забезпечення. Arduino ідеально підходить для
початківців і застосовується в освітніх проектах та прототипуванні [6].
ESP8266 — це мікроконтролер з інтегрованим Wi-Fi-модулем,
розроблений компанією Espressif Systems. [7] Він популярний у проєктах
Інтернету речей через низьку вартість, компактність і вбудовану бездротову
комунікацію. Зовнішній вигляд мікроконтролера зображено на рисунку 2.1.
Рисунок 2.1 – Мікроконтролер ESP8266
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 17
ESP8266 дозволяє легко підключати пристрої до мережі Інтернет і керувати
ними віддалено. Його старший “брат” — ESP32 — має ще більше
функціональних можливостей, включаючи Bluetooth [8].
Окрім Arduino і ESP-серії, існують інші мікроконтролери, такі як STM32
від STMicroelectronics, PIC від Microchip, а також мікроконтролери від Texas
Instruments, NXP та інших виробників. Вибір конкретного мікроконтролера
залежить від задачі, вимог до продуктивності, енергоспоживання, наявності
комунікаційних інтерфейсів та інших параметрів [9].
Таким чином, мікроконтролери є ключовим елементом у побудові
вбудованих систем, а платформи на зразок Arduino і ESP8266 забезпечують
простоту розробки та швидке впровадження рішень у різних сферах.
RFID-зчитувач (радіочастотний ідентифікатор) — це пристрій, який
використовує радіохвилі для безконтактної ідентифікації об’єктів. Він
приймає сигнал від спеціальних RFID-міток (карток, брелоків чи інших
носіїв), що містять унікальний ідентифікаційний код, і передає цю інформацію
для подальшої обробки системою контролю доступу.
Рисунок 2.2 – Приклад RFID-зчитувача
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 18
Принцип роботи RFID-зчитувача базується на взаємодії між
передавачем (зчитувачем) і приймачем (RFID-міткою). Зчитувач генерує
електромагнітне поле, яке активує мітку, якщо вона знаходиться в зоні дії [10].
Активована мітка надсилає свій унікальний код назад до зчитувача, який
зчитує і передає дані в контролер або центральну систему для перевірки
доступу.
Карти доступу, що використовуються у системах контролю, є саме
такими RFID-мітками. Вони містять вбудований чіп з унікальним кодом, який
неможливо змінити користувачу. Приклад карти доступу зображено на
рисунку 2.3.
Рисунок 2.3 – Приклад карти доступу
Коли співробітник прикладає карту до зчитувача, система ідентифікує
його особу за кодом і, залежно від налаштувань, дозволяє або забороняє
доступ до приміщення.
Такий безконтактний спосіб ідентифікації значно пришвидшує
проходження співробітників, знижує знос обладнання, а також підвищує
рівень безпеки, адже зловмисникам складніше підробити унікальну RFID-
карту.
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 19
Для забезпечення ефективної передачі даних між системою контролю
відвідуваності і центральним сервером необхідно використовувати надійні
протоколи зв’язку. Найпоширенішими та зручними для таких завдань є HTTP
і MQTT.
HTTP (HyperText Transfer Protocol) — це стандартний протокол для
обміну даними між клієнтом і сервером у мережі Інтернет. У контексті
системи контролю відвідуваності HTTP використовується для передачі
інформації про події, такі як зчитування картки або фіксація часу входу/виходу
[11]. Принцип роботи зображено на рисунку 2.4.
Рисунок 2.4 – HTTP (HyperText Transfer Protocol)
Пристрій відправляє на сервер HTTP-запит (наприклад, POST або GET),
що містить необхідні дані у форматі JSON або іншому зрозумілому форматі.
Сервер приймає ці дані, обробляє їх і повертає відповідь [12]. HTTP є простим
і широко підтримуваним протоколом, однак він менш ефективний при
передачі великої кількості дрібних повідомлень або в реальному часі через
високі накладні витрати на встановлення з’єднання.
MQTT (Message Queuing Telemetry Transport) — це легковаговий
протокол обміну повідомленнями, розроблений спеціально для роботи в
мережах з обмеженими ресурсами або ненадійним зв’язком. Він базується на
моделі “публікація-підписка”: пристрій (публікатор) надсилає повідомлення
на певну тему, а сервер (брокер) розподіляє ці повідомлення всім підписникам
на цю тему [13]. Приклад роботи зображено на рисунку 2.5.
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 20
Рисунок 2.5 – MQTT (Message Queuing Telemetry Transport)
У системі контролю відвідуваності MQTT дозволяє швидко та
ефективно передавати дані про кожну подію у реальному часі з мінімальними
затримками. Протокол має низькі вимоги до пропускної здатності і
енергоспоживання, що робить його ідеальним для IoT-пристроїв на базі
мікроконтролерів, таких як ESP8266 [14].
Використання обох протоколів у системі може бути комбінованим:
HTTP — для передачі разових звітів або налаштувань, а MQTT — для
оперативної передачі подій і станів. Такий підхід забезпечує гнучкість,
масштабованість і надійність системи.
Для розробки серверної частини системи контролю відвідуваності
можна використовувати мови програмування, які добре підходять для обробки
запитів, взаємодії з базами даних та забезпечення безпеки. Однією з
популярних мов для таких задач є PHP. Принцип роботи зображено на
рисунку 2.6.
Вона широко застосовується для створення веб-серверів, має велику
кількість готових бібліотек і фреймворків, що значно спрощує розробку та
підтримку серверної логіки.
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 21
Рисунок 2.6 – Принцип роботи PHP
PHP забезпечує просту обробку HTTP-запитів від пристроїв контролю
доступу, дозволяє приймати, зберігати і обробляти дані про відвідуваність
співробітників, формувати звіти та керувати правами доступу. Крім того, PHP
легко інтегрується з різними системами управління базами даних, такими як
MySQL або PostgreSQL, що є важливим для надійного збереження інформації
[15].
Окрім PHP, для серверної частини можна розглянути й інші мови та
технології, такі як Python (Django, Flask), Node.js, Java (Spring) або Ruby on
Rails. Вибір конкретної мови залежить від вимог проєкту, компетенцій
розробників та необхідності інтеграції з існуючими системами компанії.
Використання популярних і добре підтримуваних мов серверної
розробки забезпечує швидку реалізацію функціоналу, легкість масштабування
системи та її подальшої підтримки.
Для збереження та обробки даних системи контролю відвідуваності
найкраще підходять реляційні системи управління базами даних (РСУБД).
Реляційні бази даних дозволяють структурувати інформацію у вигляді таблиць
з чіткими зв’язками між ними, що забезпечує ефективний та зручний доступ
до даних.
У системі можна використовувати будь-яку популярну реляційну базу
даних, таку як MySQL, PostgreSQL, Microsoft SQL Server або SQLite.
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 22
MySQL — популярна реляційна СУБД з відкритим кодом, широко
використовується у веброзробці. Архітектура зображена на рисунку 2.7.
Рисунок 2.7 – Архітектура MySQL
Відзначається високою швидкістю, простотою у використанні та
великою спільнотою підтримки.
PostgreSQL — потужна СУБД з відкритим кодом, що підтримує складні
запити, транзакції та розширення. Архітектура зображена на рисунку 2.8.
Рисунок 2.8 – Архітектура PostgreSQL
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 23
Підходить для проєктів із високими вимогами до надійності та
масштабованості.
Microsoft SQL Server — комерційна СУБД від Microsoft, добре
інтегрується з екосистемою Windows . Принцип роботи зображена на
рисунку 2.9.
Рисунок 2.9 – Принцип роботи Microsoft SQL Server
Має зручні інструменти адміністрування та підтримує складну бізнес-
логіку.
SQLite — легка вбудована СУБД, не потребує серверної частини.
Принцип роботи зобрадено на рисунку 2.10.
Рисунок 2.10 – Принципи роботи SQLite
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 24
Ідеально підходить для мобільних застосунків або невеликих проєктів із
мінімальними вимогами до ресурсів [16].
Вибір конкретної системи залежить від потреб проєкту, обсягу даних,
навантаження та вимог до масштабованості.
Реляційні бази даних добре підходять для зберігання інформації про
співробітників, їхні картки доступу, часові позначки входу та виходу, а також
звітні дані. Вони забезпечують надійність, цілісність даних і підтримку
складних запитів, що необхідні для формування різноманітних звітів та
аналітики.
Таким чином, застосування будь-якої реляційної системи управління
базами даних забезпечить гнучкість, надійність та ефективність роботи
системи контролю відвідуваності.
2.2 Обґрунтування вибору
Перед початком розробки системи реєстрації та контролю відвідуваності
на основі мікроконтролерів ESP8266, важливо здійснити правильний вибір
технологій. Це критичний етап, оскільки від обраного стеку технологій
залежатимуть надійність, масштабованість, вартість та ефективність всієї
системи. Необхідно врахувати такі аспекти, як сумісність апаратного
забезпечення, протоколи зв’язку (наприклад, Wi-Fi, MQTT, HTTP), вибір
середовища розробки (наприклад, Arduino IDE чи PlatformIO), формат
збереження даних (локально чи у хмарі), а також тип і структуру бази даних,
інтерфейс взаємодії з користувачем та можливості подальшої інтеграції
системи в існуючу інфраструктуру. Раціональний підхід на цьому етапі
дозволяє уникнути технічних ускладнень у майбутньому та забезпечує більш
ефективну реалізацію задач даної кваліфікаційної роботи.
Для розробки системи реєстрації та контролю відвідуваності одним із
ключових завдань є вибір відповідного мікроконтролера, який зможе
ефективно виконувати всі необхідні функції: зчитування ідентифікаційної
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 25
карти, обробка отриманих даних, визначення прав доступу, а також взаємодія
з іншими компонентами системи. У цій ролі ідеально себе зарекомендував
мікроконтролер ESP8266, який поєднує в собі компактність, доступність,
достатню обчислювальну потужність та найголовніше — вбудовану
підтримку Wi-Fi.
Завдяки Wi-Fi ESP8266 може працювати як автономно, так і в мережі
— отримуючи або передаючи дані на сервер у режимі реального часу. Це
відкриває широкі можливості для розширення функціональності системи в
майбутньому: від централізованого зберігання логів до адміністрування
доступів через веб-інтерфейс [18]. ESP8266 також підтримується
популярними середовищами розробки, такими як Arduino IDE або PlatformIO,
що дозволяє значно пришвидшити процес написання та тестування прошивки,
особливо якщо система включає додаткові компоненти, як-от RFID-зчитувач,
кнопки, індикатори, реле чи дисплеї.
Мікроконтролер має достатню кількість цифрових входів і виходів, які
легко адаптуються до потреб системи контролю доступу. А завдяки широкій
підтримці спільноти, зокрема великій кількості бібліотек і прикладів коду,
розробник може швидко реалізувати основну логіку системи та зосередитися
на її розширенні й оптимізації. Таким чином, ESP8266 не просто виконує свою
базову роль, а й створює основу для побудови надійної, гнучкої та
масштабованої системи контролю відвідуваності.
Для зчитування ключів у системі реєстрації та контролю відвідуваності
доцільно використовувати RFID-модуль RC522, який є популярним рішенням
для роботи з безконтактними картами та брелоками стандарту MIFARE [19].
Цей модуль добре підходить для вбудованих систем на базі мікроконтролерів,
зокрема ESP8266, завдяки простоті підключення, доступності та широкій
підтримці на програмному рівні.
RC522 працює на частоті 13,56 МГц, що є стандартом для багатьох
RFID-карт, які активно застосовуються у системах контролю доступу,
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 26
електронних пропусках, пропускних пунктах та інших подібних рішеннях.
Модуль підтримує серійний інтерфейс SPI, що дозволяє легко інтегрувати
його з ESP8266 без зайвих затримок у передаванні даних або складнощів у
реалізації протоколу обміну.
Ще однією перевагою RC522 є його компактні розміри та низьке
енергоспоживання, що особливо важливо для автономних пристроїв або тих,
які працюють на живленні від батарей [19]. Крім того, цей модуль здатен
зчитувати UID (унікальний ідентифікатор) карти або брелока протягом частки
секунди після піднесення її до зчитувача, що забезпечує швидку реакцію
системи та зручність для користувача.
Завдяки активній підтримці середовища Arduino, для RC522 існує велика
кількість готових бібліотек і прикладів коду, що значно полегшує інтеграцію
та скорочує час розробки. Таким чином, використання RFID-модуля RC522
дозволяє створити надійний і зручний механізм ідентифікації користувачів у
межах розроблюваної системи контролю відвідуваності.
На етапі планування розробки системи реєстрації та контролю
відвідуваності важливо не лише визначитися з апаратним забезпеченням, але
й обрати відповідну мову програмування та інструменти розробки. Це рішення
напряму впливає на зручність створення програмного забезпечення, його
стабільність, можливість масштабування, а також на доступність готових
рішень і підтримку спільноти.
Оскільки мікроконтролер ESP8266 та RFID-зчитувач RC522 активно
використовуються в проєктах з відкритим вихідним кодом, оптимальним
вибором для програмування є мова C++ у середовищі Arduino IDE. Arduino
IDE — це просте у використанні, але функціонально достатнє середовище
розробки, яке чудово підходить як для початківців, так і для досвідчених
розробників. Воно забезпечує зручний спосіб завантаження прошивки на
мікроконтролер, має широке розмаїття бібліотек, сумісних з ESP8266 і RC522,
і дозволяє швидко розпочати розробку з мінімальними налаштуваннями.
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 27
Мова C++ є стандартом для програмування у середовищі Arduino і надає
розробнику велику гнучкість. Завдяки її використанню можна створювати як
прості логічні блоки, так і більш складні об’єктно-орієнтовані структури, що
дозволяє підтримувати чисту архітектуру коду, яка легко масштабується й
модифікується в майбутньому. Крім того, C++ дозволяє ефективно працювати
з пам’яттю, що критично важливо для мікроконтролерів із обмеженими
ресурсами.
Таким чином, використання Arduino IDE у поєднанні з мовою
програмування C++ забезпечує оптимальний баланс між простотою розробки
та можливістю реалізації функціонально насиченої, стабільної та надійної
системи. Це рішення також дає змогу скористатися великим обсягом існуючих
прикладів і бібліотек, що значно пришвидшує процес розробки та тестування
програмного забезпечення.
Розроблювана система реєстрації та контролю відвідуваності
спроєктована таким чином, щоб працювати автономно, без постійного
підключення до сервера. Уся основна логіка — зчитування карт, перевірка
прав доступу та керування виконавчими пристроями (наприклад, замком) —
виконується безпосередньо на мікроконтролері. Такий підхід забезпечує
стабільну роботу навіть у разі тимчасової відсутності інтернет-з’єднання або
збоїв у мережі.
Однак для повноцінного функціонування системи необхідно попередньо
завантажити список користувачів, а точніше — ідентифікатори їхніх ключів
(наприклад, UID RFID-карт), до пам’яті мікроконтролера [20]. Це дозволяє
системі оперативно визначати, чи має конкретний користувач дозвіл на вхід.
Крім цього, важливою функцією є можливість інформування сервера про факт
доступу. Після того, як користувач прикладає карту і система надає дозвіл на
вхід, вона повинна зафіксувати цю подію та передати дані на віддалений
сервер — для ведення журналу відвідувань, аналітики або адміністрування.
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 28
Найбільш очевидним способом передачі даних є використання HTTP-
запитів. Проте стандартний протокол HTTPS, який забезпечує захищене
з’єднання, є досить ресурсоємним для мікроконтролерів типу ESP8266. Через
обмежену кількість оперативної пам’яті та обчислювальних потужностей
мікроконтролер може не впоратись зі складним процесом TLS-шифрування,
що використовується в HTTPS.
Тому доцільно використовувати легший протокол HTTP у поєднанні з
додатковим шифруванням самих даних, які передаються на сервер. Це може
бути реалізовано, наприклад, за допомогою симетричного шифрування (AES)
або іншого простого, але надійного методу. Таким чином, забезпечується
баланс між продуктивністю системи та безпекою даних, що передаються через
мережу. Такий підхід дозволяє зберегти легкість обміну інформацією, не
перевантажуючи мікроконтролер, і водночас гарантує, що особисті або
службові дані не будуть перехоплені сторонніми особами під час передавання.
Серверна частина системи, яка відповідає за прийом даних від
мікроконтролера, ведення журналу подій, обробку запитів та, за потреби,
оновлення списку користувачів, може бути реалізована практично на будь-
якій популярній мові програмування. Важливо, щоб обрана мова
забезпечувала стабільну роботу з мережевими запитами (HTTP), підтримувала
роботу з базами даних та мала достатню кількість бібліотек для обробки
вхідних даних, автентифікації, журналювання та безпеки.
Варто віддати перевагу популярним мовам програмування, які мають
активну спільноту, добре розвинуту документацію та велику кількість
розробників. Такий підхід гарантує, що в майбутньому підтримка, оновлення
або масштабування системи не становитимуть труднощів, оскільки знайти
фахівців для роботи з популярною технологією значно легше.
Серед можливих варіантів можна розглядати JavaScript (Node.js), Python,
Java, Ruby чи C#. Проте в межах цієї роботи доцільно зупинити свій вибір на
PHP. Ця мова вже багато років використовується у веб-розробці, є
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 29
надзвичайно поширеною, має низький поріг входу і добре працює на більшості
хостингів без додаткових налаштувань. PHP ідеально підходить для швидкого
створення API-серверів, які можуть приймати HTTP-запити від
мікроконтролера, обробляти їх, взаємодіяти з базою даних і повертати
необхідні відповіді.
Крім того, PHP має вбудовані механізми для захисту від SQL-ін’єкцій,
просту інтеграцію з MySQL та іншими популярними СУБД, а також підтримує
шифрування, автентифікацію та логування. Все це дозволяє розробити
надійний сервер з мінімальними витратами часу та ресурсів. Завдяки своїй
популярності PHP також гарантує легкий пошук розробників, які зможуть
підтримувати або модернізувати серверну частину системи в майбутньому.
Для зберігання інформації про користувачів, їхні ключі доступу, журнали
відвідувань та інші службові дані система потребує надійної та зручної
системи керування базами даних (СУБД). У цьому контексті доцільно
використовувати реляційну базу даних, яка дозволяє легко структурувати
інформацію, здійснювати швидкий пошук за ключовими полями та забезпечує
стабільну роботу навіть при збільшенні обсягу даних.
Одним із найкращих варіантів є MySQL — одна з найпоширеніших у
світі СУБД з відкритим вихідним кодом. MySQL чудово підходить для веб-
додатків і серверних систем, особливо в поєднанні з PHP, оскільки ці
технології добре інтегруються одна з одною та мають довгу історію спільного
використання.
MySQL дозволяє зручно організувати таблиці користувачів, ключів,
прав доступу та подій (наприклад, факти відкриття дверей), що спрощує
адміністрування системи. Також вона підтримує транзакції, індексацію,
контроль цілісності даних і має широкий набір інструментів для резервного
копіювання та відновлення. Завдяки великій популярності MySQL забезпечує
хорошу масштабованість, наявність великої кількості довідкових матеріалів і
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 30
фахівців, які легко можуть долучитися до підтримки або подальшої розробки
системи.
Використання MySQL як основної бази даних для серверної частини є
логічним та обґрунтованим вибором, що забезпечує стабільність,
продуктивність і гнучкість у подальшій експлуатації системи.
2.3 Висновки до розділу
У цьому розділі було проаналізовано ключові апаратні та програмні
компоненти, які можуть бути використані для створення системи контролю
відвідуваності. Розглянуто характеристики сучасних мікроконтролерів,
зокрема ESP8266, що поєднує в собі доступність, компактність та вбудований
Wi-Fi, що робить його ідеальним для проєктів у сфері IoT. Оцінено можливості
RFID-зчитувачів як основного елементу для ідентифікації користувачів.
Крім того, було проаналізовано протоколи обміну даними (HTTP та
MQTT), які забезпечують ефективну комунікацію між пристроями та
сервером. Також зроблено огляд популярних мов програмування серверної
частини, зокрема PHP, та реляційних систем управління базами даних —
MySQL, PostgreSQL, Microsoft SQL Server та SQLite — що забезпечують
збереження, обробку і доступ до даних.
Узагальнений огляд дозволяє визначити найбільш доцільні технології
для подальшої реалізації системи, враховуючи вимоги до надійності,
масштабованості, зручності розробки та підтримки.
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 31
3 РОЗРОБКА СИСТЕМИ РЕЄСТРАЦІЇ ТА КОНТРОЛЮ
ВІДВІДУВАНОСТІ НА ОСНОВІ МІКРОКОНТРОЛЕРІВ ESP8266
3.1 Структура системи
Розроблена система реєстрації та контролю відвідуваності має чітко
визначену архітектуру та складається з трьох основних модулів, кожен із яких
виконує окрему, але взаємопов’язану функцію. Такий розподіл дозволяє
зробити систему більш гнучкою, масштабованою та зручною для
обслуговування.
Модуль зчитування карти є ключовою апаратно-програмною частиною
системи контролю відвідуваності, яка безпосередньо взаємодіє з
користувачем. Основною його задачею є прийом даних з RFID-карт або
брелоків, перевірка їх дійсності та формування рішення щодо надання або
відмови у доступі.
В основі модуля лежить мікроконтролер ESP8266, який відповідає за
обробку логіки, управління зчитувачем, а також комунікацію із сервером. Для
зчитування RFID-карт використовується модуль RC522, який підключається
до ESP8266 через інтерфейс SPI [21]. Цей зчитувач здатен швидко
ідентифікувати UID (унікальний ідентифікатор) кожної RFID-карти або
брелока на частоті 13,56 МГц, що є стандартом для більшості систем контролю
доступу.
Програма, що працює на мікроконтролері, реалізує кілька важливих
функцій:
1. Зчитування UID карти. При піднесенні карти до зчитувача модуль
миттєво отримує унікальний ідентифікатор;
2. Перевірка доступу. Отриманий UID порівнюється з локальним списком
дозволених ключів, який зберігається у пам’яті ESP8266. Це дозволяє
швидко визначити, чи має користувач право доступу без необхідності
кожного разу звертатися до сервера;
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 32
3. Управління замком: Якщо карта авторизована, мікроконтролер подає
сигнал на виконавчий пристрій (наприклад, реле), яке відкриває двері.
У разі відмови у доступі система може подати звуковий або світловий
сигнал, що інформує користувача про помилку;
4. Передача інформації на сервер: Після успішної авторизації модуль
відправляє повідомлення на сервер про факт відкриття дверей. Це
необхідно для ведення журналу подій та подальшого аналізу;
5. Оновлення списку ключів: Модуль має можливість отримувати
оновлення списку дозволених UID від серверної частини, що дозволяє
оперативно додавати нових користувачів або блокувати доступ без
фізичного втручання в пристрій.
Завдяки вбудованому Wi-Fi в ESP8266 модуль зчитування може
підключатися до локальної мережі та обмінюватися даними з сервером через
HTTP-запити. Цей зв’язок організований так, щоб мінімізувати навантаження
на мікроконтролер і забезпечити швидкий обмін інформацією [22].
Модуль спроектований для роботи в режимі низького
енергоспоживання, що особливо важливо при автономному живленні.
Компактний розмір і мінімальна кількість зовнішніх компонентів підвищують
надійність та довговічність системи в умовах постійної експлуатації.
Таким чином, модуль зчитування карти є автономним і самодостатнім
пристроєм, який забезпечує ефективну, швидку та надійну роботу системи
контролю відвідуваності, виконуючи всі критично важливі функції на місці,
при цьому зберігаючи можливість централізованого управління через
серверну частину.
Модуль серверної частини є центральним елементом системи, який
забезпечує збереження, обробку та управління даними, що надходять від
модуля зчитування карти. Він виконує роль посередника між апаратною
частиною (мікроконтролером ESP8266) і адміністративним інтерфейсом,
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 33
забезпечуючи надійне зберігання інформації та координацію роботи всієї
системи.
Функціональні обов’язки серверної частини полягають у комплексній
обробці та збереженні інформації, яка надходить від модуля зчитування карти.
Після того, як мікроконтролер передає дані про спроби доступу — унікальні
ідентифікатори користувачів, час сканування та результати авторизації —
сервер приймає ці повідомлення і здійснює їхню валідацію. Валідація включає
перевірку правильності формату даних, відповідність очікуваним параметрам,
а також забезпечення захисту від потенційно шкідливих чи некоректних
запитів. Відфільтровані та перевірені дані зберігаються у базі даних для
подальшого аналізу та формування журналу подій, що дозволяє
відслідковувати історію доступів та виявляти можливі спроби
несанкціонованого входу.
Окрім обробки вхідних даних, серверна частина відповідає за підтримку
та оновлення списку користувачів і їхніх ключів доступу, які зберігаються у
базі даних. Цей список використовується для формування локальних баз даних
на мікроконтролерах, що дозволяє зменшити затримки при перевірці карток і
забезпечити автономність роботи модуля зчитування. Сервер постійно
контролює актуальність цих даних, даючи змогу адміністраторам швидко
додавати нових користувачів, змінювати їхні права або блокувати доступ, без
необхідності фізичного доступу до пристроїв.
Для зручності управління всією системою сервер реалізує спеціальний
API, який використовується модулем адміністрування. Через цей інтерфейс
адміністративний модуль отримує доступ до даних про події, може змінювати
налаштування системи, додавати або видаляти користувачів, а також
переглядати статистику і логи. Такий підхід дозволяє централізовано
контролювати роботу системи, забезпечуючи гнучкість і масштабованість без
необхідності втручання у кожен окремий апаратний модуль.
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 34
Особливу увагу серверна частина приділяє безпеці. Вона реалізує
механізми перевірки цілісності отриманих даних, автентифікації пристроїв,
що надсилають запити, а також захисту від потенційних атак, таких як SQL-
ін’єкції або несанкціонований доступ до API. Завдяки цим заходам
забезпечується надійність роботи системи, захист конфіденційної інформації
та стабільність функціонування навіть у разі спроб зовнішнього втручання
[23]. Таким чином, серверна частина виступає надійним ядром всієї системи
контролю доступу.
Модуль адміністрування є важливою складовою системи контролю
відвідуваності, що забезпечує зручний та інтуїтивно зрозумілий інтерфейс для
управління всіма аспектами роботи системи. Він призначений для
адміністраторів, які відповідають за підтримку безпеки, актуальності даних та
налаштувань, а також за моніторинг подій і користувачів.
Основною функцією модуля адміністрування є керування списком
користувачів системи. Через цей інтерфейс адміністратори можуть додавати
нових користувачів, реєструвати їхні унікальні RFID-ключі, змінювати або
видаляти існуючі записи, а також блокувати або розблоковувати доступ. Це
дозволяє оперативно реагувати на зміни у складі співробітників або змінювати
політику доступу без необхідності фізично взаємодіяти з обладнанням. Всі
зміни автоматично синхронізуються з серверною частиною, яка передає
оновлені списки мікроконтролерам для локальної перевірки.
Крім того, модуль адміністрування надає можливість переглядати
історію подій системи — записи про спроби доступу, успішні та неуспішні
авторизації, а також інші важливі логі подій. Цей журнал допомагає
відстежувати активність користувачів, виявляти потенційні загрози або
порушення безпеки, а також проводити аудит системи. Дані в журналі можуть
бути відфільтровані за датою, користувачем або типом події, що значно
спрощує пошук потрібної інформації.
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 35
Для підвищення зручності та безпеки, модуль адміністрування реалізує
багаторівневу систему доступу. Це означає, що різні користувачі можуть мати
різні рівні прав — від повного адміністративного контролю до обмеженого
перегляду статистики. Такий підхід дозволяє мінімізувати ризики
несанкціонованого втручання і розмежовує обов’язки серед персоналу.
Взаємодія модуля адміністрування із серверною частиною здійснюється
через спеціальний API, що забезпечує швидкий і безпечний обмін даними. Це
дозволяє працювати з інтерфейсом навіть віддалено, з будь-якого пристрою з
доступом до мережі, не порушуючи цілісності і захищеності системи.
Структура розробленої системи зображено на рисунку 3.1.
Рисунок 3.1 – Структура розробленої системи
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 36
Зручний інтерфейс користувача, реалізований у вигляді веб-додатку,
підтримує сучасні технології для швидкої роботи і адаптивного відображення
на різних пристроях — від стаціонарних комп’ютерів до планшетів і
смартфонів. Завдяки цьому адміністратори можуть ефективно керувати
системою у будь-який час і з будь-якого місця.
3.2 Опис функцій системи
Основною функцією розробленої системи є забезпечення реєстрації та
контролю відвідуваності осіб. Система автоматизує процес фіксації приходу
та виходу користувачів, зберігає відповідні записи у базі даних і дозволяє в
режимі реального часу визначати, хто, коли і з яким результатом намагався
отримати доступ. Такий підхід дозволяє не лише підвищити рівень безпеки,
але й формувати точну та достовірну статистику відвідуваності, яка може бути
корисною для адміністративних або організаційних потреб. Завдяки
використанню безконтактних технологій і мікроконтролерів, процес
контролю є максимально зручним, швидким та ефективним.
Система передбачає можливість реєстрації спеціальних карт, які
використовуються для ідентифікації користувачів за допомогою RFID-
зчитувача. Адміністратор має доступ до відповідного інтерфейсу, через який
може додавати нові картки до системи, прив’язуючи їх до конкретних осіб.
Кожна така картка має унікальний ідентифікатор (UID), який після зчитування
модулем автоматично звіряється зі списком дозволених у базі даних. Таким
чином, адміністратор формує перелік авторизованих користувачів,
забезпечуючи індивідуальний доступ для кожної зареєстрованої особи. Це
дозволяє гнучко керувати правами доступу та швидко реагувати на зміни у
складі персоналу.
Система передбачає постійне або періодичне встановлення зв’язку з
сервером, що дає змогу здійснювати віддалене оновлення інформації про
дозволені ключі. Завдяки цій функціональності адміністратор може
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 37
централізовано керувати списком RFID-карт, які мають доступ до об'єкта, не
взаємодіючи безпосередньо з мікроконтролером. Після зчитування нового
списку дозволених ключів сервер передає його до модуля зчитування, де ці
дані зберігаються локально. Такий підхід забезпечує високу гнучкість у
керуванні доступом, дозволяє швидко оновлювати базу без фізичного
втручання, а також підтримує автономність роботи пристрою навіть при
тимчасовій втраті зв’язку з мережею.
Перед входом або виходом з приміщення співробітники або інші
авторизовані особи зобов’язані піднести свій ідентифікаційний ключ — RFID-
картку — до зчитувача. У разі наявності локально збереженої копії списку
дозволених ключів, зчитувач здатен автономно здійснити перевірку без
необхідності миттєвого звернення до сервера. Якщо зчитаний ключ присутній
у локальній базі дозволених ідентифікаторів, система автоматично фіксує
спробу входу або виходу, відкриває доступ (наприклад, розблоковує
електронний замок) та передає інформацію про цей факт на сервер. Такий
запис містить UID картки, тип події (вхід або вихід) та точний час, коли вона
відбулася.
У випадку, якщо ключ не є відомим системі — тобто його UID відсутній
у локальній базі — зчитувач не дозволяє доступ і подає користувачу
візуальний або звуковий сигнал про відмову. Таким чином, система гарантує,
що лише авторизовані особи можуть здійснювати доступ, а всі спроби входу
з невідомими або несанкціонованими ключами фіксуються як незараховані.
Це забезпечує надійний контроль відвідуваності та додатковий рівень безпеки.
Система контролю відвідуваності за своєю архітектурою не виконує
функцію фізичного блокування або розблокування дверей. Вона зосереджена
на точному зчитуванні RFID-ключів, перевірці їх автентичності та фіксації
подій доступу. Проте для розширення функціональності система підтримує
можливість інтеграції з зовнішніми пристроями та сервісами, що відповідають
за фізичне керування доступом.
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 38
Інтеграція може здійснюватися через інтерфейс Bluetooth, що дозволяє
обмінюватися командами з електронними замками або іншими пристроями
поблизу. Також реалізована підтримка технології вебхуків, завдяки якій
система може автоматично надсилати запити на сторонні сервіси чи
обладнання при настанні певних подій — наприклад, успішному зчитуванні
дозволеного ключа.
Завдяки таким можливостям система є універсальною та гнучкою: її
можна легко інтегрувати з існуючими системами контролю доступу,
охоронною інфраструктурою або обліку робочого часу. Це робить її
придатною для використання в різних середовищах — від офісів і навчальних
закладів до виробничих об’єктів чи коворкінгів — де потрібен надійний,
автономний, але водночас інтегрований контроль відвідуваності. Управління
ключами в панелі адміністратора зображено на рисунку 3.2.
Рисунок 3.2 – Управління ключами в панелі адміністратора
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 39
Система оснащена повноцінним модулем адміністрування, який надає
доступ до всіх основних функцій управління та моніторингу. У цьому модулі
адміністратор системи або менеджер, що має відповідні права доступу, може
керувати базою користувачів та їхніх ключів. Зокрема, він має змогу додавати
нові RFID-ключі, редагувати наявні записи, видаляти або блокувати доступ
певних осіб.
Крім управління ключами, адміністратор може отримувати детальну
інформацію про кожен ідентифікатор: хто ним користується, коли саме були
зафіксовані спроби входу чи виходу, з яких пристроїв і чи були вони
успішними. Усі події зберігаються на сервері, що дозволяє переглядати повну
історію відвідувань для кожної особи.
Окремою важливою функцією модуля адміністрування є можливість
автоматичного або ручного формування звітів. Адміністратор може
згенерувати звіт, у якому буде вказано, скільки часу конкретна особа провела
в приміщенні за вибраний період. Такий звіт базується на зіставленні часу
входу та виходу й може бути використаний для обліку робочого часу,
внутрішнього контролю або аналітичного аналізу. Це значно спрощує
управління персоналом та підвищує прозорість у роботі організації.
Адміністратор системи також має розширені можливості щодо
конфігурації структури самої системи. Зокрема, він може додавати нові
зчитувачі, які фізично встановлюються при вході або виході з приміщень.
Кожен зчитувач фіксується в системі як окремий пристрій з унікальним
ідентифікатором, що дозволяє точно визначити, де саме було здійснено спробу
доступу.
Окрім цього, адміністратор може створювати логічну структуру об’єкта,
додаючи в систему приміщення або зони, в яких ведеться облік відвідуваності.
Це дозволяє системі не лише фіксувати факт входу або виходу, а й
конкретизувати місце події — наприклад, «основний офіс», «складське
приміщення», «лабораторія» тощо. Завдяки цьому можна вести деталізований
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 40
облік переміщень користувачів між різними зонами, формувати більш точні
звіти та впроваджувати зоновану систему доступу. Створення нового
приміщення зображено на рисунку 3.3.
Рисунок 3.3 – Створення нового приміщення
Таким чином, адміністратор має повний контроль над логікою роботи
системи, її фізичною і логічною структурою, а також над правилами, за якими
здійснюється контроль відвідуваності. Це робить систему масштабованою,
зручною для впровадження в об'єктах будь-якої складності.
Маючи увесь набір описаних функцій, система постає як досить
універсальне рішення для контролю доступу та обліку відвідуваності. Вона
поєднує в собі можливості автономної роботи з RFID-зчитувачами,
централізоване адміністрування, гнучку інтеграцію з іншими системами,
ведення статистики, формування звітів і масштабування під потреби
конкретного об’єкта. Завдяки підтримці стандартних технологій, таких як
HTTP, Bluetooth, вебхуки та популярні платформи для розробки, її можна
легко адаптувати до будь-якого середовища — від невеликих офісів до
великих установ з розгалуженою структурою приміщень.
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 41
Поєднання функціональної гнучкості, простоти в обслуговуванні та
технічної відкритості робить цю систему конкурентно здатною на ринку. Вона
здатна конкурувати з дорогими комерційними рішеннями, пропонуючи
подібний рівень ефективності при значно менших витратах на розгортання та
підтримку. Завдяки можливості подальшого розвитку й адаптації, система
залишається актуальною та вигідною інвестицією в довгостроковій
перспективі.
3.3 Технічні вимоги для роботи з системою
Для забезпечення стабільної, надійної та безперебійної роботи системи
реєстрації та контролю відвідуваності на основі мікроконтролерів з RFID-
зчитувачами необхідно дотримуватися низки технічних вимог. Ці вимоги
охоплюють як апаратне забезпечення, так і програмну частину, а також
особливості мережевого середовища, в якому функціонуватиме система.
Перш за все, кожен модуль зчитування повинен базуватися на
мікроконтролері, який підтримує Wi-Fi-з’єднання, наприклад, ESP8266 або
ESP32. Ці пристрої повинні мати стабільне живлення — як правило, через
стабілізований блок живлення на 5V або 3.3V, залежно від конфігурації
модуля. Рекомендується використовувати зовнішні джерела живлення з
захистом від перенапруги, оскільки перебої в енергоживленні можуть
спричинити некоректну роботу пристрою або втрату даних у момент обміну
з сервером.
RFID-зчитувачі типу RC522 повинні бути надійно підключені до
мікроконтролера через SPI-шину. Необхідно забезпечити надійний контакт
між контактами (MOSI, MISO, SCK, SDA, RST) та використання резисторів
підтягування за потреби, особливо при великих довжинах з’єднувальних
проводів. Крім того, потрібно враховувати допустиму відстань зчитування
RFID-ключів, яка для RC522 становить приблизно 2–5 см, залежно від
живлення та якості антен.
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 42
Для збереження локальної бази ключів на мікроконтролері
рекомендується використовувати вбудовану пам’ять (EEPROM, SPIFFS або
LittleFS), що дозволяє пристрою працювати автономно у разі втрати з’єднання
з сервером. Під час розробки прошивки необхідно передбачити механізми
безпечного оновлення локальної бази ключів через серверні запити, щоб
уникнути конфліктів або втрати даних.
На програмному рівні система повинна бути реалізована з
використанням Arduino IDE, з відповідними бібліотеками для роботи з RFID,
Wi-Fi, HTTP-запитами та локальним збереженням даних. Для кодування
логіки рекомендується використовувати C++, оскільки ця мова є оптимальною
для роботи з Arduino-платформами та мікроконтролерами загалом. Код
повинен бути оптимізованим з урахуванням обмежених ресурсів контролера,
таких як обсяг оперативної пам’яті та енергоефективність.
Для коректної комунікації з сервером потрібно стабільне підключення
до Wi-Fi-мережі з доступом до локального або зовнішнього сервера, на якому
розгорнута серверна частина. Сервер має приймати HTTP-запити від
зчитувачів і відповідати на них у форматі JSON. Через обмеження ESP8266
щодо ресурсів і обробки SSL-з’єднань, для зменшення навантаження варто
використовувати простий HTTP-протокол у поєднанні з власним
шифруванням або токенами автентифікації.
Серверна частина повинна працювати на будь-якому хостингу або
сервері, що підтримує PHP, і мати доступ до бази даних MySQL. Для
забезпечення захищеного зберігання даних необхідно налаштувати
обмеження прав доступу, резервне копіювання та аудит змін. Система повинна
бути здатною обробляти запити від кількох зчитувачів одночасно, з
урахуванням можливої затримки передачі даних або повторної відправки при
помилках.
Крім того, адміністраторський веб-інтерфейс має бути доступним через
браузер і мати адаптивний дизайн для зручної роботи як з комп’ютерів, так і
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 43
з мобільних пристроїв. Для його реалізації можна використовувати HTML,
CSS, JavaScript і PHP, із застосуванням сучасних фреймворків для полегшення
розробки та розширення функціоналу.
Загалом, для стабільної роботи системи необхідно дотримуватися таких
вимог:
1. якісне енергоживлення мікроконтролерів і зчитувачів;
2. надійне мережеве з'єднання з сервером;
3. регулярне оновлення прошивки і бази ключів;
4. захист від несанкціонованого доступу;
5. зручний інтерфейс керування і моніторингу;
6. резервне копіювання критичних даних.
Сукупність цих технічних рішень дозволяє створити стабільну,
масштабовану та безпечну систему обліку відвідуваності, яка легко
адаптується до потреб конкретної організації.
3.4 Оцінка ефективності
Оцінка ефективності розробленої системи реєстрації та контролю
відвідуваності базується на її здатності виконувати основні функції точно,
стабільно та з мінімальними витратами на обслуговування. Ефективність
системи проявляється в декількох ключових аспектах: точності фіксації подій,
швидкості реагування, надійності роботи, адаптивності до змін, зручності
адміністрування та загальній вартості впровадження.
Перш за все, система забезпечує високу точність і швидкість зчитування
RFID-ключів. Завдяки використанню надійних компонентів, таких як RC522
та ESP8266, час обробки подій входу або виходу становить менше однієї
секунди. Це дозволяє уникнути заторів при проході через контрольні точки,
особливо в годинах пік. Автономна робота мікроконтролера з локальним
збереженням списку дозволених ключів гарантує, що навіть при тимчасовій
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 44
відсутності підключення до мережі система продовжує виконувати свої
функції без перерв.
Надійність роботи підтверджується стабільністю комунікації між
зчитувачами та сервером. Усі спроби входу та виходу записуються, навіть
якщо під час події було втрачено мережу — після відновлення підключення
дані синхронізуються з сервером. Завдяки простій архітектурі система вимагає
мінімального обслуговування та не потребує постійного нагляду.
Гнучкість та адаптивність системи — ще один показник її ефективності.
Можливість створення окремих приміщень, додавання нових зчитувачів і
редагування списків ключів через зручний веб-інтерфейс дозволяє швидко
масштабувати систему відповідно до зростання організації або зміни
структури об’єкта. Крім того, система підтримує інтеграцію з іншими
технологіями, що дозволяє легко її підключати до електронних замків,
охоронних систем чи сервісів обліку робочого часу.
З економічної точки зору, ефективність системи полягає у використанні
недорогих, але надійних апаратних компонентів, відкритих програмних
інструментів (Arduino IDE, C++, PHP, MySQL), що значно знижує витрати на
розгортання та підтримку в порівнянні з комерційними аналогами. Крім того,
завдяки використанню стандартних технологій, організація не залежить від
постачальників і може самостійно розвивати систему або легко знайти
спеціалістів для її підтримки.
Розроблена система реєстрації та контролю відвідуваності є
конкурентно здатною завдяки поєднанню високої функціональності, гнучкості
та економічної ефективності. Вона пропонує широкий спектр можливостей,
які відповідають сучасним вимогам безпеки та обліку — автономна робота з
RFID-зчитувачами, централізоване адміністрування, можливість
масштабування та інтеграції з іншими системами. Це робить її привабливим
вибором для організацій, які прагнуть отримати надійне рішення без значних
капіталовкладень у складні комерційні продукти.
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 45
Крім того, система базується на відкритих технологіях і популярних
платформах, що забезпечує легкість у впровадженні, підтримці та подальшому
розвитку. Завдяки цьому її можуть адаптувати під конкретні потреби
замовника, а також модернізувати з урахуванням змін у технологіях або
вимогах бізнесу. Такий підхід значно підвищує її привабливість на ринку,
оскільки дозволяє організаціям уникнути залежності від одного постачальника
і знизити експлуатаційні витрати, що є вагомою перевагою перед багатьма
комерційними аналогами.
Розроблена система є ефективною як з технічного, так і з
організаційного погляду. Вона виконує свої функції точно, надійно і з
мінімальними затратами, забезпечуючи контроль доступу та реєстрацію
відвідуваності на високому рівні. Її універсальність та відкритість до
розширення роблять її перспективним рішенням для різноманітних сфер
застосування.
3.5 Висновки до розділу
Система реєстрації та контролю відвідуваності має модульну
архітектуру, що включає три основні складові: модуль зчитування RFID-карт,
серверну частину та адміністративний інтерфейс. Такий розподіл
функціональності забезпечує автономність роботи кожного модуля,
ефективну взаємодію між компонентами та гнучке масштабування всієї
системи.
Модуль зчитування карт, побудований на базі мікроконтролера ESP8266
і RFID-зчитувача RC522, виконує ідентифікацію користувачів, локальну
перевірку прав доступу, управління виконавчими пристроями (наприклад,
реле для відкривання дверей), а також передачу подій на сервер. Серверна
частина виступає центральною ланкою, яка обробляє, зберігає та валідує
отримані дані, синхронізує списки доступу та забезпечує безпеку системи.
Адміністративний модуль надає зручний веб-інтерфейс для управління
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 46
користувачами, перегляду журналів подій та контролю системи в цілому, з
підтримкою багаторівневого доступу.
Завдяки такій структурі система є надійною, адаптивною до різних умов
експлуатації та здатною забезпечити високий рівень безпеки та контролю за
відвідуваністю без потреби у постійному втручанні з боку обслуговуючого
персоналу.
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 47
4 ЗАХИСТ СИСТЕМИ РЕЄСТРАЦІЇ ТА КОНТРОЛЮ
ВІДВІДУВАНОСТІ НА ОСНОВІ МІКРОКОНТРОЛЕРІВ ESP8266
4.1 Огляд існуючих рішень
Системи контролю доступу на основі RFID технологій забезпечують
швидку і зручну ідентифікацію користувачів, проте через безконтактний
характер обміну даними вони можуть бути вразливими до різних видів атак.
Тому захист інформації є критично важливою складовою при розробці та
експлуатації RFID-систем.
Для захисту даних, що передаються між RFID-картою та зчитувачем,
застосовують різноманітні методи шифрування. Використання
криптографічних алгоритмів дозволяє унеможливити перехоплення та аналіз
сигналу сторонніми особами, які можуть намагатися скопіювати або
підробити картку. Сучасні RFID-карти підтримують шифрування даних, що
передаються, а також механізми автентифікації, які підтверджують
справжність користувача.
Також важливо використовувати захищені протоколи обміну даними
між зчитувачем і центральною системою контролю. Застосування протоколів
з підтримкою шифрування (наприклад, TLS/SSL) дозволяє убезпечити
передачу інформації мережею і уникнути атак типу “людина посередині”
(Man-in-the-Middle) [24].
Ще одним аспектом безпеки є фізичний захист пристроїв. RFID-
считывачі повинні бути надійно встановлені в контрольованих зонах, щоб
запобігти їх несанкціонованому доступу або пошкодженню. Крім того,
необхідно регулярно оновлювати програмне забезпечення пристроїв, щоб
закрити виявлені вразливості.
Для підвищення безпеки рекомендується впроваджувати
багатофакторну аутентифікацію, коли RFID-карта є лише одним із факторів
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 48
підтвердження особи, доповненим, наприклад, PIN-кодом або біометричними
даними.
Таким чином, комплексний підхід до захисту інформації при
використанні RFID-систем зчитування включає криптографію, захищені
протоколи передачі даних, фізичний захист обладнання та додаткові методи
аутентифікації. Це забезпечує надійний рівень безпеки і запобігає
несанкціонованому доступу до контрольованих приміщень.
Для забезпечення надійного захисту даних у системі контролю
відвідуваності особливу увагу слід приділити безпеці доступу користувачів,
зокрема менеджменту, який має розширені права.
Автентифікація — це процес перевірки особи користувача при вході в
систему. Для менеджерів необхідно застосовувати складні та надійні методи
підтвердження особи:
1. Використання унікальних логінів і сильних паролів, які включають
комбінацію великих і малих літер, цифр та спеціальних символів.
2. Запровадження двофакторної автентифікації (2FA), коли окрім пароля
користувач вводить одноразовий код з мобільного додатку або SMS.
3. За потреби можна додатково використовувати біометричні методи,
наприклад, розпізнавання обличчя або відбитків пальців для більш
надійного підтвердження особи.
Після успішної автентифікації відбувається авторизація — визначення
рівня доступу користувача:
1. Адміністратори мають повний доступ до управління системою, зміни
налаштувань і роботи з користувачами.
2. Менеджери можуть переглядати звіти та дані по відвідуваності, але не
мають прав на зміну критичних параметрів.
3. Звичайні користувачі отримують доступ лише до персональної
інформації або власного графіку.
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 49
Чітке розмежування прав забезпечує контроль над доступом і захищає систему
від випадкових або навмисних змін з боку неуповноважених осіб.
Для посилення захисту інформації слід впроваджувати такі практики:
1. Хешування паролів за допомогою надійних алгоритмів (bcrypt, Argon2)
для запобігання розкриттю у випадку компрометації бази даних.
2. Відстеження сесій користувачів із автоматичним розлогінюванням після
тривалого простою.
3. Логування всіх спроб входу, зокрема невдалих, для виявлення
потенційних атак.
4. Обмеження доступу до системи за IP-адресами або через VPN, що
дозволяє підключатися лише з безпечних мереж.
Застосування цих комплексних заходів у системі забезпечить надійний
захист конфіденційної інформації, уникне несанкціонованого доступу і
гарантує безпеку управлінських процесів.
Одним із ключових аспектів безпеки системи контролю відвідуваності
є надійний захист даних, що зберігаються в базі даних. Вразливість інформації
на цьому рівні може призвести до несанкціонованого доступу, витоку або
модифікації конфіденційних даних, тому необхідно впроваджувати комплекс
заходів безпеки.
Важливо забезпечити контроль доступу до бази даних. Кожен
користувач чи сервіс, який взаємодіє з базою, має мати мінімально необхідні
права доступу (принцип найменших привілеїв). Таким чином, навіть у разі
компрометації одного з облікових записів ризик поширення атаки
зменшується.
Шифрування даних — це один із найбільш ефективних способів
захистити інформацію. Варто застосовувати шифрування не лише під час
передачі даних (через TLS/SSL), але і безпосередньо при зберіганні (на рівні
бази даних або додатку). Це унеможливлює прочитання інформації
сторонніми навіть у разі отримання доступу до файлів бази.
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 50
Також критично важливо застосовувати хешування та соління паролів і
інших чутливих даних, що не повинні зберігатися у відкритому вигляді.
Надійні алгоритми хешування (bcrypt, Argon2) допомагають захистити
інформацію у разі витоку [25].
Не менш важливим є регулярне оновлення та патчинг систем управління
базами даних. Застарілі версії можуть містити відомі уразливості, які легко
використовують зловмисники. Систематичне оновлення гарантує, що база
даних працює з актуальними засобами безпеки.
Для підвищення безпеки рекомендується вести аудит та логування дій
у базі даних. Фіксація спроб доступу, змін даних і помилок допомагає вчасно
виявляти підозрілі активності та реагувати на потенційні загрози.
Захист інформації при збереженні в базі даних базується на контролі
доступу, шифруванні, правильній обробці чутливих даних, оновленні систем
та аудиті, що забезпечує високий рівень безпеки та цілісності даних системи.
Передача даних між RFID-зчитувачем (на основі мікроконтролера
ESP8266 або іншого пристрою) та сервером є критичним етапом, що вимагає
особливої уваги до безпеки. Через відкритий характер мережі інтернет існує
ризик перехоплення, підміни або модифікації інформації зловмисниками.
Для захисту даних необхідно впровадити надійні методи шифрування.
Найпоширенішим підходом є використання захищених протоколів передачі,
таких як HTTPS (HTTP поверх TLS/SSL) або MQTT із TLS. Ці протоколи
забезпечують шифрування каналу зв’язку, що унеможливлює стороннім
особам прочитати або змінити передані дані.
Окрім шифрування, важливо застосовувати автентифікацію пристроїв.
Зчитувач повинен підтверджувати свою ідентичність серверу за допомогою
сертифікатів або токенів доступу, що запобігає підключенню
несанкціонованих пристроїв до системи.
Ще одним важливим аспектом є захист від повторного відтворення (replay
attack) — ситуації, коли зловмисник перехоплює легітимний пакет даних і
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 51
надсилає його повторно, щоб отримати несанкціонований доступ. Для цього
застосовують унікальні ідентифікатори сесій, таймстампи або одноразові
коди.
Крім того, варто використовувати мережеві засоби безпеки, такі як VPN
або приватні мережі, які створюють додатковий захищений канал для обміну
інформацією між зчитувачем і сервером.
Регулярне оновлення прошивки зчитувача та серверного програмного
забезпечення дозволяє усувати вразливості і підтримувати надійність захисту.
Таким чином, комплексний підхід, що включає шифрування передачі даних,
автентифікацію пристроїв, захист від атак повторного відтворення і
використання безпечних мережевих каналів, забезпечує високий рівень
безпеки інформації при передачі даних від зчитувача до серверу.
4.2 Реалізація захисту користувачів
Захист користувачів у модулі зчитування ключів реалізовано через
кілька рівнів, що забезпечують безпеку і конфіденційність даних, а також
надійну ідентифікацію осіб. По-перше, сам процес зчитування RFID-карток
відбувається за допомогою модуля RC522, який підтримує обмін даними на
основі унікальних ідентифікаторів ключів (UID). Ці ідентифікатори не містять
відкритої інформації про користувача, що унеможливлює підробку або
несанкціоноване копіювання карток на базовому рівні.
Далі, дані, отримані зі зчитувача, обробляються мікроконтролером
ESP8266, який зберігає локальний список дозволених ключів у захищеній
пам’яті. Для підвищення безпеки інформація зчитаних ключів порівнюється з
цим списком безпосередньо на пристрої, що знижує ризик витоку даних під
час передачі. При обміні інформацією із сервером використовується
захищений протокол передачі, що передбачає додаткове шифрування або
застосування токенів аутентифікації, оскільки через обмежені ресурси
мікроконтролера неможливо використовувати повноцінний HTTPS.
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 52
Також передбачені механізми виявлення та блокування спроб
несанкціонованого доступу. Якщо ключ не розпізнаний або спроба доступу
повторюється із невідомого зчитувача, система сигналізує про це звуковим
або світловим індикатором, а відповідні події реєструються і передаються
адміністратору для подальшого аналізу. Завдяки такому багаторівневому
захисту модуль зчитування ключів забезпечує надійну ідентифікацію
користувачів і мінімізує ризики порушення безпеки.
Захист користувачів при роботі з модулем серверної частини
реалізований комплексно і включає кілька ключових рівнів безпеки, що
забезпечують цілісність, конфіденційність та доступність даних, а також
контроль доступу до системи.
Серверна частина розроблена з урахуванням принципів аутентифікації
та авторизації користувачів. Для входу в адміністративний інтерфейс система
вимагає обов’язкової авторизації, де кожен адміністратор або менеджер має
унікальний логін і пароль. Паролі зберігаються у базі даних у вигляді
захищених хешів з використанням стійких криптографічних алгоритмів
(наприклад, bcrypt), що значно ускладнює можливість їх компрометації навіть
у випадку несанкціонованого доступу до бази даних. Крім того, для
підвищення рівня безпеки можна впровадити двофакторну аутентифікацію
(2FA), що передбачає підтвердження входу через додатковий код, надісланий
користувачу.
Передача даних між сервером та пристроями або користувачами
реалізована через HTTP з додатковими шарами шифрування, оскільки
використання повноцінного HTTPS на мікроконтролерах є ресурсно-
витратним. Дані, які передаються, кодуються власними алгоритмами
шифрування або передаються у вигляді зашифрованих токенів. Це
унеможливлює перехоплення та читання інформації зловмисниками під час
передачі, забезпечуючи захист персональних даних користувачів та
інформації про доступ.
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 53
Сервер також реалізує контроль прав доступу до різних функцій
системи. Адміністратори мають розширені права для додавання або видалення
ключів, створення приміщень, додавання зчитувачів та формування звітів,
тоді як звичайні користувачі або оператори можуть мати обмежений доступ
до перегляду інформації. Така ролева модель дозволяє мінімізувати ризики
випадкових або навмисних змін критичних даних.
Важливим елементом безпеки є регулярне резервне копіювання бази
даних і журналів подій, що дозволяє швидко відновити систему у разі
технічних збоїв або кіберінцидентів. Для запобігання несанкціонованому
доступу до серверного обладнання та програмного забезпечення
застосовуються сучасні засоби захисту, такі як міжмережеві екрани
(файрволи), системи виявлення вторгнень (IDS) та антивірусні рішення.
Окрім цього, серверна частина підтримує ведення детального аудиту дій
користувачів, що дає можливість відстежувати всі зміни у системі, виявляти
підозрілі активності та швидко реагувати на можливі загрози. Завдяки такому
багаторівневому підходу захисту, модуль серверної частини забезпечує
надійний контроль над безпекою користувачів і збереженням їх даних у межах
системи.
Захист користувачів у модулі адміністрування реалізовано на кількох
рівнях, що забезпечують надійний контроль доступу, конфіденційність даних
і безпеку операцій, пов’язаних із керуванням системою реєстрації та контролю
відвідуваності.
Передусім, доступ до модуля адміністрування обмежений і реалізований
через систему аутентифікації. Користувачі, які мають право адміністративного
доступу, проходять процедуру входу з використанням унікальних логінів та
паролів, що зберігаються у базі даних у вигляді захищених хешів із
застосуванням стійких криптографічних алгоритмів, таких як bcrypt. Це
унеможливлює відновлення пароля навіть у разі компрометації бази даних.
Для додаткового захисту може бути впроваджена двофакторна
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 54
аутентифікація, що вимагає підтвердження входу через одноразовий код, який
надсилається на електронну пошту або мобільний телефон адміністратора.
Рівень авторизації визначає права користувачів у межах модуля
адміністрування. Система підтримує ролі з різним ступенем доступу:
адміністратор має повний контроль над всіма функціями — додаванням і
видаленням ключів, управлінням зчитувачами та приміщеннями, а також
генерацією звітів, тоді як користувачі з обмеженими правами можуть лише
переглядати інформацію без можливості її змінювати. Така ролева модель
запобігає несанкціонованим діям і помилковим змінам у налаштуваннях
системи.
Важливою складовою захисту є безпечна передача даних між
інтерфейсом адміністрування та сервером. Хоча мікроконтролери
використовують HTTP з додатковим шифруванням для передачі даних, у веб-
інтерфейсі адміністрування рекомендується використовувати HTTPS, що
гарантує захист інформації від перехоплення або підміни у мережі. Всі
операції в системі журналюються, що дозволяє відстежувати дії кожного
адміністратора та виявляти можливі спроби зловживань або
несанкціонованого доступу.
Крім цього, система передбачає механізми захисту від атак типу CSRF
(Cross-Site Request Forgery) та XSS (Cross-Site Scripting) шляхом використання
токенів безпеки і належної валідації вводу, що запобігає впровадженню
шкідливого коду або несанкціонованих запитів до сервера.
Для забезпечення безперебійної роботи та захисту даних адміністраторами
рекомендується регулярне резервне копіювання бази даних і налаштувань, а
також оновлення програмного забезпечення з урахуванням останніх патчів
безпеки. Завдяки цілісному підходу до безпеки модуль адміністрування
забезпечує надійний контроль над системою, захищаючи користувачів і дані
від потенційних загроз та несанкціонованого доступу.
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 55
4.3 Висновки до розділу
Системи контролю доступу на основі RFID-технологій потребують
комплексного підходу до безпеки через ризики, пов’язані з безконтактною
передачею даних. Ефективний захист забезпечується завдяки застосуванню
криптографічних алгоритмів, захищених протоколів (TLS/SSL),
багатофакторної автентифікації, фізичному захисту обладнання, а також
чіткому розмежуванню прав користувачів. Додаткову безпеку забезпечують
хешування паролів, аудит подій, захист баз даних і шифрування при передачі
та зберіганні інформації. Такий підхід дозволяє мінімізувати ризики
несанкціонованого доступу та гарантує цілісність і конфіденційність даних.
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 56
ВИСНОВКИ
У результаті комплексного аналізу та технічного обґрунтування було
встановлено, що впровадження автоматизованої системи реєстрації та
контролю відвідуваності на основі RFID-технологій є ефективним та
стратегічно доцільним рішенням для сучасних підприємств. Така система
дозволяє не лише фіксувати час входу та виходу співробітників, а й підвищує
рівень безпеки, прозорість управління персоналом і мінімізує ризики
несанкціонованого доступу чи маніпуляцій з даними.
Автоматизована система реєстрації відвідуваності, яка ґрунтується на
використанні RFID-карт та зберігає інформацію у централізованій базі даних,
значно спрощує процес обліку робочого часу, знижує вплив людського
фактора та підвищує прозорість управлінських рішень. Крім того, можливість
інтеграції з іншими інформаційними системами, зокрема із системами
відеоспостереження та автоматизованого керування доступом до приміщень,
забезпечує комплексний підхід до безпеки та контролю персоналу.
Інтеграція контролю доступу з відеофіксацією створює додатковий
рівень захисту та надає можливість аудиту подій. Використання
мікроконтролера ESP8266 із вбудованим Wi-Fi-модулем і RFID-зчитувача
RC522 забезпечує економічну та технічно обґрунтовану реалізацію проєкту.
Використання протоколів MQTT і HTTP сприяє ефективній передачі даних, а
серверна частина, реалізована з використанням PHP та реляційних баз даних
(MySQL, PostgreSQL тощо), забезпечує надійне зберігання, обробку та захист
інформації.
Архітектура системи має модульну побудову, що забезпечує її гнучке
масштабування, автономність окремих компонентів та зручне адміністрування
через веб-інтерфейс з підтримкою багаторівневого доступу. Особлива увага
приділена питанням інформаційної безпеки, включаючи криптографічні
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 57
алгоритми, багатофакторну автентифікацію, захищені протоколи TLS/SSL,
аудит подій, шифрування даних і чітке розмежування прав доступу.
Крім того, перспективним напрямом подальшого розвитку системи є
інтеграція з технологіями штучного інтелекту — зокрема, для розпізнавання
облич, аналітики поведінки персоналу та прогнозування відвідуваності. Це
дозволить підвищити точність авторизації та подальше розширення
функціональності без кардинальної зміни базової архітектури.
Таким чином, розроблена система є надійною, масштабованою,
технологічно гнучкою та здатною значно покращити процеси контролю
доступу й управління персоналом у компаніях, що відповідає вимогам
сучасного бізнес-середовища.
Лист
ЧДТУ.252210.010 ПЗ т
Зм. Лист № докум. Підпис Дата 58
ДОДАТОК А
«ЗАТВЕРДЖУЮ»
Завідувач кафедри ІБ та КІ
д.т.н., професор Віра БАБЕНКО
__________________
«___» ____________ 2025 року
Розробка системи реєстрації та контролю відвідуваності на
основі мікроконтролерів ESP8266
Специфікація
482.ЧДТУ.52210-01
Листів 2
Розробник ______________ Роман ЧУПИЛКА
Керівник ______________ Ольга НЕЧИПОРЕНКО
Черкаси 2025
2
482.ЧДТУ.52210-01
Позначення Найменування Примітка
Документація
482.ЧДТУ.52210-01 12 01 Текст програми
482.ЧДТУ.52210-01 34 01 Інструкція користувача
ДОДАТОК Б
Розробка системи реєстрації та контролю відвідуваності на
основі мікроконтролерів ESP8266
Текст програми
482.ЧДТУ.52210-01 12 01
Листів 13
Розробник: _____________ Роман ЧУПИЛКА
Черкаси 2025
2
482.ЧДТУ.52210-01 12 01
<?php
class Database {
private $conn;
private static $instance = null;
private function __construct() {
$this->conn = new mysqli('localhost', 'root', 'password', 'rfid_system');
if ($this->conn->connect_error) {
die('Connection failed: ' . $this->conn->connect_error);
}
$this->conn->set_charset('utf8mb4');
}
public static function getInstance() {
if (self::$instance === null) {
self::$instance = new self();
}
return self::$instance;
}
public function query($sql) {
return $this->conn->query($sql);
}
public function escape($value) {
return $this->conn->real_escape_string($value);
}
}
class RFIDSystem {
private $db;
public function __construct() {
$this->db = Database::getInstance();
}
public function validateRFID($rfid_code, $location_id) {
$rfid = $this->db->escape($rfid_code);
$loc = (int)$location_id;
$sql = "SELECT u.id, u.name, u.access_level FROM users u
INNER JOIN rfid_cards r ON u.id = r.user_id
3
482.ЧДТУ.52210-01 12 01
WHERE r.rfid_code = '$rfid' AND r.is_active = 1";
$result = $this->db->query($sql);
if ($result->num_rows > 0) {
$user = $result->fetch_assoc();
$this->logAccess($user['id'], $loc, 1);
return ['status' => 'success', 'user' => $user];
}
$this->logAccess(0, $loc, 0);
return ['status' => 'error', 'message' => 'Invalid RFID'];
}
private function logAccess($user_id, $location_id, $success) {
$sql = "INSERT INTO access_logs (user_id, location_id, success, timestamp)
VALUES ($user_id, $location_id, $success, NOW())";
$this->db->query($sql);
}
}
class AdminPortal {
private $db;
public function __construct() {
$this->db = Database::getInstance();
}
public function addUser($name, $email, $access_level) {
$name = $this->db->escape($name);
$email = $this->db->escape($email);
$level = (int)$access_level;
$sql = "INSERT INTO users (name, email, access_level) VALUES ('$name',
'$email', $level)";
return $this->db->query($sql);
}
public function assignRFID($user_id, $rfid_code) {
$user_id = (int)$user_id;
$rfid = $this->db->escape($rfid_code);
4
482.ЧДТУ.52210-01 12 01
$sql = "INSERT INTO rfid_cards (user_id, rfid_code, is_active) VALUES
($user_id, '$rfid', 1)";
return $this->db->query($sql);
}
public function addLocation($name, $description) {
$name = $this->db->escape($name);
$desc = $this->db->escape($description);
$sql = "INSERT INTO locations (name, description) VALUES ('$name',
'$desc')";
return $this->db->query($sql);
}
public function getAccessLogs($limit = 100) {
$limit = (int)$limit;
$sql = "SELECT l.timestamp, u.name, loc.name as location, l.success
FROM access_logs l
LEFT JOIN users u ON l.user_id = u.id
LEFT JOIN locations loc ON l.location_id = loc.id
ORDER BY l.timestamp DESC LIMIT $limit";
return $this->db->query($sql);
}
public function deactivateRFID($rfid_code) {
$rfid = $this->db->escape($rfid_code);
$sql = "UPDATE rfid_cards SET is_active = 0 WHERE rfid_code = '$rfid'";
return $this->db->query($sql);
}
}
$api = new class {
private $rfid_system;
public function __construct() {
$this->rfid_system = new RFIDSystem();
}
public function handleRequest() {
5
482.ЧДТУ.52210-01 12 01
$input = json_decode(file_get_contents('php://input'), true);
if (!isset($input['action'])) {
$this->respond(['status' => 'error', 'message' => 'No action specified']);
return;
}
switch ($input['action']) {
case 'validate_rfid':
if (!isset($input['rfid_code']) || !isset($input['location_id'])) {
$this->respond(['status' => 'error', 'message' => 'Missing parameters']);
return;
}
$result = $this->rfid_system->validateRFID($input['rfid_code'],
$input['location_id']);
$this->respond($result);
break;
default:
$this->respond(['status' => 'error', 'message' => 'Invalid action']);
}
}
private function respond($data) {
header('Content-Type: application/json');
echo json_encode($data);
}
};
$api->handleRequest();
class AdminAPI {
private $admin;
public function __construct() {
session_start();
if (!isset($_SESSION['admin_id'])) {
$this->respond(['status' => 'error', 'message' => 'Unauthorized']);
exit;
}
$this->admin = new AdminPortal();
}
6
482.ЧДТУ.52210-01 12 01
public function handleRequest() {
$input = json_decode(file_get_contents('php://input'), true);
if (!isset($input['action'])) {
$this->respond(['status' => 'error', 'message' => 'No action specified']);
return;
}
switch ($input['action']) {
case 'add_user':
$result = $this->admin->addUser($input['name'], $input['email'],
$input['access_level']);
break;
case 'assign_rfid':
$result = $this->admin->assignRFID($input['user_id'],
$input['rfid_code']);
break;
case 'add_location':
$result = $this->admin->addLocation($input['name'],
$input['description']);
break;
case 'get_logs':
$result = $this->admin->getAccessLogs($input['limit'] ?? 100);
break;
case 'deactivate_rfid':
$result = $this->admin->deactivateRFID($input['rfid_code']);
break;
default:
$this->respond(['status' => 'error', 'message' => 'Invalid action']);
return;
}
$this->respond(['status' => 'success', 'data' => $result]);
}
7
482.ЧДТУ.52210-01 12 01
private function respond($data) {
header('Content-Type: application/json');
echo json_encode($data);
}
}
<?php
class AccessSchedule {
private $db;
public function __construct() {
$this->db = Database::getInstance();
}
public function addSchedule($user_id, $location_id, $start_time, $end_time,
$days) {
$user_id = (int)$user_id;
$location_id = (int)$location_id;
$start = $this->db->escape($start_time);
$end = $this->db->escape($end_time);
$days = $this->db->escape(json_encode($days));
$sql = "INSERT INTO access_schedules (user_id, location_id, start_time,
end_time, days)
VALUES ($user_id, $location_id, '$start', '$end', '$days')";
return $this->db->query($sql);
}
public function isAccessAllowed($user_id, $location_id) {
$now = date('H:i:s');
$day = strtolower(date('l'));
$sql = "SELECT * FROM access_schedules
WHERE user_id = $user_id
AND location_id = $location_id
AND '$now' BETWEEN start_time AND end_time
AND JSON_CONTAINS(days, '\"$day\"')";
$result = $this->db->query($sql);
return $result->num_rows > 0;
}
}
8
482.ЧДТУ.52210-01 12 01
class UserGroups {
private $db;
public function __construct() {
$this->db = Database::getInstance();
}
public function createGroup($name, $access_level) {
$name = $this->db->escape($name);
$level = (int)$access_level;
$sql = "INSERT INTO user_groups (name, access_level) VALUES ('$name',
$level)";
return $this->db->query($sql);
}
public function assignUserToGroup($user_id, $group_id) {
$user = (int)$user_id;
$group = (int)$group_id;
$sql = "INSERT INTO user_group_members (user_id, group_id) VALUES
($user, $group)";
return $this->db->query($sql);
}
public function getGroupPermissions($user_id) {
$sql = "SELECT g.* FROM user_groups g
INNER JOIN user_group_members m ON g.id = m.group_id
WHERE m.user_id = $user_id";
return $this->db->query($sql);
}
}
class AlertSystem {
private $db;
private $mail_config;
public function __construct() {
$this->db = Database::getInstance();
$this->mail_config = [
'smtp_host' => 'smtp.example.com',
9
482.ЧДТУ.52210-01 12 01
'smtp_port' => 587,
'smtp_user' => '[email protected]',
'smtp_pass' => 'your_password'
];
}
public function logAlert($type, $message, $severity, $location_id) {
$type = $this->db->escape($type);
$message = $this->db->escape($message);
$severity = (int)$severity;
$location_id = (int)$location_id;
$sql = "INSERT INTO alerts (type, message, severity, location_id)
VALUES ('$type', '$message', $severity, $location_id)";
$this->db->query($sql);
if ($severity >= 8) {
$this->sendEmergencyNotification($message);
}
}
private function sendEmergencyNotification($message) {
$headers = 'From: ' . $this->mail_config['smtp_user'] . "\r\n" .
'Reply-To: ' . $this->mail_config['smtp_user'] . "\r\n" .
'X-Mailer: PHP/' . phpversion();
$sql = "SELECT email FROM users WHERE access_level >= 8";
$result = $this->db->query($sql);
while ($row = $result->fetch_assoc()) {
mail($row['email'], 'Emergency Alert', $message, $headers);
}
}
}
class ReportGenerator {
private $db;
public function __construct() {
$this->db = Database::getInstance();
}
10
482.ЧДТУ.52210-01 12 01
public function generateAccessReport($start_date, $end_date, $location_id =
null) {
$start = $this->db->escape($start_date);
$end = $this->db->escape($end_date);
$location_clause = $location_id ? "AND l.location_id = " . (int)$location_id :
"";
$sql = "SELECT
DATE(l.timestamp) as date,
COUNT(*) as total_attempts,
SUM(l.success) as successful_attempts,
loc.name as location_name
FROM access_logs l
LEFT JOIN locations loc ON l.location_id = loc.id
WHERE l.timestamp BETWEEN '$start' AND '$end' $location_clause
GROUP BY DATE(l.timestamp), l.location_id
ORDER BY date DESC";
return $this->db->query($sql);
}
public function generateUserActivityReport($user_id, $days = 30) {
$user_id = (int)$user_id;
$days = (int)$days;
$sql = "SELECT
u.name,
loc.name as location,
COUNT(*) as access_count,
SUM(l.success) as successful_count
FROM access_logs l
INNER JOIN users u ON l.user_id = u.id
INNER JOIN locations loc ON l.location_id = loc.id
WHERE l.user_id = $user_id
AND l.timestamp >= DATE_SUB(NOW(), INTERVAL $days DAY)
GROUP BY l.location_id";
return $this->db->query($sql);
}
}
11
482.ЧДТУ.52210-01 12 01
class MaintenanceSystem {
private $db;
public function __construct() {
$this->db = Database::getInstance();
}
public function scheduleReaderMaintenance($location_id, $date, $description) {
$location_id = (int)$location_id;
$date = $this->db->escape($date);
$description = $this->db->escape($description);
$sql = "INSERT INTO maintenance_schedule
(location_id, scheduled_date, description, status)
VALUES ($location_id, '$date', '$description', 'pending')";
return $this->db->query($sql);
}
public function reportReaderIssue($location_id, $issue_type, $description) {
$location_id = (int)$location_id;
$type = $this->db->escape($issue_type);
$description = $this->db->escape($description);
$sql = "INSERT INTO reader_issues
(location_id, issue_type, description, status, reported_at)
VALUES ($location_id, '$type', '$description', 'open', NOW())";
return $this->db->query($sql);
}
public function getMaintenanceHistory($location_id) {
$location_id = (int)$location_id;
$sql = "SELECT m.*, l.name as location_name
FROM maintenance_schedule m
INNER JOIN locations l ON m.location_id = l.id
WHERE m.location_id = $location_id
ORDER BY m.scheduled_date DESC";
return $this->db->query($sql);
}
}
12
482.ЧДТУ.52210-01 12 01
class AuditTrail {
private $db;
public function __construct() {
$this->db = Database::getInstance();
}
public function logAction($user_id, $action, $details) {
$user_id = (int)$user_id;
$action = $this->db->escape($action);
$details = $this->db->escape(json_encode($details));
$sql = "INSERT INTO audit_trail
(user_id, action, details, ip_address, timestamp)
VALUES ($user_id, '$action', '$details',
'{$_SERVER['REMOTE_ADDR']}', NOW())";
return $this->db->query($sql);
}
public function getAuditTrail($start_date = null, $end_date = null, $user_id =
null) {
$where = [];
if ($start_date) {
$start = $this->db->escape($start_date);
$where[] = "timestamp >= '$start'";
}
if ($end_date) {
$end = $this->db->escape($end_date);
$where[] = "timestamp <= '$end'";
}
if ($user_id) {
$user = (int)$user_id;
$where[] = "user_id = $user";
}
$where_clause = count($where) > 0 ? "WHERE " . implode(" AND ",
$where) : "";
13
482.ЧДТУ.52210-01 12 01
$sql = "SELECT a.*, u.name as user_name
FROM audit_trail a
LEFT JOIN users u ON a.user_id = u.id
$where_clause
ORDER BY a.timestamp DESC";
return $this->db->query($sql);
}
}
ДОДАТОК В
Розробка системи реєстрації та контролю відвідуваності на
основі мікроконтролерів ESP8266
Інструкція користувача
482.ЧДТУ.52210-10 34 01
Листів 4
Розробник: ________________ Роман ЧУПИЛКА
Черкаси 2025
2
482.ЧДТУ.52210-01 34 01
Ця інструкція призначена для адміністраторів системи, які відповідають
за налаштування, управління та підтримку роботи системи реєстрації та
контролю відвідуваності. Вона містить детальний опис етапів встановлення
RFID-зчитувачів, налаштування приміщень та зчитувачів у системі, а також
керування ключами користувачів і формування звітів. Дотримання
рекомендацій, викладених у цій інструкції, забезпечить стабільну та
ефективну роботу системи.
Перед початком монтажу зчитувачів необхідно визначити оптимальні
місця їх розташування. Зчитувачі повинні бути встановлені на входах і
виходах з приміщень, де передбачається контроль доступу. Рекомендується
обирати місця, які забезпечують зручність для користувачів і мінімізують
ризик помилок зчитування.
Монтаж зчитувачів здійснюється з урахуванням технічних вимог, таких
як правильне підключення живлення та зв’язку з мікроконтролером ESP8266
або аналогічним пристроєм. Важливо перевірити цілісність і надійність
електричних контактів, особливо при використанні SPI-інтерфейсу для
з’єднання з RFID-модулем RC522. Необхідно також забезпечити захист
пристроїв від пилу, вологи та механічних пошкоджень, що сприятиме
довготривалій і стабільній роботі системи.
Після встановлення фізичного обладнання слід підключити зчитувачі до
мережі живлення та Wi-Fi. Для цього рекомендується використовувати
стабілізовані джерела живлення та надійні точки доступу Wi-Fi, що
забезпечують стабільне і безперервне з’єднання з сервером. Важливо провести
тестування кожного зчитувача, переконавшись у коректному зчитуванні карт
та передачі даних на сервер.
Після фізичного встановлення зчитувачів адміністратор має перейти до
налаштувань системи через веб-інтерфейс адміністратора. Для входу
3
482.ЧДТУ.52210-01 34 01
необхідно використовувати надані облікові дані з відповідними правами
доступу.
Перше, що потрібно зробити — це створити логічні одиниці системи, а
саме приміщення або зони, у яких буде вестися облік відвідуваності. Кожне
приміщення має отримати унікальне ім’я та опис, що полегшить
ідентифікацію при аналізі звітів і моніторингу.
Далі слід додати у систему зчитувачі, які фізично встановлені у
відповідних приміщеннях. Для кожного зчитувача необхідно вказати
унікальний ідентифікатор, тип пристрою та приміщення, до якого він
належить. Це дозволить системі точно фіксувати, в якому саме місці відбулося
зчитування RFID-ключа.
Наступним важливим етапом є реєстрація користувачів та їх RFID-
ключів у системі. Адміністратор має можливість додавати нові ключі,
прив’язуючи їх до конкретних осіб з відповідною ідентифікацією (ПІБ, посада,
відділ тощо). Важливо уважно перевіряти коректність введених даних, адже
це безпосередньо впливає на якість контролю доступу.
Система підтримує редагування інформації про користувачів та ключі,
а також їх блокування чи видалення у разі потреби — наприклад, при втраті
карти або зміні прав доступу. Для підвищення безпеки рекомендується
регулярно оновлювати базу ключів та проводити аудит користувачів.
Веб-інтерфейс адміністрування надає інструменти для моніторингу
подій у реальному часі. Адміністратор може переглядати історію зчитувань,
визначати, хто і коли заходив чи виходив із приміщень. Це дає змогу
оперативно реагувати на можливі порушення або несправності.
Система також дозволяє формувати докладні звіти за обраний період
часу. Звіти можуть містити інформацію про тривалість перебування кожної
особи в приміщенні, кількість проходів, а також статистику по окремих зонах.
4
482.ЧДТУ.52210-01 34 01
Така інформація є корисною для контролю робочого часу, безпеки та
оптимізації організаційних процесів.
Для забезпечення безперебійної роботи системи рекомендується
проводити регулярне технічне обслуговування обладнання, перевірку стану
живлення та мережевого з’єднання. Слід також слідкувати за оновленням
програмного забезпечення мікроконтролерів та серверної частини, що
допоможе уникнути потенційних вразливостей і підвищить стабільність
роботи.
Важливо організувати навчання користувачів системи та
адміністраторів, щоб вони були ознайомлені з правилами користування,
порядком звернення у разі неполадок та основними функціями системи.
Правильне встановлення зчитувачів та налаштування системи
адміністрування є ключовими факторами успішної роботи системи контролю
відвідуваності. Дотримуючись цієї інструкції, адміністратори зможуть
забезпечити ефективний, надійний та зручний у використанні інструмент для
управління доступом і моніторингу персоналу, що сприятиме підвищенню
безпеки та організаційної дисципліни у вашій установі.
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ
1. Іваненко, О. В. Мікроконтролери та їх застосування: навч. посіб. К. :
Видавництво КНЕУ, 2018. 320 с.
2. Ковальчук, М. П. RFID-технології у системах контролю доступу. Львів :
Львівська політехніка, 2017. 256 с.
3. Петренко, В. І. Основи побудови вбудованих систем на базі ESP8266.
Харків : ХНУ, 2019. 180 с.
4. Сидоренко, І. М. Безпека інформації в комп’ютерних системах. Київ : НАУ,
2020. 210 с.
5. Яковенко, С. В. Системи автоматизації: проектування та впровадження.
Одеса : ОНУ, 2016. 340 с.
6. Banzi M., Shiloh M. Getting Started with Arduino: The Open Source Electronics
Prototyping Platform. Maker Media, 2014. 230 p.
7. Monk S. Programming Arduino: Getting Started with Sketches. McGraw-Hill
Education, 2016. 210 p.
8. Margolis M. Arduino Cookbook: Recipes to Begin, Expand, and Enhance Your
Projects. O’Reilly Media, 2019. 488 p.
9. Dobbins J. The Definitive Guide to ESP8266. CreateSpace Independent
Publishing Platform, 2017. 180 p.
10.Liviu I. Internet of Things with ESP8266. Packt Publishing, 2018. 290 p.
11.Schiller J. RFID Handbook: Fundamentals and Applications in Contactless Smart
Cards and Identification. Wiley, 2013. 450 p.
12.Finkenzeller K. RFID Handbook: Radio-Frequency Identification Fundamentals
and Applications. Wiley, 2010. 520 p.
13.Upton E., Halfacree G. Raspberry Pi User Guide. Wiley, 2016. 320 p.
14.Chen L., Hu F. Secure Communication in Wireless Sensor Networks. Springer,
2017. 255 p.
Арк.
ЧДТУ.252210.010 ПЗ 77
Змн. Арк. № докум. Підпис Дата
15.Stallings W. Cryptography and Network Security: Principles and Practice.
Pearson, 2017. 640 p.
16.Hsieh S.-Y., Matsuura S. Wireless Communications: Principles and Practice.
Prentice Hall, 2012. 380 p.
17.Vacca J. R. Computer and Information Security Handbook. Morgan Kaufmann,
2017. 900 p.
18.Garfinkel S., Spafford G. Practical UNIX and Internet Security. O’Reilly Media,
2017. 680 p.
19.Stallings W. Network Security Essentials: Applications and Standards. Pearson,
2013. 460 p.
20.Dorsey P. MQTT Essentials – A Lightweight IoT Protocol. Packt Publishing,
2017. 120 p.
21.Ray P. Internet of Things Cookbook. Packt Publishing, 2018. 430 p.
22.Al-Fuqaha A., et al. Internet of Things: A Survey on Enabling Technologies,
Protocols, and Applications. IEEE Communications Surveys & Tutorials, 2015.
Vol. 17, No. 4. P. 2347–2376.
23.Alcaraz C., Lopez J. Security of Industrial Control Systems: Challenges and
Solutions. Future Generation Computer Systems, 2013. Vol. 28, Issue 7. P.
936–945.
24.Zeng X., et al. Security and Privacy in Internet of Things: A Survey. IEEE
Communications Surveys & Tutorials, 2017. Vol. 20, No. 3. P. 1672–1699.
25.Roman R., et al. Securing the Internet of Things. Computer, 2013. Vol. 44, No. 9.
P. 51–58.
Арк.
ЧДТУ.252210.010 ПЗ 78
Змн. Арк. № докум. Підпис Дата