Please use this identifier to cite or link to this item:
https://er.chdtu.edu.ua/handle/ChSTU/8664| Title: | Дослідження побудови комунікації пристроїв розумного будинку з використанням протоколу передачі даних Zig-Bee |
| Authors: | БАБЕНКО, Віра КОРІНЕНКО, Володимир |
| Issue Date: | 2023 |
| Abstract: | Розумний будинок є не лише місцем для проживання, але і винятковою екосистемою, де пристрої взаємодіють для надання зручності та ефективності. Однією з ключових технологій, що лежить в основі цієї комунікації, є протокол передачі даних ZigBee. Дослідження побудови комунікації в розумних будинках або приміщеннях через ZigBee відкриває перед нами можливості оптимізації та уніфікації обміну даними між різними пристроями. Це дозволяє створювати інтелектуальні системи, які забезпечують не лише зручність користувача, але й ефективно використовують ресурси, забезпечуючи енергоефективність та безпеку. Метою даної кваліфікаційної роботи магістра є дослідження побудови комунікації пристроїв розумного будинку з використанням протоколу передачі даних Zig-Bee. Для досягнення мети необхідно здійснити розробку системи з контролем температури в офісному приміщенні, використовуючи протокол передачі даних ZigBee. Ця система буде складатися з ключових компонентів, спрямованих на оптимальний контроль та забезпечення ефективності системи. Об’єкт дослідження - система комунікації пристроїв розумного будинку, зокрема аналіз побудови та використання протоколу передачі даних ZigBee в цьому контексті. Предмет дослідження - протокол передачі даних ZigBee в контексті побудови комунікації між пристроями розумного будинку. Наукова новизна одержаних результатів полягає у розробці рішення, яке дозволяє передати велику кількість даних між сервісами системи без зменшення продуктивності цих самих сервісів. При цьому кожен з сервісів не буде напряму звʼязаний між собою, що дозволить також підвищити масштабування системи. Практична цінність результатів полягає у тому, що одержані архітектурні та програмні рішення, одержані в ході виконання кваліфікаційної роботи, можна використовувати для покращення побудови системи комунікації пристроїв у розумних будинках з використанням протоколу ZigBee. Це надасть можливість покращити показники щодо оптимізації енергоспоживання, підвищення безпеки та конфіденційності, а також поліпшення інтеграції з іншими технологіями, що, своєю чергою, сприяє більш ефективному та функціональному використанню розумних будинків у реальних умовах. У першому розділі розглянуто що таке розумний будинок, IoT, описано що таке автоматизація процесів і чому це важливо. Згідно напряму дослідження оглянули пристрої для автоматизації, виокремили технології, які використовуються в IoT для передачі інформації. Далі описали мови програмування для мікроконтролерів та для розробки серверних додатків і баз даних. Вкінці розділу поставили задачі для успішного виконання роботи. У другому розділі проведено огляд існуючих технологій розробки подібних систем. Обрано технології, які найкраще підійдуть для реалізації поставлених задач кваліфікацйної роботи. У третьому розділі описується структура запропонованої системи, описуються функції, які вона виконує, застосовуються технології захисту інформації. Визначаються вимоги для роботи із системою. Наприкінці наводиться оцінка ефективності застосування системи. Висновки включають в себе основні результати роботи. У додатках наведено специфікацію, текст програми та інструкцію користувача. Загальний обсяг роботи становить 93 сторінки. У кваліфікаційній роботі магістра 16 рисунків та 3 додатки. Для виконання роботи використано 20 літературних джерела. |
| URI: | https://er.chdtu.edu.ua/handle/ChSTU/8664 |
| Appears in Collections: | 123 Комп’ютерна інженерія (Комп'ютерні системи та мережі) |
Files in This Item:
| File | Description | Size | Format | |
|---|---|---|---|---|
| 1_ТИТУЛКА_Коріненко-merged.pdf Restricted Access | 2.07 MB | Adobe PDF | View/Open Request a copy |
Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.
Extracted text
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ
ФАКУЛЬТЕТ ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ І СИСТЕМ
КАФЕДРА ІНФОРМАЦІЙНОЇ БЕЗПЕКИ ТА КОМП’ЮТЕРНОЇ
ІНЖЕНЕРІЇ
Пояснювальна записка
до кваліфікаційної роботи магістра
на тему: «Дослідження побудови комунікації
пристроїв розумного будинку з використанням
протоколу передачі даних Zig-Bee»
ЧДТУ.232282.006 ПЗ
Виконав: студент 2 курсу, групи МКМ-2205
спеціальності 123 – Комп’ютерна інженерія
за освітньою програмою – Комп’ютерні системи
та мережі
Володимир КОРІНЕНКО
Керівник
д.т.н., проф. Віра БАБЕНКО
Н. контроль
Світлана ГРЕСЬКО
Рецензент
старший викладач кафедри інформаційних
технологій, ЧНУ ім. Б. Хмельницького
к.т.н. Тетяна СТАБЕЦЬКА
«ЗАХИСТ ДОЗВОЛЯЮ»
Завідувач кафедри ІБ та КІ
д.т.н., професор ___________ Віра БАБЕНКО
Черкаси 2023 року
Черкаський державний технологічний університет
Факультет інформаційних технологій і систем
Кафедра інформаційної безпеки та комп‘ютерної інженерії
Освітньо-кваліфікаційний рівень Магістр
Спеціальність 123 – Комп’ютерна інженерія
Освітня програма Комп’ютерні системи та мережі
«ЗАТВЕРДЖУЮ»
Завідувач кафедри _____ Володимир РУДНИЦЬКИЙ
«10» жовтня 2023 року
ЗАВДАННЯ
на кваліфікаційну роботу магістра студенту
Коріненку Володимиру Юрійовичу
(прізвище, ім‘я, по батькові)
1. Тема роботи Дослідження побудови комунікації пристроїв розумного будинку
з використанням протоколу передачі даних Zig-Bee
Керівник роботи д.т.н., професор Бабенко Віра Григорівна
(прізвище, ім’я, по батькові, науковий ступінь, вчене звання)
затверджені наказом університету від «06» жовтня 2023 р. № 267/04
2. Строк подання студентом роботи
3. Вихідні дані до роботи:
Розумний дім, протоколу передачі даних Zig-Bee, контроль температури, датчики,
інтелектуальне управління, протокол HTTPS, IoT.
4. Зміст розрахунково-пояснювальної записки (перелік питань, що їх належить розробити):
Вступ
Розділ 1 Аналіз предметної області та постановка задачі дослідження
Розділ 2 Вибір технології та інструментальних засобів розробки системи
Розділ 3 Оптимізація методів і алгоритмів побудови комунікації пристроїв розумного будинку з
використанням протоколу передачі даних zig-bee
Висновки
Перелік скорочень та умовних позначень
Список використаних джерел
Додатки
5. Перелік графічного матеріалу (з точним зазначенням обов’язкових креслень, плакатів):
Додаток А Специфікація
Додаток Б Текст програм
Додаток В Інструкція користувача
6. Консультанти розділів роботи
Підпис, дата
Розділ Прізвище, ініціали та
посада завдання видав завдання прийняв
консультанта
7. Дата видачі завдання 10 жовтня 2023 року
КАЛЕНДАРНИЙ ПЛАН
№ з/п Назва етапів кваліфікаційної роботи магістра Строк виконання
етапів роботи Примітка
1 Збір матеріалу 21.10 – 28.10 виконано
2 Обробка матеріалу 29.10 – 06.11 виконано
3 Обґрунтування актуальності виконання виконано
досліджень 12.11 – 15.11
4 Оцінка стану проблеми, виокремлення виконано
дослідницьких задач, постановка задачі 16.11 – 18.11
дослідження
5 Викладення сутності і результатів дослідження 20.11– 25.11 виконано
6 Практичне застосування результатів
дослідження 26.11 – 27.11 виконано
7 Оформлення результатів в пояснювальну записку 27.11 – 30.11 виконано
8 Подання роботи на відгук та рецензування 01.12.23 виконано
Студент-магістрант ____________________________ Володимир КОРІНЕНКО
(підпис)
Керівник роботи _____________________________ Віра БАБЕНКО
(підпис)
АНОТАЦІЯ
Розумний будинок є не лише місцем для проживання, але і винятковою
екосистемою, де пристрої взаємодіють для надання зручності та
ефективності. Однією з ключових технологій, що лежить в основі цієї
комунікації, є протокол передачі даних ZigBee. Дослідження побудови
комунікації в розумних будинках або приміщеннях через ZigBee відкриває
перед нами можливості оптимізації та уніфікації обміну даними між різними
пристроями. Це дозволяє створювати інтелектуальні системи, які
забезпечують не лише зручність користувача, але й ефективно
використовують ресурси, забезпечуючи енергоефективність та безпеку.
Метою даної кваліфікаційної роботи магістра є дослідження побудови
комунікації пристроїв розумного будинку з використанням протоколу
передачі даних Zig-Bee. Для досягнення мети необхідно здійснити розробку
системи з контролем температури в офісному приміщенні, використовуючи
протокол передачі даних ZigBee. Ця система буде складатися з ключових
компонентів, спрямованих на оптимальний контроль та забезпечення
ефективності системи.
Об’єкт дослідження - система комунікації пристроїв розумного
будинку, зокрема аналіз побудови та використання протоколу передачі даних
ZigBee в цьому контексті.
Предмет дослідження - протокол передачі даних ZigBee в контексті
побудови комунікації між пристроями розумного будинку.
Наукова новизна одержаних результатів полягає у розробці рішення,
яке дозволяє передати велику кількість даних між сервісами системи без
зменшення продуктивності цих самих сервісів. При цьому кожен з сервісів не
буде напряму звʼязаний між собою, що дозволить також підвищити
масштабування системи.
Практична цінність результатів полягає у тому, що одержані
архітектурні та програмні рішення, одержані в ході виконання
кваліфікаційної роботи, можна використовувати для покращення побудови
системи комунікації пристроїв у розумних будинках з використанням
протоколу ZigBee. Це надасть можливість покращити показники щодо
оптимізації енергоспоживання, підвищення безпеки та конфіденційності, а
також поліпшення інтеграції з іншими технологіями, що, своєю чергою,
сприяє більш ефективному та функціональному використанню розумних
будинків у реальних умовах.
У першому розділі розглянуто що таке розумний будинок, IoT, описано
що таке автоматизація процесів і чому це важливо. Згідно напряму
дослідження оглянули пристрої для автоматизації, виокремили технології, які
використовуються в IoT для передачі інформації. Далі описали мови
програмування для мікроконтролерів та для розробки серверних додатків і
баз даних. Вкінці розділу поставили задачі для успішного виконання роботи.
У другому розділі проведено огляд існуючих технологій розробки
подібних систем. Обрано технології, які найкраще підійдуть для реалізації
поставлених задач кваліфікацйної роботи.
У третьому розділі описується структура запропонованої системи,
описуються функції, які вона виконує, застосовуються технології захисту
інформації. Визначаються вимоги для роботи із системою. Наприкінці
наводиться оцінка ефективності застосування системи.
Висновки включають в себе основні результати роботи. У додатках
наведено специфікацію, текст програми та інструкцію користувача.
Загальний обсяг роботи становить 93 сторінки. У кваліфікаційній роботі
магістра 16 рисунків та 3 додатки. Для виконання роботи використано 20
літературних джерела.
ANOTATION
A smart home is not only a place to live, but also a unique ecosystem where
devices interact to provide convenience and efficiency. One of the key
technologies behind this community is the ZigBee data transfer protocol. The study
of building communication in smart homes or premises through ZigBee opens up
opportunities for optimization and unification of communication between different
devices. This allows you to create intelligent systems that provide not only user
convenience, but also efficient use of resources, ensuring energy efficiency and
security.
The purpose of this qualification work is to research on the construction of
communication of smart home devices using the Zig-Bee data transmission
protocol. To achieve the goal, it is necessary to implement developing a system
with temperature control in an office space using the ZigBee data transmission
protocol. This system will consist of key components aimed at optimal control and
ensuring system efficiency.
The object of the study is the communication system of smart home devices,
in particular, the analysis of the construction and use of the ZigBee data
transmission protocol in this context.
The subject of the study is the ZigBee data transmission protocol in the
context of building communication between smart home devices.
The scientific novelty of the obtained results lies in the development of a
solution that allows transferring a large amount of data between system services
without reducing the performance of these same services. At the same time, each
of the services will not be directly connected to each other. That will also increase
the scalability of the system
The practical value of the results is that they can be used to improve the
communication of devices in smart homes using the ZigBee protocol. This can lead
to optimization of energy consumption, increased security and privacy, as well as
improved integration with other technologies, which, in turn, contributes to more
efficient and functional use of smart homes in real-world settings.
The first chapter examines what is a smart home, IoT, describes what
process automation is and why it is important. Automation devices were examined
in the direction of research. We singled out the technologies used in IoT to transmit
information. Programming languages for microcontrollers, for the development of
server applications, databases were described. Tasks were set for the successful
completion of the work.
In the second section, an overview of existing technologies for the
development of such systems is provided. The technologies that are best suited for
qualification work are selected.
The third chapter describes the structure of the system, describes the
functions it performs, and develops information protection. The requirements for
working with the system are defined. At the end, an assessment of the effectiveness
of the system is given.
The conclusions include the main results of the work. Appendices include
specification, program text, and user manual. The total volume of work is 93
pages. There are 16 drawings and 3 appendices in the master's qualification work.
20 literary sources were used to perform the work.
3
ВСТУП………………………………………………………………………. 4
РОЗДІЛ 1 АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ ТА ПОСТАНОВКА
ЗАДАЧІ ДОСЛІДЖЕННЯ……………………………………………………. 7
1.1 Аналіз предметної області……………………………………..... 7
1.2 Вибір напряму дослідження…………………………………….. 13
1.3 Постановка задачі………………………………………………... 20
1.4 Висновки до розділу 1…………………………………………... 23
РОЗДІЛ 2 ВИБІР ТЕХНОЛОГІЇ ТА ІНСТРУМЕНТАЛЬНИХ ЗАСОБІВ
РОЗРОБКИ СИСТЕМИ…………………………………………………….. 25
2.1 Огляд існуючих технологій………………………………………... 25
2.2 Вибір технологій …………………………………………………... 34
2.3 Висновки до розділу 2……………………………………………... 44
РОЗДІЛ 3 ОПТИМІЗАЦІЯ МЕТОДІВ І АЛГОРИТМІВ ПОБУДОВИ
КОМУНІКАЦІЇ ПРИСТРОЇВ РОЗУМНОГО БУДИНКУ З
ВИКОРИСТАННЯМ ПРОТОКОЛУ ПЕРЕДАЧІ ДАНИХ ZIG-BEE…….. 46
3.1 Структура системи………………………………………………..... 46
3.2 Опис функцій системи……………………………………………... 54
3.3 Забезпечення захисту інформації при роботі зі створеною
системою ……………………………………………………………….. 60
3.4 Технічні вимоги для роботи з системою………………………...... 65
3.5 Оцінка ефективності побудови комунікації пристроїв розумного
будинку з використанням протоколу передачі даних Zig-Bee……… 68
3.6 Висновки до розділу 3……………………………………………... 71
ВИСНОВКИ………………………………………………………………….... 73
ПЕРЕЛІК СКОРОЧЕНЬ ТА УМОВНИХ ПОЗНАЧЕНЬ………………….... 74
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ……………………………………... 75
ДОДАТКИ:
А – 482.ЧДТУ.32282-01 Дослідження побудови комунікації
пристроїв розумного будинку з використанням протоколу передачі даних
5
ВСТУП
Актуальність теми дослідження полягає в стрімкому розвитку сфери
розумних будинків та Інтернету речей, де використання протоколу ZigBee
визначається ефективністю енергоспоживання та можливістю забезпечення
безпеки та зручності взаємодії пристроїв. Дослідження цієї теми відкриває
шлях до оптимізації комунікацій в розумних системах та розширення
можливостей сучасних технологій для побудови інтелектуальних
інфраструктур.
Метою даної кваліфікаційної роботи магістра є дослідження побудови
комунікації пристроїв розумного будинку з використанням протоколу
передачі даних Zig-Bee. Для досягнення мети необхідно здійснити розробку
системи з контролем температури в офісному приміщенні, використовуючи
протокол передачі даних ZigBee. Ця система буде складатися з ключових
компонентів, спрямованих на оптимальний контроль та забезпечення
ефективності системи.
Для досягнення сформульованої мети необхідно вирішити такі задачі:
1. Провести детальний аналіз предметної області, вивчити особливості
та потенційні можливості протоколу передачі даних ZigBee.
2. Обгрунтувати необхідність розробки нового методу, аналізуючи
його переваги та перспективи в контексті вивченої області.
3. Сформулювати та вибрати технології, які будуть застосовуватися
під час розробки, враховуючи їхню ефективність та сумісність.
4. Розробити метод поєднання всіх компонентів для забезпечення їх
взаємодії та взаємодопомоги.
5. Провести оптимізацію системи та відповідні налаштування для
досягнення максимальної ефективності.
6. Оцінити складність реалізації розробленого методу, враховуючи
технічні та практичні аспекти його впровадження.
6
На даний момент існує не багато джерел інформації, в яких автори
описують протокол передачі даних ZigBee. Наприклад в книзі «ZigBee
Wireless Networks and Transceivers» автор Shahin Farahani розглядає аспекти
роботи мереж ZigBee та надає поглиблені знання щодо архітектури та
технічних особливостей. Також в книзі "ZigBee for Wireless Communication in
Smart Homes" автор Haidar Samet досліджує застосування ZigBee в розумних
будинках та обговорює практичні випадки використання.
Об’єкт дослідження - система комунікації пристроїв розумного
будинку, зокрема аналіз побудови та використання протоколу передачі даних
ZigBee в цьому контексті.
Предмет дослідження - протокол передачі даних ZigBee в контексті
побудови комунікації між пристроями розумного будинку.
Наукова новизна отриманих результатів полягає в оригінальному
дослідженні та вдосконаленні побудови комунікації пристроїв розумного
будинку за допомогою протоколу ZigBee. Розроблена система може
включати нові технологічні рішення, оптимізації енергоспоживання.
Практична цінність результатів полягає у тому, що одержані
архітектурні та програмні рішення, одержані в ході виконання
кваліфікаційної роботи, можна використовувати для покращення побудови
комунікації пристроїв у розумних будинках з використанням протоколу
ZigBee. Це може призвести до оптимізації енергоспоживання, підвищення
безпеки та конфіденційності, а також поліпшення інтеграції з іншими
технологіями, що, в свою чергу, сприяє більш ефективному та
функціональному використанню розумних будинків у реальних умовах.
Кваліфікаційна робота складається з 3-х розділів, в яких подається
інформація про:
- У першому розділі розглянуто що таке розумний будинок, IoT,
описано що таке автоматизація процесі і чому це важливо. Згідно напряму
дослідження здійснили аналітичний огляд пристроїв для автоматизації,
виокремили технології, які використовуються в IoT для передачі інформації.
7
Описали мови програмування для мікроконтролерів та для розробки
серверних додатків і баз даних. Поставили задачі для успішного виконання
роботи.
- У другому розділі проведено огляд існуючих технологій розробки
подібних систем. Обрано технології, які найкраще підійдуть для реалізації
поставлених задач кваліфікаційної роботи.
- У третьому розділі описується структура запропонованої системи,
описуються функції, які вона виконує, застосовуються технології захисту
інформації. Визначаються вимоги для роботи із системою. Наприкінці
наводиться оцінка ефективності застосування системи.
Використана література, під час написання кваліфікаційної роботи,
досить добре розкриває тему та відображає потреби для аналізу.
8
РОЗДІЛ 1 АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ ТА ПОСТАНОВКА
ЗАДАЧІ ДОСЛІДЖЕННЯ
1.1 Аналіз предметної області
Розумний будинок – це житловий простір, у якому встановлені
різноманітні технології та системи автоматизації для забезпечення комфорту,
безпеки, ефективності та енергозаощадження. Основною ідеєю розумного
будинку є використання сучасних технологій для перетворення
повсякденного життя у більш зручне, ефективне та безпечне.
Для керування всіма можливими функціями система має бути
забезпечена важливими компонентами: датчиками, головним контролером,
блоком керування, необхідними виконавчими приладами. Через датчики
здійснюватиметься збір інформації, яка надсилається центральному
контролеру. Контролер обробляє дані та після цього приймає рішення для
виконання функцій. Приклад можливостей розумного будинку зображено на
рисунку 1.1.
Рисунок 1.1. – Можливості розумного будинку
9
На кінцевому етапі завдяки блоку керування відбувається розшифровка
коду і відправлення необхідної команди на обладнання. Таким чином,
завдяки специфіці роботи розумних будинків, не доведеться витрачати час на
виконання деяких побутових завдань.
Управління освітленням, опаленням, кондиціюванням повітря, аудіо-
та відеосистемами, вікнами та іншими пристроями може бути повністю
автоматизовано за допомогою програмного забезпечення та датчиків.
Використання відеоспостереження, датчиків руху, системи контролю
доступу для забезпечення безпеки та моніторингу стану будинку віддалено.
Автоматичне керування енергозберігаючими пристроями, такими як
терморегулятори, для оптимізації використання енергії та зменшення витрат.
Використання розумних пристроїв, таких як термостати,
холодильники, пристрої для контролю водопостачання та інші, які можуть
взаємодіяти між собою та з користувачем.
Інтеграція системи управління освітленням, температурою, безпекою
та іншими аспектами для створення єдиної інтелектуальної системи.
Розумний будинок може контролюватися через смартфон, планшет або
голосові команди, надаючи власникам максимальний рівень контролю та
комфорту. Однак, вони можуть стикатися з високою вартістю встановлення
та обслуговуванням. Приватність та безпека даних є також важливими
питаннями, особливо з огляду на можливість кібератак та збір особистої
інформації. Неможливість стандартизації може викликати проблеми зі
сумісністю між різними виробниками. Однак, не зважаючи на ці недоліки,
розумні будинки залишаються популярними завдяки своїм перевагам у
зручності та енергозаощадження.
Internet of Things (IoT) - це концепція, яка об'єднує фізичні пристрої,
обладнані сенсорами та програмним забезпеченням, для збору та передачі
даних через Інтернет. Принципова ідея полягає в створенні мережі зв'язаних
пристроїв, які можуть вимірювати, спостерігати та взаємодіяти з
навколишнім середовищем. IoT застосовується в різних галузях, таких як
10
промисловість, медицина, транспорт, сільське господарство та побутові
пристрої. Його основні характеристики включають сенсори для збору даних,
мережеву взаємодію, аналітику для обробки інформації та можливість
взаємодії з користувачем та іншими пристроями через Інтернет.
Internet of Things (IoT) представляє собою революційний підхід до
взаємодії між фізичним та цифровим світом. Заснований на використанні
розумних пристроїв і сенсорів, IoT розширює можливості збору, передачі та
обробки даних в реальному часі [1].
Один із ключових аспектів IoT – це здатність взаємодіяти та
обмінюватися даними між пристроями, створюючи мережу зв'язку. Це
розширює можливості у різних сферах. Наприклад, в промисловості IoT
дозволяє віддалено моніторити та управляти обладнанням, у сфері здоров'я -
стежити за пацієнтами та медичними параметрами, а в домашніх умовах -
автоматизувати різні побутові процеси.
Однак зростаюча кількість підключених пристроїв також породжує
виклики, такі як питання приватності та безпеки даних. Крім того,
стандартизація в галузі IoT є необхідною для забезпечення сумісності між
різними пристроями та системами.
Інтернет речей допомагає людям жити і працювати раціональніше.
Наприклад, споживачі можуть використовувати вбудовані в IoT пристрої -
такі як автомобілі, смарт-годинники чи термостати - для покращення свого
життя. Наприклад, коли особа приходить додому, їх автомобіль може
спілкуватися з гаражем для відкривання дверей; їх термостат може
налаштовуватися на попередньо визначену температуру; а освітлення може
бути встановлене на меншу інтенсивність та колір, приклад галузей де
використовується IoT зображений на рисунку 1.2.
11
Рисунок 1.2 – Галузі використання IoT
Окрім того, надання розумних пристроїв для автоматизації домів, IoT є
важливим для бізнесу [2]. Він надає організаціям можливість в реальному
часі оцінювати роботу своїх систем, надаючи висновки щодо всього, від
продуктивності машин до операцій у сфері ланцюга постачання та логістики.
IoT дозволяє машинам виконувати нудні завдання без втручання
людини. Компанії можуть автоматизувати процеси, зменшити витрати на
робочу силу, скоротити відходи та покращити надання послуг. IoT допомагає
знизити витрати на виробництво та доставку товарів, а також надає
прозорість у виконанні транзакцій з клієнтами.
IoT є однією з найважливіших технологій і продовжує розвиватися,
оскільки більше компаній розуміють потенціал підключених пристроїв для
підтримання конкурентоспроможності.
Інтернет речей взаємодіє з мільярдами пристроїв, що підключені до
Інтернету, і включає в себе використання мільярдів точок даних, всі з якими
потребують надійного захисту. Завдяки розширеній поверхні атак, безпека та
приватність IoT є важливими аспектами.
Однією з найвідоміших атак на IoT сталося у 2016 році, коли ботнет
12
Mirai вторгнувся в постачальника послуг доменних імен Dyn, спричинивши
серйозні відключення систем на тривалий період. Зловмисники отримали
доступ до мережі, використовуючи слабко захищені IoT-пристрої. Ця подія
представляє собою одну з наймасштабніших атак розподіленого відмови в
обслуговуванні, яку коли-небудь зафіксовано, і Mirai продовжує еволюцію й
досі [3].
Оскільки пристрої IoT тісно взаємодіють, хакер може використовувати
одну вразливість для маніпулювання всіма даними, роблячи їх непридатними
для використання. Виробники, які не регулярно оновлюють свої пристрої - чи
навіть не виконують оновлення взагалі - роблять їх вразливими перед
кіберзлочинцями. Крім того, підключені пристрої часто вимагають від
користувачів надавати свої особисті дані, такі як імена, вік, адреси, номери
телефонів і навіть облікові записи у соціальних мережах, інформація, яка має
величезну цінність для хакерів.
Хакери – не єдина загроза для IoT; ще однією серйозною проблемою є
питання приватності. Наприклад, компанії, які виробляють і
розповсюджують споживчі пристрої IoT, можуть використовувати ці
пристрої для збору та продажу особистих даних користувачів.
Автоматизація процесів – це використання технологій та систем для
виконання завдань і операцій без прямого втручання людини. Це важливий
елемент в сучасному бізнес-середовищі з численними перевагами.
Автоматизація дозволяє виконувати завдання швидше та ефективніше,
зменшуючи час, необхідний для виконання операцій. Це сприяє підвищенню
продуктивності та оптимізації внутрішніх бізнес-процесів.
Допомагає уникнути людських помилок, оскільки комп'ютерні системи
можуть виконувати завдання з високою точністю і надійністю. Це особливо
важливо в областях, де невірні рішення можуть мати серйозні наслідки.
Дозволяє використовувати час та ресурси більш ефективно,
спрямовуючи їх туди, де вони є найбільш потрібними. Це призводить до
зниження витрат і підвищення прибутковості.
13
Автоматизація дозволяє встановлювати стандартизовані процеси, що
полегшує контроль за виконанням завдань та забезпечує єдність в діяльності
компанії.
Може сприяти поліпшенню якості продукції чи послуг, оскільки вона
дозволяє вчасно реагувати на зміни та вдосконалювати процеси.
Компанії, які використовують автоматизацію, зазвичай більш гнучкі та
конкурентоспроможні, оскільки вони можуть ефективніше адаптуватися до
змін у бізнес-середовищі.
Автоматизація процесів є важливим стратегічним кроком для
підприємств, спрямованим на покращення ефективності, збільшення
конкурентоспроможності та досягнення успіху в сучасному бізнесі.
Збільшення інформації може бути спричинене автоматизацією процесів
в різних областях. В основі цього процесу лежить використання технологій
та систем, які дозволяють збирати, обробляти та використовувати дані
ефективніше.
Автоматизовані системи здатні постійно збирати та аналізувати велику
кількість даних в реальному часі. Це дозволяє компаніям отримувати більше
інформації про свою діяльність та ринкові тенденції.
Аналітичні інструменти можуть використовувати складні алгоритми
для виявлення закономірностей та трендів у великих обсягах даних. Це
сприяє більш точному та глибокому розумінню інформації.
Також дозволяє підприємствам інтегрувати дані з різних джерел і
платформ, створюючи єдину точку доступу до інформації. Це полегшує
обмін та використання даних всередині компанії.
Автоматизовані системи надають можливість швидше реагувати на
зміни у середовищі та приймати обґрунтовані рішення на основі актуальної
інформації. Дозволяє уникнути людських помилок у зборі та обробці даних,
забезпечуючи високий рівень точності та надійності інформації. Це сприяє
створенню зручних інтерфейсів та засобів для доступу до інформації, що
полегшує роботу персоналу та підвищує продуктивність.
14
1.2 Вибір напряму дослідження
На ринку існує значна кількість рішень для автоматизації роботи
пристроїв в розумних будинках. Ці рішення надають користувачам
можливість контролювати та управляти різними аспектами свого
домашнього середовища за допомогою мобільних додатків або голосових
асистентів.
На ринку існує значна кількість рішень для автоматизації роботи
пристроїв в розумних будинках. Ці рішення надають користувачам
можливість контролювати та управляти різними аспектами свого
домашнього середовища за допомогою мобільних додатків або голосових
асистентів. Ось деякі з найпопулярніших рішень:
Apple HomeKit – це фреймворк для розумних пристроїв, розроблений
Apple. HomeKit дозволяє об'єднати пристрої різних виробників в єдину
систему керування через додаток "Дім" на пристроях Apple. HomeKit
інтегрується з голосовим асистентом Siri, що дозволяє користувачам
керувати своїм розумним домом за допомогою голосових команд.
Дозволяє об'єднувати різноманітні розумні пристрої, такі як
освітлення, термостати, розетки, замки та інші, в єдину систему керування,
зовнішній вигляд програми зображений на рисунку 1.3.
Відомий своєю високим рівнем безпеки та заходами з
конфіденційності. Всі дані обробляються локально та шифруються,
забезпечуючи безпеку користувачів. HomeKit дозволяє користувачам
створювати сценарії та автоматизовані правила для виконання певних дій за
заданими умовами, що робить розумний дім більш інтелектуальним та
зручним.
15
Рисунок 1.3 – Apple HomeKit
За допомогою iCloud, користувачі можуть керувати своїм розумним
будинком навіть здалеку через мобільний додаток "Дім" на пристроях Apple.
Саме це прискорює випуск та ринкове впровадження розумних пристроїв,
забезпечуючи високу сумісність та стандартизацію.
Завдяки інтеграції з екосистемою Apple та високим стандартам
безпеки, HomeKit є популярним вибором для користувачів, які вважають за
важливе забезпечити високу якість та безпеку в своєму розумному домі.
Google Home / Google Assistant – платформа від Google, яка надає
можливість керувати різними розумними пристроями через додаток Google
Home або голосовий асистент Google Assistant.
Він є голосовим асистентом, який розуміє голосові команди
користувача та виконує їх, надаючи зручний спосіб керування розумними
пристроями.
Підтримують великий вибір розумних пристроїв, таких як освітлення,
термостати, розетки, камери та інші, що працюють через різні протоколи
зв'язку.
16
Додаток Google Home на смартфоні дозволяє користувачам зручно
керувати та моніторити свої розумні пристрої. Можуть створювати розклади
для автоматизації роботи пристроїв та налаштовувати різні сценарії для
певних ситуацій.
Google Home інтегрується з іншими сервісами Google, такими як
календар, Gmail, YouTube, що робить його частиною розширеної екосистеми.
Крім смартфонів, Google Assistant може бути використаний на різних
пристроях, таких як смарт-годинники, планшети, аудіо-пристрої, що
розширює можливості контролю розумного будинку [4].
Google Home та Google Assistant надають зручний та інтуїтивно
зрозумілий спосіб для користувачів керувати своїм розумним будинком та
взаємодіяти з різноманітними пристроями за допомогою голосу та мобільних
додатків.
Amazon Alexa – це голосовий асистент від Amazon, який може
інтегруватися з різними розумними пристроями через платформу Alexa
Skills. Він дозволяє керувати пристроями за допомогою голосу.
Розпізнає голосові команди користувача та виконує різні завдання, такі
як вмикання та вимикання світла, регулювання температури, відтворення
музики та інші. Alexa інтегрується з великим числом розумних пристроїв
різних виробників, що працюють через різні протоколи зв'язку, такі як
ZigBee та Z-Wave.
Користувачі можуть навчати Alex нові голосові команди та створювати
власні, щоб керувати розумними пристроями або запускати автоматизовані
сценарії.
Інтегрується з різноманітними додатками та сервісами, такими як
Spotify, Amazon Music, SmartThings та інші, що розширює її функціональні
можливості. За допомогою хмарних служб Amazon, користувачі можуть
керувати своїм розумним будинком віддалено через мобільний додаток або
веб-портал, зображено на рисунку 1.4.
17
Рисунок 1.4 – Amazon Alexa
Розширення функціональності Alexa за допомогою навичок (skills), які
розробляються різними розробниками та компаніями.
Amazon Alexa є однією з найпопулярніших платформ для розумного
дому, завдяки своїй широкій сумісності, гнучкості та постійному розвитку.
Samsung SmartThings – платформа, яка об'єднує різноманітні розумні
пристрої, дозволяючи користувачам керувати ними через додаток
SmartThings на смартфонах або планшетах. Приклади використання
зображені на рисунку 1.5.
18
Рисунок 1.5 – SmartThings
SmartThings підтримує різні протоколи зв'язку, такі як ZigBee та Z-
Wave, що дозволяє використовувати різноманітні пристрої різних
виробників. Користувачі можуть керувати своїм розумним домом через
мобільний додаток SmartThings, доступний для iOS та Android [5].
Дозволяє користувачам створювати різні сценарії та автоматизовані
правила, які відповідають різним умовам та діям.
Підтримка голосових асистентів, таких як Google Assistant та Amazon
Alexa, дозволяє користувачам керувати своїм розумним домом голосом.
SmartThings інтегрується з іншими продуктами Samsung, такими як
телевізори, пральні машини, холодильники тощо, що робить їх взаємодію ще
більшою.
Додаток SmartThings надає користувачам можливість налаштовувати
параметри розумних пристроїв та відстежувати їх статус.
Samsung SmartThings став однією з популярних платформ для тих, хто
шукає рішення для інтеграції та керування різноманітними розумними
пристроями в своєму будинку.
19
Xiaomi Mi Home – це додаток для управління розумними пристроями
від компанії Xiaomi. Він підтримує різноманітні пристрої, від освітлення та
термостатів до розумних пристроїв для дому та безпеки.
Пропонує широкий вибір розумних пристроїв, таких як розетки,
освітлення, камери, термостати, вентилятори та інші, випущені під брендом
Xiaomi або в іншому форм-факторі, але сумісні з платформою. Приклади
використання програми зображено на рисунку 1.6.
Рисунок 1.6 – Xiaomi Mi Home
Мобільний додаток Mi Home інтегрується з іншими продуктами
Xiaomi, такими як смартфони, телевізори та аудіо-пристрої. Дозволяє
користувачам керувати та моніторити свої розумні пристрої через зручний
мобільний додаток.
Деякі пристрої Xiaomi Mi Home підтримують голосовий контроль за
допомогою платформ голосового асистента, таких як Amazon Alexa або
Google Assistant.
Користувачі можуть створювати сценарії та автоматизовані правила
для спрощення керування своїм розумним будинком.
20
Mi Home повідомляє користувачів про різні події та статус розумних
пристроїв за допомогою системи оповіщень.
Кожна з цих платформ має свої унікальні переваги та особливості, і
вибір залежить від індивідуальних вимог та вподобань користувача.
Майбутнє Internet of Things (IoT) обіцяє ще більше інновацій та вплив
на наше повсякденне життя. Очікується, що кількість підключених пристроїв
значно зросте: від розумних приладів у домогосподарствах до вбудованих
сенсорів у містах, бізнесі та промисловості.
Штучний інтелект буде використовуватися для аналізу та інтерпретації
великих обсягів даних, зібраних від різних підключених пристроїв. Це
дозволить отримувати більше цінної інформації та приймати розумні
рішення.
З огляду на збільшення кількості підключених пристроїв, виникає
велика увага до питань безпеки та приватності даних. Розробники та компанії
будуть активно працювати над забезпеченням надійного захисту інформації.
IoT буде інтегровано в різні сфери, такі як охорона здоров'я, транспорт,
сільське господарство, енергетика, виробництво та інші. Це дозволить
оптимізувати процеси та поліпшити якість послуг.
Зростання кількості підключених пристроїв вимагає розробки
відкритих стандартів та механізмів обміну даними між різними
платформами. Це сприятиме створенню єдиної екосистеми IoT.
Кіберфізичні системи, які об'єднують фізичний світ з цифровим, будуть
становити основу майбутнього IoT. Це дозволить створювати розумні та
автономні системи.
Розвиток спільних протоколів та технологій буде сприяти сумісності та
легкому впровадженню нових рішень в різних галузях.
Майбутнє IoT обіцяє надавати нові можливості для оптимізації життя,
підвищення продуктивності та зменшення впливу на навколишнє
середовище. Однак важливо також уважно враховувати етичні та безпекові
питання, пов'язані з розвитком цієї технології.
21
Використання IoT в бізнесі може значно зекономити кошти компаніям
завдяки ряду ефективних та оптимізованих процесів. Виробничі
підприємства можуть використовувати сенсори та IoT-зв'язок для
моніторингу та оптимізації роботи обладнання. Це дозволяє підтримувати
оптимальні умови роботи, запобігаючи простоям, зменшуючи витрати на
обслуговування та підвищуючи загальну ефективність виробничого процесу.
Вбудовані сенсори можуть надавати відомості про рух товарів через
ланцюг постачання. Це допомагає у виявленні ефективних шляхів доставки,
управлінні запасами та уникненні затримок у постачанні.
Управління енергоспоживанням є ще однією областю, де IoT може
допомогти зекономити кошти. Сенсори, розташовані в офісах чи виробничих
приміщеннях, можуть автоматично регулювати освітлення, опалення та
кондиціонування, оптимізуючи енергоефективність [6].
IoT дозволяє віддалено моніторити стан обладнання та пристроїв. Це
сприяє запобіганню непередбаченим збоям, скорочує простої та вартість
витрат на ремонт. Для компаній з флотами транспортних засобів IoT може
забезпечити ефективний моніторинг маршрутів, розходу пального та
регулювання швидкості. Це сприяє зменшенню витрат на пальне та
збільшенню продуктивності флоту, дозволяє виявляти проблеми в реальному
часі, що дозволяє проводити регулярне технічне обслуговування та уникати
витрат на несподівані ремонти.
Введення IoT в бізнес дозволяє компаніям ефективніше
використовувати ресурси, автоматизувати процеси та зменшити витрати, що
в результаті сприяє значним економіям коштів.
1.3 Постановка задачі
З розвитком Інтернету речей (IoT) і розумних технологій, системи
розумного будинку стають все більш популярними, пропонуючи зручність,
ефективність та енергоефективність. Один із ключових аспектів в реалізації
22
ефективних систем розумного будинку – це вибір і оптимізація протоколів
передачі даних. Протокол ZigBee визначається своєю ефективністю та
здатністю пристосовуватися до низькопотужних пристроїв, що робить його
ідеальним для застосувань в розумних будинках.
Працюючи з протоколом ZigBee при розробці системи розумного
будинку, розробник може бути впевненим в кількох значущих перевагах, які
роблять його привабливим вибором для таких застосувань.
ZigBee є низькопотужним та енергоефективним протоколом, що
дозволяє пристроям працювати на батареях протягом тривалого часу. Його
мережева архітектура дозволяє будувати великі системи, об'єднуючи значну
кількість пристроїв без втрати продуктивності. Затрати на обладнання для
імплементації ZigBee-інфраструктури зазвичай менше порівняно з іншими
технологіями.
Ще однією важливою перевагою є маленька затрата енергії, що
дозволяє пристроям працювати без заміни або заряджання батарей на
тривалий час. Широкий діапазон застосувань, таких як освітлення, безпека,
опалення, вентиляція, кондиціонування повітря, робить ZigBee відмінним
вибором для комплексних систем розумного будинку.
ZigBee також надає можливості автоматичної маршрутизації даних і
розширення мережі, що спрощує процес додавання нових пристроїв.
Стандартні профілі додатків дозволяють взаємодіяти різним пристроям в
одній мережі, а вбудовані заходи безпеки, такі як шифрування, забезпечують
високий рівень приватності та безпеки. Крім того, ZigBee є відкритим
стандартом, що сприяє розвитку широкої екосистеми [7].
У рамках даної кваліфікаційної роботи магістра передбачено розробку
системи для контролю температури в офісному приміщенні, використовуючи
протокол передачі даних ZigBee. Ця система буде складатися з ключових
компонентів, спрямованих на оптимальний контроль та забезпечення
ефективності системи.
23
Мережевий контролер ZigBee виступить в ролі центрального елемента,
забезпечуючи зв'язок між усіма пристроями в мережі та централізоване
керування. Температурні датчики ZigBee будуть розміщені в ключових зонах
офісу для постійного моніторингу та надання реальних даних про
температуру.
Інтеграція акумуляторів для систем опалення та охолодження
дозволить системі реагувати на отримані дані від датчиків, автоматично
регулюючи температуру в різних частинах офісу. Розробка мобільного
додатка дозволить користувачам здійснювати централізований контроль
температури віддалено, а також встановлювати параметри та відстежувати
стан системи.
Окрім того, планується реалізація сценаріїв автоматизації, які
враховуватимуть різні фактори, такі як робочі години та кількість
працівників, для забезпечення автоматичного налаштування температурних
параметрів з урахуванням специфіки офісного середовища.
У процесі розробки системи для контролю температури в офісному
приміщенні на базі протоколу ZigBee, передбачено створення веб-сайту, який
буде використовуватися для адміністрування та керування пристроями в
системі. Цей веб-сайт буде виступати в якості центральної точки для
моніторингу і управління, а також для налаштування різноманітних
параметрів.
В інтерфейсі веб-сайту для адміністрування буде доступна інформація
про температуру в режимі реального часу, а також архівні дані, представлені
у зручний для аналізу графічний спосіб. Адміністратор системи зможе
керувати пристроями ZigBee, зокрема актуаторами систем опалення та
охолодження, використовуючи функціонал веб-сайту.
Крім того, через веб-інтерфейс адміністратор матиме можливість
створювати та налаштовувати сценарії автоматизації, які враховуватимуть
різні фактори, такі як робочі години та кількість працівників. Такий підхід
24
дозволить оптимізувати систему для різних умов експлуатації та враховувати
індивідуальні потреби користувачів.
Однією з ключових переваг веб-інтерфейсу буде його здатність
надавати віддалений доступ адміністраторам, що робить процес моніторингу
та управління більш гнучким та ефективним, навіть при відсутності
фізичного присутності на місці.
1.4 Висновки до розділу 1
У даному розділі було з'ясовано, що розумні будинки та Internet of
Things (IoT) відіграють ключову роль у вдосконаленні як повсякденного
життя, так і бізнес-процесів. Розумний будинок представляє інтегровану
систему, яка використовує IoT для автоматизації та оптимізації функцій
оселі. Це включає в себе управління освітленням, опаленням, безпекою та
іншими аспектами, щоб забезпечити комфорт та ефективність.
Розглянуті різні рішеня для автоматизації роботи пристроїв таких як,
Apple HomeKit, Google Assistant, Xiaomi Mi Home та Amazon Alexa.
В рамках кваліфікаційної роботи було поставлено задачі, які необхідно
виконати для успішної реалізації поставленої мети роботи.
Для досягнення сформульованої мети необхідно вирішити такі задачі:
7. Провести детальний аналіз предметної області, вивчити особливості
та потенційні можливості протоколу передачі даних ZigBee.
8. Обгрунтувати необхідність розробки нового методу, аналізуючи
його переваги та перспективи в контексті вивченої області.
9. Сформулювати та вибрати технології, які будуть застосовуватися
під час розробки, враховуючи їхню ефективність та сумісність.
10. Розробити метод поєднання всіх компонентів для забезпечення їх
взаємодії та взаємодопомоги.
11. Провести оптимізацію системи та відповідні налаштування для
досягнення максимальної ефективності.
25
12. Оцінити складність реалізації розробленого методу, враховуючи
технічні та практичні аспекти його впровадження.
Для досягнення мети необхідно здійснити розробку системи з
контролем температури в офісному приміщенні, використовуючи протокол
передачі даних ZigBee. А саме система, яка розробляється, повинна
складатися з ключових компонентів, спрямованих на оптимальний контроль
та забезпечення ефективності системи. Також повинна мати сценарії
автоматизації, які враховуватимуть різні фактори, такі як робочі години та
кількість працівників, для забезпечення автоматичного налаштування
температурних параметрів з урахуванням специфіки офісного середовища.
26
РОЗДІЛ 2 ВИБІР ТЕХНОЛОГІЇ ТА ІНСТРУМЕНТАЛЬНИХ ЗАСОБІВ
РОЗРОБКИ СИСТЕМИ
2.1 Огляд існуючих технологій
IoT використовує різноманітні технології для передачі інформації між
пристроями. Ось кілька ключових технологій, які знаходять застосування в
області Інтернету речей:
Bluetooth – бездротовий протокол для обміну даними на короткій
відстані. Часто використовується для підключення невеликої кількості
пристроїв, таких як смартфони, гарнітури, чи невеликі сенсори.
Радіозвʼязок (RF) – бездротовий зв'язок за допомогою радіохвиль.
Технологія RF застосовується для створення бездротових мереж, де пристрої
можуть обмінюватися даними на відстані.
ІК-порти (Infrared) – використання інфрачервоних променів для
передачі даних. ІК-порти можуть використовуватися для невеликих
бездротових підключень, зокрема в пультів дистанційного керування та
схожих пристроях.
ZigBee – бездротовий протокол, спроектований для низькопотужних,
низькорівневих пристроїв. ZigBee часто використовується для побудови
мереж малих, низькопотужних пристроїв в системах розумного будинку, де
енергоефективність та довгий термін служби батарей важливі.
Ці технології використовуються в залежності від конкретних вимог та
характеристик IoT-проекту.
Мікроконтролери – це інтегральні схеми, які містять основні
функціональні блоки для управління електронними пристроями або
системами. Вони використовуються для виконання різноманітних завдань,
від керування простими пристроями до управління складними системами
вбудованого обладнання. Ось декілька популярних мікроконтролерів:
27
Arduino – це відкрита платформа для розробки електронних пристроїв,
що включає в себе апаратне та програмне забезпечення. Основна ідея Arduino
– зробити доступним для широкого кола людей розробку електроніки та
програмування мікроконтролерів. Має зручний інтерфейс для програмування
та велику кількість документації.
Складається з плати, яка має мікроконтролер, набір цифрових та
аналогових входів/виходів, а також інші компоненти. Є різноманітні моделі
Arduino для різних завдань. Програмування на Arduino виконується мовою,
основаною на C/C++ [8]. Існує велика кількість готових бібліотек для
спрощення розробки. Існує безліч додаткових модулів (шілдів), які можна
підключати до Arduino для розширення його функціональності.
Arduino використовується в різних галузях, включаючи хоббі-проекти,
робототехніку, IoT, автоматизацію та багато інших. Вона є потужним
інструментом для тих, хто хоче вивчати електроніку та програмування без
глибоких технічних знань.
ESP8266 та ESP32 – це мікроконтролери та модулі IoT, які розроблені
компанією Espressif Systems. Вони відомі своєю високою продуктивністю та
вбудованим підтримкою Wi-Fi, що робить їх популярними серед розробників
для проектів Інтернету речей. Характеристики порівняння мікроконтролерів
ESP8266 та ESP32 зображено на рисунку 2.1.
ESP8266 – вбудований Wi-Fi чіп. Швидкодія ARM мікроконтролера.
Обсяг пам'яті обмежений, але достатній для багатьох застосувань. Часто
використовується в невеликих проектах IoT та робототехніки. Популярний
серед хобі-розробників через доступність та легкість використання. Зазвичай
програмується мовою C++ за допомогою Arduino IDE.
ESP32 – вбудований Wi-Fi та Bluetooth чіпи. Два ядра мікроконтролера,
що робить його більш продуктивним. Більше опцій для введення-виведення
та розширення пам'яті.
28
Рисунок 2.1 - Порівняння ESP8266 та ESP32
Застосовується в проектах, де потрібна підтримка Bluetooth або більше
обчислювальних можливостей. Використовується в більших та складніших
проектах. Також програмується мовою C++ за допомогою Arduino IDE або
інших середовищ.
Обидва мікроконтролери популярні серед розробників IoT та
володіють великою спільнотою користувачів [9]. Вони використовуються для
створення різних пристроїв: від датчиків та реле до розумних пристроїв та
роботів. Обираються залежно від конкретних вимог проекту, таких як обсяг
пам'яті, необхідність Bluetooth, розмір та інші фактори.
29
Raspberry Pi Pico – це мікроконтролер, розроблений фондом Raspberry
Pi. Він є новим напрямком для Raspberry Pi, який використовується для
створення проектів Інтернету речей (IoT) та вбудованих систем.
Мікроконтролер RP2040, розроблений самим фондом Raspberry Pi. Два
ядра Cortex-M0+. Вбудований USB-контролер для простого підключення та
програмування.
Зазвичай використовується для невеликих та середніх проектів IoT та
вбудованих систем. Підтримує різноманітні периферійні пристрої через GPIO
піни.
Програмується мовою C/C++ за допомогою середовища розробки,
такого як Thonny або MicroPython. Raspberry Pi Pico може бути розширений
за допомогою роз'ємів GPIO для підключення додаткових сенсорів, екранів,
та інших пристроїв.
Raspberry Pi Pico надає доступну можливість для вивчення
програмування мікроконтролерів та створення простих до складних проектів.
Використовується в різних областях, таких як робототехніка, автоматизація
та розумний будинок. Raspberry Pi Pico представляє собою доступну та
потужну платформу для вивчення та реалізації проектів IoT.
Кожен з цих мікроконтролерів має свої унікальні характеристики та
застосування, що робить їх популярними в різних галузях, включаючи
електроніку хоббі, IoT, промисловість та багато інших.
Мови програмування для програмування мікроконтролерів. Мови
програмування C та C++ є основними та широко використовуваними для
програмування мікроконтролерів. Вони дозволяють прямий доступ до
ресурсів мікроконтролера та ефективно використовують обмежені ресурси.
Ефективний контроль над апаратними можливостями. Низький рівень
абстракції дозволяє оптимізувати роботу програми для конкретного
мікроконтролера.
Використовується для написання вбудованих програм, обробки
сигналів, керування периферійними пристроями. Приклад коду (мова C)
30
зображено на рисунку 2.2.
Рисунок 2.2. – Приклад коду на мові С
Приклад коду (мова C++) зображено на рисунку 2.3.
Рисунок 2.3. – Приклад коду на мові С++
31
Відмінно підходять для програмування мікроконтролерів з різних
архітектур, таких як AVR, ARM, PIC тощо. Використовуються з
інтегрованими середовищами розробки, такими як Atmel Studio, PlatformIO,
Arduino IDE.
Python – це високорівнева, інтерпретована мова програмування, яка за
останні роки стала популярною в області програмування мікроконтролерів.
Має чистий синтаксис та вважається легким для вивчення, що
полегшує розробку. Python має широку та активну спільноту, що робить
доступними багато бібліотек та ресурсів [10]. Розробка зазвичай швидше,
оскільки дозволяє писати менше коду для досягнення певних завдань.
Використовується для розробки програм для IoT-пристроїв, обробки даних,
керування сенсорами та виведення результатів. Приклад коду (мова Python)
зображено на рисунку 2.4.
.
Рисунок 2.4 – Приклад коду на мові Python
Python використовується для програмування мікроконтролерів, таких
як Raspberry Pi, ESP8266, ESP32. Має деякі обмеження в порівнянні з C/C++
щодо продуктивності та доступу до апаратних можливостей. Однак для
простих проектів Python може бути ефективним вибором.
32
Java є високорівневою, об'єктно-орієнтованою мовою програмування,
яка використовується для різноманітних застосувань, включаючи
програмування мікроконтролерів. Програми, написані на Java, можуть бути
використані на різних платформах без змін, завдяки віртуальній машині Java
(JVM) [11].
Java має вбудовані механізми безпеки, що робить його відмінним
вибором для проектів, де безпека є важливою. Використовується для
розробки вбудованих систем, IoT-пристроїв, та додатків, які вимагають
високої переносимості. Приклад коду на мові Java зображено на рисунку 2.5.
Рисунок 2.5 – Приклад коду на мові Java
Хоча Java не є основним вибором для програмування мікроконтролерів
через великий обсяг пам'яті, вона використовується для вбудованих систем,
особливо в області промислової автоматизації.
Мови програмування для розробки серверних додатків.
Node.js є середовищем виконання JavaScript на сервері, побудованим на
основі двигуна V8 веб-переглядача Chrome. Модель подій Node.js дозволяє
ефективно обробляти багато запитів одночасно. Підходить для створення
масштабованих мережевих додатків. Приклад коду зображено на рисунку 2.6.
33
Рисунок 2.6 – Приклад коду на мові javascript
Використовується для реалізації швидких та легко масштабовних
серверів, особливо для додатків з багатьма одночасними підключеннями.
C# є об'єктно-орієнтованою мовою програмування, розробленою
компанією Microsoft для платформи .NET. Має доступ до багатьох бібліотек
та інструментів .NET для швидкої розробки [12].
C# надає високий рівень безпеки завдяки механізмам контролю типів
та автоматичній збірці сміття. Приклад коду зображено на рисунку 2.7.
Рисунок 2.7 – Приклад коду на мові C#
Використовується для розробки різноманітних серверних додатків,
зокрема веб-сервісів та додатків для платформи Windows.
34
PHP є скриптовою мовою програмування, спеціально призначеною для
розробки веб-додатків. Легка для вивчення та швидкої розробки веб-сторінок
та серверних додатків. Зокрема використовується в розробці блогів,
електронної комерції та інших веб-сайтів. Приклад коду зображено на
рисунку 2.8.
Рисунок 2.8 – Приклад коду на мові PHP
Зазвичай використовується для розробки серверних скриптів та
обробки даних на стороні сервера у веб-додатках.
Бази даних. MySQL є відкритою реляційною системою керування
базами даних (RDBMS), яка використовує мову запитів SQL для взаємодії та
управління даними. Зберігання даних у вигляді таблиць, що взаємодіють за
допомогою зовнішніх ключів. Забезпечує атомарні, консистентні, ізольовані
та стійкі транзакції.
Використовується для зберігання та організації структурованих даних у
веб-додатках та інших системах.
PostgreSQL є об'єктно-реляційною системою керування базами даних
(ORDBMS), яка також використовує мову SQL. Підтримка додаткових
функцій та операцій, таких як робота з JSON, XML, геопросторові дані тощо
[14]. Можливість використовувати багатофункціональні запити та зберігати
процедури на мові програмування.
Застосовується в широкому спектрі проектів, включаючи великі веб-
системи та геопросторові застосування.
MongoDB є документ-орієнтованою, нереляційною базою даних, що
використовує JSON-подібні документи для зберігання даних. Документи
35
можуть мати різні поля та структури, що дозволяє гнучко змінювати схему
даних. Підтримка для роботи з географічними об'єктами та геопросторовими
запитами.
Застосовується в проектах, де важлива гнучкість схеми та швидкість
розробки, таких як сучасні веб-додатки та аналіз даних.
2.2 Вибір технологій
При розгляді вибору технологій для розробки системи контролю
температури в офісному приміщенні, протокол передачі даних ZigBee
видається найбільш обґрунтованим варіантом. ZigBee спеціально
розроблений для низькоспоживаючих пристроїв, що важливо для систем
розумного будинку, особливо якщо пристрої працюють на батареях. Його
енергоефективність дозволяє пристроям працювати тривалий час без потреби
у частій заміні або заряджанні батарей.
ZigBee підтримує мережеву масштабованість, що робить його
ідеальним вибором для систем, де необхідно об'єднати значну кількість
пристроїв, таких як температурні датчики та актуатори, в єдину ефективну
мережу.
Інфраструктура ZigBee зазвичай вимагає менше витрат на обладнання
порівняно з іншими промисловими протоколами, що робить його економічно
вигідним для реалізації систем у різних масштабах.
Використання ZigBee гарантує стабільну та швидку передачу даних,
що важливо для систем реального часу, таких як система контролю
температури. Вбудовані можливості автоматичної маршрутизації дозволяють
оптимально передавати дані в мережі, забезпечуючи надійну взаємодію
пристроїв.
ZigBee виявляє високу стійкість до перешкод, таких як перешкоди в
радіочастотному середовищі, що забезпечує надійну роботу системи навіть в
умовах великої кількості пристроїв та перешкод.
36
Отже, використання протоколу ZigBee обґрунтоване з точки зору
енергоефективності, масштабованості та вартості в розробці системи
контролю температури в офісному приміщенні.
Zigbee є високорівневим протоколом бездротового зв'язку, який
підтримується та сумісний з великою кількістю мікроконтроллерів. Ця
сумісність дозволяє розробникам легко інтегрувати Zigbee в різноманітні
пристрої, такі як датчики, актуатори, контролери освітлення та інші
"розумні" пристрої [15].
Оскільки Zigbee працює на рівні мережі та фізичного рівня моделі OSI,
він може бути використаний на мікроконтроллерах з вбудованими
радіочастотними трансіверами. Це робить його гнучким та придатним для
застосувань в різних областях, включаючи системи розумного будинку,
промисловість та інші вбудовані системи.
Сумісність з різними мікроконтроллерами сприяє широкому
розповсюдженню технології Zigbee та полегшує розробку та інтеграцію
пристроїв у різні екосистеми розумного середовища.
Для розробки системи розумного будинку, включаючи систему
контролю показників офісних приміщень на базі Zigbee, вибір відповідного
мікроконтроллера для виконання ролі хаба є ключовим етапом. Хаб відіграє
роль центрального контролера, який забезпечує комунікацію між різними
пристроями в мережі та обробку даних.
Мікроконтроллер – це невеликий, вбудований комп'ютер, який має
один або кілька процесорів (ядер), пам'ять для зберігання програмного та
данихного коду, а також введення/виведення (I/O) порти для взаємодії з
зовнішніми пристроями. Основна функція мікроконтроллера - виконання
програмного коду для керування підключеними пристроями та обробки
введених сигналів.
ESP32 – це мікроконтролер, який може бути вибраним для реалізації
даного проекту проекту з ряду причин. Він оснащений двоядерним
процесором, що робить його ефективним для багатозадачних завдань.
37
Інтегрований Wi-Fi та Bluetooth дозволяють легко здійснювати зв'язок із
бездротовими мережами та іншими пристроями. Наявність різноманітних
інтерфейсів робить ESP32 гнучким у використанні та інтеграції з
різноманітними пристроями. Загалом, ESP32 відзначається високою
продуктивністю та розширеними можливостями, що робить його популярним
вибором для широкого спектру застосувань у сфері вбудованих систем і
розумного обладнання [16].
Розробка програмного забезпечення для ESP32 є зручною завдяки ряду
функціональних можливостей та інструментів, які сприяють простоті і
ефективності. ESP32 підтримується в Arduino IDE, що дозволяє
використовувати звичайні функції Arduino для розробки. Це спрощує перехід
для тих, хто вже працював з Arduino.
Arduino IDE (Integrated Development Environment) – це інтегроване
середовище розробки, спеціально створене для програмування
мікроконтролерів Arduino та інших сумісних платформ. Arduino IDE надає
зручний інтерфейс, який дозволяє розробникам створювати, редагувати та
завантажувати програмний код на Arduino-плати.
ESP32 підтримує мови програмування C та C++, що дозволяє
розробникам використовувати широкий спектр інструментів та бібліотек.
Мова програмування C вважається однією з найпоширеніших та ефективних
мов для розробки програмного забезпечення мікроконтролерів.
Мова C дозволяє близько взаємодіяти з апаратним забезпеченням. Вона
надає прямий доступ до реєстрів та пам'яті мікроконтролера, що важливо для
оптимізації ресурсів та здійснення точного управління. Також дана мова
дозволяє оптимізувати код для досягнення максимальної ефективності та
швидкості виконання. Це особливо важливо для вбудованих систем, де
ресурси, такі як обсяг пам'яті та обчислювальна потужність, часто
обмежені [17].
38
Код, написаний на мові C, зазвичай легко переноситься між різними
платформами та архітектурами, що полегшує роботу на різних
мікроконтролерах без великих змін.
ESP32 володіє широкою сумісністю з різноманітними типами датчиків,
що робить його високопродуктивним та гнучким рішенням для розробників,
які планують використовувати датчики в своїх проектах.
Датчики – це пристрої, які призначені для вимірювання фізичних,
хімічних або біологічних величин та перетворення їх у електричні сигнали чи
сигнали інших видів для подальшого використання або обробки. Датчики
використовуються у багатьох областях, таких як промисловість, медицина,
наука, транспорт, побутові пристрої та багато інших.
ESP32 може взаємодіяти з різними температурними датчиками, такими
як датчики температури DS18B20, DHT11, DHT22 та інші. DS18B20 - це
цифровий температурний датчик, який виробляється компанією Maxim
Integrated. Цей датчик має кілька особливостей, які роблять його популярним
серед розробників, особливо в області вбудованих систем та проектів
Інтернету речей (IoT) [18].
DS18B20 використовує цифровий інтерфейс 1-Wire, що дозволяє
підключати кілька датчиків до одного входу мікроконтролера,
використовуючи лише один провід. Датчик може вимірювати температуру в
діапазоні від -55°C до +125°C, що робить його відмінним для вимірювання
температури в різних умовах. Також він забезпечує високу точність
вимірювань, зазвичай в межах ±0.5°C.
DS18B20 здатний надавати надійні та точні вимірювання температури,
і використовується в широкому спектрі застосувань, включаючи контроль
температури у промисловості, вимірювання температури в приміщеннях,
термостати, системи моніторингу, та інші проекти IoT.
ESP32 може легко взаємодіяти з різноманітними датчиками вологості
та тиску, надаючи розробникам можливість моніторити ці параметри в їхніх
проектах.
39
BMP280 – це високоточний цифровий датчик тиску та температури,
розроблений компанією Bosch Sensortec. Цей датчик є популярним серед
розробників і використовується в різних застосуваннях, таких як
метеостанції, метеозонди, IoT-проекти та інші, де необхідно вимірювати тиск
та температуру. BMP280 надає високу точність вимірювань тиску і
температури. Точність вимірювання тиску становить ±1.0 hPa, а температури
- ±1.0°C.
Тож, BMP280 – це надійний і точний датчик, який забезпечує важливі
вимірювання для багатьох застосувань, особливо в області метеостанцій та
проектів IoT.
ESP32 може ефективно взаємодіяти з різноманітними сенсорами світла
та оптичними датчиками, надаючи розробникам можливість вимірювати
рівень освітленості та використовувати дані для реалізації різних функцій у
своїх проектах.
BH1750 – це цифровий сенсор світла, розроблений компанією ROHM
Semiconductor. Цей сенсор призначений для вимірювання освітленості в
одиницях люкс та є популярним серед розробників у сферах автоматизації,
освітлення та проектів Інтернету речей (IoT). BH1750 використовує
цифровий інтерфейс I2C для обміну даними з мікроконтролерами, такими як
ESP32. Це робить його досить простим у використанні та інтеграції в
проекти. Сенсор забезпечує високу точність вимірювань освітленості, що
дозволяє використовувати його в різних застосуваннях, де важлива точність
даних.
Сенсор світла BH1750 є відмінним вибором для вимірювання
освітленості у різних проектах. Його цифровий інтерфейс I2C дозволяє легко
інтегрувати його з мікроконтролерами, зокрема з ESP32, що полегшує
взаємодію та забезпечує простоту використання.
ESP32 може легко взаємодіяти з різноманітними датчиками звуку, що
робить його відмінним вибором для проектів, пов'язаних із збором та
обробкою аудіоданих. Датчики звуку можуть бути використані для
40
вимірювання і моніторингу рівня звукового тиску (гучності), виявлення
акустичних подій, розпізнавання голосу та інших звукових аспектів.
ESP32 підтримує різні інтерфейси для підключення датчиків звуку,
включаючи аналогові та цифрові входи, які дозволяють отримувати та
обробляти аудіодані з відповідними периферійними пристроями.
Ця можливість робить ESP32 досить гнучким для реалізації проектів,
які вимагають аудіофункціоналу, таких як системи звукозапису, голосові
інтерфейси та інші додатки, пов'язані з обробкою звуку.
Наявність різноманітних типів датчиків, таких як ті, що вимірюють
тиск, температуру, вологість, світло та звук, робить ESP32 відмінним
вибором для розробки системи контролю офісного приміщення. Ця
різноманітність датчиків дозволяє адаптувати ESP32 до різних умов та вимог
проекту.
Для можливості управління системою розумного будинку, яка
використовує різні датчики та пристрої, необхідно розробити серверне
програмне забезпечення. Серверне ПЗ виступає в ролі центрального елемента
системи, забезпечуючи збір, обробку та взаємодію з даними, а також
управління підключеними пристроями.
Для зручності розробки серверного програмного забезпечення (ПЗ)
розумно обрати Node.js, особливо у випадку, коли важлива єдина мова
програмування для фронтенду та бекенду. Використання Node.js має декілька
переваг у контексті розробки системи розумного будинку.
Node.js базується на JavaScript, що дозволяє використовувати одну
мову як для фронтенду, так і для бекенду. Це спрощує розробку та
управління кодом, оскільки розробники можуть використовувати однаковий
синтаксис та інструменти на обох сторонах.
Node.js відомий своєю швидкістю та ефективністю завдяки
використанню асинхронного програмування. Це особливо корисно для
систем реального часу, таких як системи розумного будинку, де важлива
швидкість обробки даних та реагування на події.
41
Дана мова програмування ідеально підходить для створення API, які
можуть використовуватися для взаємодії з різними частинами системи
розумного будинку, такими як мобільні додатки чи веб-інтерфейси.
Також Node.js регулярно оновлюється та розвивається, що дозволяє
використовувати нові функції та покращення без великого зусилля.
Вибір Node.js може значно полегшити розробку, підтримку та
масштабування системи розумного будинку, забезпечуючи консистентність
між фронтендом та бекендом.
Обираючи базу даних для системи розумного будинку, важливо
враховувати ряд ключових аспектів, що впливають на продуктивність,
масштабованість та надійність вашого серверного програмного забезпечення.
Потрібно розглянути типи даних, які система буде зберігати та
обробляти. Реляційні бази даних, такі як MySQL або PostgreSQL, часто
використовуються для структурованих даних, тоді як NoSQL бази даних,
наприклад MongoDB чи Cassandra, можуть бути ефективними для
неструктурованих даних та великих обсягів читань/записів [18].
Потрібно визначити, наскільки масштабованою має бути система.
Деякі бази даних краще підходять для горизонтального масштабування
(розподілу даних на кілька серверів), тоді як інші можуть бути більш
оптимальними для вертикального масштабування (збільшення потужності
одного сервера).
Для збору даних з датчиків у системі розумного будинку, де часто
використовуються неструктуровані дані та може бути потрібна гнучкість у
моделюванні і зберіганні інформації, NoSQL база даних, така як MongoDB,
може бути відмінним вибором.
MongoDB пропонує гнучкість у схемі даних, що означає, що можете
легко додавати або змінювати поля без необхідності зміни структури всієї
бази даних. Це важливо, оскільки датчики можуть надавати різноманітні
дані.
42
MongoDB може швидко обробляти та зберігати великі обсяги
неструктурованих даних, що є типовим для систем розумного будинку з
великою кількістю датчиків.
Також дана СУБД підтримує горизонтальне масштабування, що
означає, що можете легко розширити потужність вашої бази даних, додаючи
нові сервери при необхідності.
MongoDB використовує документи у форматі BSON (JSON-подібні
об'єкти), що сприяє зручній роботі з даними у форматі, який часто
використовується в мережах IoT.
Загалом, MongoDB може бути ефективним вибором для систем
розумного будинку, де датчики забезпечують різноманітні та
неструктуровані дані, а потреба у гнучкості та масштабованості є важливою.
Вибір VPS (Virtual Private Server) для роботи з Node.js та MongoDB
може бути раціональним рішенням для проекту системи розумного будинку.
VPS дозволяє повністю контролювати власне середовище. У розробника є
можливість встановлювати, налаштовувати та оновлювати необхідне
програмне забезпечення, таке як Node.js та MongoDB, для оптимальної
роботи системи.
За потреби є можливість змінювати ресурси VPS серверу, щоб
відповідати зростаючим потребам проекту. Це дозволяє ефективно
масштабувати систему, коли з'являється потреба у більшому обсязі ресурсів.
Велика частина VPS-постачальників надає високу швидкість мережі та
гарантовану доступність, що важливо для додатків реального часу, таких як
системи розумного будинку.
Величезна кількість VPS-постачальників пропонують легкий доступ до
додаткових сервісів, таких як моніторинг, резервне копіювання та інші, що
полегшує управління та підтримку.
Для розробки клієнтської частини сервісу використовуватиметься
JavaScript. JavaScript є широко використовуваною мовою програмування для
розробки веб-додатків та клієнтської частини інтерфейсів користувача.
43
JavaScript є стандартною мовою програмування для веб-розробки та
взаємодії з елементами сторінок. JavaScript має легкий та зрозумілий
синтаксис, що полегшує розробку, особливо для початківців.
Дана мова програмування має велику кількість фреймворків та
бібліотек для розробки клієнтських додатків, що дозволяє розробникам
вибрати той, який найкраще відповідає їх потребам та стильові
програмування.
Вибір між різними фреймворками для розробки клієнтської частини
залежить від конкретних вимог та вподобань розробника чи команди. Хоча
Angular є потужним фреймворком, кращим варіантом він буде лише в певних
сценаріях.
Angular створений для розробки амбітних односторінкових додатків,
які вимагають складної логіки, багатокомпонентності та динамічної
взаємодії. Angular надає великий набір інструментів, що полегшує роботу
великих команд розробників та сприяє стандартизації коду.
Даний фреймворк вважається добрим вибором для розробки
адміністративних панелей або адміністративних інтерфейсів (адмінок).
Angular сприяє розробці структурованого та модульного коду. Для складних
адміністративних інтерфейсів, де часто використовується багато
компонентів, модульність є важливою.
Використання Angular дозволяє встановити стандарти та
консистентність в розробці, що є важливим для адміністративних
інтерфейсів, де необхідно враховувати багато різних функцій.
Angular добре підтримує багатокомпонентність, що дозволяє
створювати складні адміністративні інтерфейси з різними вкладеними
елементами.
Загалом, Angular є потужним фреймворком, який дозволяє ефективно
розробляти адміністративні панелі з високою модульністю та
стандартизацією коду.
44
Для збільшення швидкодії адміністративних панелей можна розглядати
використання систем для прискорення доставки контенту, таких як Akamai.
Akamai – це глобальна платформа для прискорення доставки контенту, яка
використовує мережу розподілених серверів (Content Delivery Network,
CDN).
Akamai забезпечує розподілене кешування контенту на своїх серверах
по всьому світу. Це дозволяє прискорити завантаження ресурсів, таких як
стилі, зображення та скрипти.
Мережа серверів Akamai розташована в багатьох країнах та регіонах,
що забезпечує швидку доставку контенту незалежно від місцезнаходження
користувача. Також даний сервіс може автоматично оптимізувати
зображення та інші ресурси, щоб зменшити їхній розмір та прискорити
завантаження сторінок [19].
Akamai надає захист від різних видів кібератак, включаючи атаки з
використанням розподілених служб (DDoS). Це може забезпечити надійність
та доступність адміністративної панелі навіть під час атак.
Використання CDN, такого як Akamai, може значно покращити
продуктивність адміністративних панелей, зменшити час завантаження
сторінок та покращити користувацький досвід. Однак слід враховувати
вартість та конфігурацію CDN відповідно до конкретних потреб та обсягу
трафіку вашого проекту.
Зберігання розробленого проекту на GitHub має багато переваг і є
стандартною практикою серед розробників. Даний сервіс надає систему
керованої версії (Version Control System, VCS), що дозволяє відстежувати
зміни в коді, порівнювати версії та відмічати релізи. Це полегшує співпрацю
багатьох розробників та ведення проекту.
GitHub робить співпрацю над проектом простішою. Інші розробники
можуть вносити свої внески, робити форки (копії) проекту, створювати гілки
для нових функцій чи виправлень помилок.
45
GitHub має вбудовані інструменти для автоматизації робочих процесів,
такі як GitHub Actions, що дозволяє налаштовувати автоматичні тести,
розгортання та інші операції.
GitHub Actions – це система автоматизованих робочих процесів, яка
дозволяє автоматизувати різні аспекти розробки програмного забезпечення
прямо на платформі GitHub.
Зберігання проекту на GitHub робить його доступним для співпраці,
полегшує розробку, управління та аналіз, забезпечуючи ефективний спосіб
розвитку та утримання програмного забезпечення.
2.3 Висновки до розділу 2
У ході огляду технологій для розумного будинку та дослідження
побудови комунікації пристроїв з використанням протоколу передачі даних
Zig-Bee були розглянуті різноманітні аспекти, включаючи засоби передачі
даних, мікроконтроллери, мови програмування та бази даних.
Зокрема, визначено, що протокол передачі даних Zig-Bee виявляється
ефективним в реалізації систем розумного будинку через свою низьку
вартість, мале споживання енергії, та здатність підтримувати велику
кількість пристроїв у мережі. Цей протокол вигідно використовувати в
системах з контролем температури, освітлення та безпеки, де важлива
швидкість передачі та надійність.
Щодо мікроконтроллерів, було визначено, що такі платформи, як
Arduino, esp8266, esp32 та Raspberry Pi Pico, є популярними серед
розробників систем IoT і забезпечують гнучкість та потужність для реалізації
різноманітних функціональностей.
Мови програмування C/C++, Python та Java представлені для
програмування мікроконтроллерів, де кожна з них має свої переваги у
залежності від завдань та вимог проекту. Для серверних додатків обрані мови
46
Java, Node.js, C# та PHP, які широко використовуються в сфері веб-розробки
та забезпечують надійність та продуктивність.
Бази даних MySQL, PostgreSQL та MongoDB виявилися відмінними
виборами для різних сценаріїв. MySQL та PostgreSQL підходять для
реляційних структур, тоді як MongoDB надає гнучкість для нереляційного
зберігання даних, що може бути важливим у розумних системах.
Враховуючи всі ці аспекти, вибір технологій для дослідження
комунікації пристроїв розумного будинку на основі протоколу Zig-Bee
визначається їхньою сумісністю, продуктивністю та відповідністю
конкретним вимогам та цілям кваліфікаційної роботи.
47
РОЗДІЛ 3 ОПТИМІЗАЦІЯ МЕТОДІВ І АЛГОРИТМІВ ПОБУДОВИ
КОМУНІКАЦІЇ ПРИСТРОЇВ РОЗУМНОГО БУДИНКУ З
ВИКОРИСТАННЯМ ПРОТОКОЛУ ПЕРЕДАЧІ ДАНИХ ZigBee
3.1 Структура системи
Для досягнення цілей даної кваліфікаційної роботи магістра була
розроблена система управління розумним офісом з автоматичним
керуванням кліматичними пристроями і освітленням.
Розробка системи розумного офісу має значну доцільність і може
призвести до ряду вигід для організації та її працівників. Система розумного
офісу дозволяє створити комфортні робочі умови для співробітників.
Автоматизація управління кліматичними пристроями та освітленням
дозволяє налаштовувати оптимальні параметри в залежності від потреб
користувачів, що сприяє їхньому зручному та продуктивному робочому дню.
Кліматичні пристрої – це технічні засоби, які використовуються для
створення та підтримки комфортних кліматичних умов у приміщенні. Ці
пристрої регулюють температуру, вологість, обмін повітря та інші параметри
оточуючого середовища з метою забезпечення оптимальних умов для
проживання, роботи чи інших діяльностей.
Розроблена система може оптимізувати використання енергії,
вимикаючи або регулюючи кондиціонер та освітлення в зонах, де це
необхідно. Це сприяє зменшенню витрат на комунальні послуги та допомагає
організації приділяти більше уваги екологічній відповідальності.
Система має функції автоматизації за правилами. Наприклад,
ввімкнення кондиціонера або освітлення автоматично при вході в
приміщення та вимкнення при виході, що робить робочий процес більш
ефективним та зручним.
48
Завдяки системі можна віддалено моніторити та керувати роботою
кондиціонера та освітлення через мобільний додаток або веб-інтерфейс. Це
дозволяє адміністраторам здійснювати ефективний контроль і реагувати на
зміни в реальному часі.
Автоматичне управління кондиціонером і освітленням може зменшити
час, який співробітники витрачають на налаштування та регулювання
середовища вручну. Це дозволяє їм більше уваги приділяти основним
завданням.
Отже, розробка системи розумного офісу з автоматичним керуванням
кондиціонером і освітленням являється важливою для покращення робочих
умов, енергоефективності та загального функціонала офісного приміщення.
Розроблена система включає в себе ряд ключових компонентів, які
взаємодіють між собою для забезпечення ефективного та інтелектуального
управління кліматичними умовами в офісному приміщенні. Основні
компоненти системи включають:
1. Датчики;
2. Хаби (Центральні Вузли);
3. Сервер;
4. Клієнтська частина (панель адміністратора).
Датчики – це пристрої, які вимірюють параметри навколишнього
середовища, такі як температура, вологість, рівень освітлення та інші.
Датчики виконують роль збору даних, необхідних для ефективного
управління системою.
Хаби або центральні вузли є інтелектуальними пристроями, які
приймають та оброблюють дані від датчиків. Вони відіграють ключову роль
у координації та управлінні різними аспектами системи. Зазвичай, вони
виступають як посередники у взаємодії між датчиками та сервером.
Комунікація між датчиками та хабами відбувається за допомогою
протоколу Zigbee. ZigBee – це бездротовий протокол мережі, розроблений
для забезпечення ефективного та надійного обміну даними між
49
різноманітними пристроями у мережах розумного дому та інших
бездротових мережах. Протокол використовується для передачі невеликої
кількості даних на короткі відстані та спроектований з урахуванням
енергоефективності, надійності та низької затримки.
ZigBee спеціально розроблений для використання в батарейно-
живлених пристроїв, тому він оптимізований для низького споживання
енергії. Це дозволяє пристроям працювати довший час без необхідності
частого заряджання.
Усі дані від хабів відправляються на сервер. Він відповідає за обробку
та аналіз зібраних даних, а також за взаємодію із зовнішніми користувачами.
Це центральний пункт управління, який приймає рішення на основі
інформації від хабів та користувацьких запитів.
Система використовує безпечний засіб зв'язку для взаємодії між хабами
та сервером, а саме - протокол HTTPS (Hypertext Transfer Protocol Secure).
HTTPS є захищеним варіантом зв'язку, який шифрує дані, передані між
клієнтом (у цьому випадку хабами) та сервером, забезпечуючи
конфіденційність та безпеку.
HTTPS використовує протокол TLS (Transport Layer Security) або його
попередника SSL (Secure Sockets Layer) для шифрування даних, що
передаються між хабами та сервером. Це робить інформацію невразливою до
перехоплення та незаконного використання.
Використання HTTPS унеможливлює перехоплення та зміну переданих
даних третіми сторонами, що забезпечує конфіденційність та цілісність
інформації [20].
Таким чином, використання протоколу HTTPS у системі забезпечує
необхідний рівень безпеки для обміну даними між хабами та сервером, що
важливо для захисту конфіденційності та надійності функціонування
системи.
Для управління автоматизацією, датчиками та хабами розроблено
портал адміністратора. Даний портал є веб-інтерфейсом для адміністраторів
50
та мобільний додаток для зручного користування системою користувачами.
Ці інтерфейси дозволяють спостерігати за станом системи, регулювати
параметри та взаємодіяти з нею. Структура розробленої системи зображена
на рисунку 3.1.
Рисунок 3.1. Структура розробленої системи
Розроблена система має універсальну архітектуру, яка дозволяє
інтегрувати необмежену кількість хабів. Ця можливість робить систему
гнучкою та розширюваною, забезпечуючи високий рівень масштабованості.
Система може ефективно керувати ресурсами та обробляти дані в
режимі реального часу, незалежно від кількості підключених хабів. Це
забезпечує стабільність та продуктивність системи навіть при збільшенні
об'єму даних.
51
Використання принципів мережі дозволяє хабам взаємодіяти між
собою, що дозволяє збільшувати покриття та забезпечувати стабільний
зв'язок навіть у великих просторах або на різних рівнях будівель.
Механізми синхронізації в системі дозволяють ефективно керувати
роботою різних хабів, забезпечуючи координованість та консистентність
управління.
У системі розумного офісу, хаби групуються логічно та зручно за
принципом офісів, де кожен офіс представляє собою конкретну локацію або
робочий простір. Групування хабів за офісами є важливим аспектом
організації та ефективного управління розумними системами.
Групування хабів за офісами дозволяє логічно організувати систему,
спрощуючи навігацію та адміністрування. Кожен офіс може представляти
окремий поверх, будівлю чи підрозділ компанії.
Адміністратори системи можуть зручно керувати групами хабів,
призначаючи їх конкретним офісам. Це полегшує розгортання та управління
розумними пристроями та функціональністю в кожному офісі окремо.
Система легко масштабується з додаванням нових хабів або офісів в
міру розширення бізнесу. Групування хабів за офісами сприяє швидкому та
зручному розгортанню нових робочих просторів.
Кожен хаб у системі розумного офісу встановлюється в конкретному
кабінеті, що надає точність та індивідуальність контролю за різними
приміщеннями в офісі. Хаб, встановлений в конкретному кабінеті, надає
можливість локального управління різними розумними пристроями та
системами в цьому конкретному приміщенні. Наприклад, можливість
контролювати температуру, освітлення та інші параметри безпосередньо з
даного кабінету.
Кожен кабінет може мати унікальні потреби та вимоги до робочого
середовища. Індивідуальне встановлення хабів дозволяє користувачам
налаштовувати різноманітні параметри залежно від їхніх особистих
вподобань.
52
Завдяки локалізованому управлінню, система може ефективно керувати
енергоспоживанням в конкретних приміщеннях. Наприклад, вимикаючи
освітлення та регулюючи температуру, коли приміщення не
використовується.
Загалом, встановлення хабів у конкретних кабінетах дозволяє
створювати індивідуалізовані та ефективні розумні офісні системи, що
враховують унікальні потреби кожного приміщення.
Основна функція хабів у системі розумного офісу полягає в зборі та
обробці даних з різноманітних датчиків, а також у виконанні дій, що
відповідають встановленим сценаріям автоматизації.
Хаби системи активно збирають дані від різноманітних датчиків, таких
як температурні, вологості, руху, освітлення тощо. Ці дані дозволяють
системі аналізувати стан приміщень та оточуючого середовища.
Якщо встановлено відповідні сценарії, хаб може автоматично
управляти кліматичними пристроями, такими як кондиціонери чи обігрівачі.
Це може включати вмикання або вимикання, регулювання температури та
інші параметри.
В залежності від потреб системи, хаби можуть активувати системи
безпеки, такі як відеоспостереження чи системи сигналізації. Також вони
можуть керувати освітленням, включаючи автоматичне вмикання чи
вимикання світла в залежності від часу доби чи руху в приміщенні.
Хаби відіграють важливу роль у раціональному використанні енергії,
забезпечуючи ефективне управління електроприладами та системами
заощадження енергії.
У системі розумного офісу всі датчики взаємодіють із хабами за
допомогою протоколу ZigBee. ZigBee - це бездротовий протокол передачі
даних, який дозволяє пристроям обмінюватися інформацією на відстані.
ZigBee працює на частоті 2.4 ГГц і може забезпечити надійний зв'язок
на великій відстані. Це дозволяє розташовувати датчики на значній відстані
53
від хабу, що особливо важливо для великих приміщень чи багатоповерхових
будівель.
ZigBee підтримує структуру мережі меш, де кожен пристрій може
служити як посередник для інших. Це сприяє створенню надійної та стійкої
мережі, де сигнал може передаватися від одного пристрою до іншого, навіть
якщо вони знаходяться на великій відстані від хабу.
Також, даний протокол розроблений з урахуванням
енергоефективності, що дозволяє датчикам працювати на батареях протягом
тривалого періоду часу без необхідності постійного заряджання.
Завдяки використанню каналів, ZigBee може обробляти одночасні
відправлення та отримання даних в різних частотних діапазонах, що
забезпечує оптимальну пропускну здатність та швидку передачу інформації.
Загалом, використання ZigBee для зв'язку між датчиками та хабами
забезпечує надійну та ефективну систему збору та обробки даних у
розумному офісі.
Основною відмінністю комунікації хабу з сервером є те, що, на відміну
від безпосередньої комунікації між датчиками та хабами за допомогою
протоколу Zigbee, хаби в системі розумного офісу взаємодіють із сервером
через більш відомий та широко використовуваний протокол HTTPS
(Hypertext Transfer Protocol Secure).
HTTPS є стандартом для безпечного обміну даними в мережі Інтернет.
Використання цього протоколу дозволяє забезпечити сумісність та
інтеграцію з різноманітними системами та платформами.
HTTPS передбачає використання Інтернет-з'єднання, що дозволяє
хабам взаємодіяти з сервером через глобальну мережу. Це важливо для
систем, де сервер розташований в іншому місці або в хмарному середовищі.
Завдяки використанню стандартного протоколу, система може легше
взаємодіяти з іншими веб-сервісами та додатками, що покращує
розширюваність та можливості інтеграції.
54
Цей підхід сприяє безпеці та ефективності в обміні даними між хабами
та центральним сервером, що є ключовим елементом розумних систем
управління.
Процес роботи хаба у системі розумного офісу включає в себе
отримання, трансформацію та відправлення даних з датчиків на центральний
сервер для подальшої обробки та аналізу. Хаби системи активно взаємодіють
із різноманітними датчиками, які вимірюють різні параметри, такі як
температура, вологість, рух, освітлення тощо. Дані, отримані від датчиків,
передаються хабам через бездротовий зв'язок за допомогою протоколу
ZigBee.
При отриманні даних від датчиків, хаб переходить до їхньої
трансформації. Це включає в себе обробку та форматування отриманих
сирцевих даних в читабельний та структурований вигляд. Трансформація
також може включати в себе перевірку на наявність аномалій чи виправлення
помилок.
Після трансформації хаб готує дані для відправлення на сервер. Це
може включати в себе розбиття інформації на різні параметри, додавання
міток часу, агрегацію даних чи інші операції, що роблять дані зрозумілими та
легко оброблюваними.
Готові дані відправляються на центральний сервер за допомогою
безпечного протоколу HTTPS. Це забезпечує безпеку та конфіденційність
даних під час їхньої передачі через мережу.
При отриманні даних на сервері, вони піддаються подальшій обробці та
аналізу. Це включає в себе статистичний аналіз, порівняння з попередніми
даними, виявлення тенденцій чи відстеження подій, що відбуваються в
системі.
Такий підхід дозволяє оптимізувати обробку та використання даних у
системі розумного офісу, забезпечуючи якість та надійність отриманої
інформації. Також, використання HTTPS для взаємодії із сервером додає
рівень безпеки до цього процесу.
55
Адміністратор системи має можливість використовувати клієнтський
додаток, який надає зручний та інтуїтивно зрозумілий інтерфейс для
управління та моніторингу системи розумного офісу.
Клієнтський додаток забезпечує зручний інтерфейс, який дозволяє
адміністратору легко взаємодіяти з системою, переглядати стан датчиків,
моніторити роботу хабів, а також виконувати конфігурацію та управління.
З використанням HTTPS для взаємодії із сервером, адміністратор може
користуватися додатком навіть з віддаленої локації. Це дозволяє віддалено
керувати та моніторити систему, що є важливим для забезпечення
ефективного управління.
Цей підхід забезпечує адміністраторові ефективні та зручні
інструменти для управління та контролю над системою розумного офісу,
дозволяючи віддалено та ефективно керувати всіма аспектами її
функціонування.
3.2 Опис функцій системи
Система розумного офісу розроблена для ефективного контролю та
управління станом приміщень. Вона використовує різноманітні датчики для
надання точної інформації про оточуюче середовище. Датчики температури
регулюють опалення та кондиціювання повітря, забезпечуючи комфорт для
співробітників. Датчики освітлення автоматично регулюють яскравість світла
в залежності від природного освітлення та активності в приміщенні,
сприяючи енергозбереженню.
Датчики руху виявляють присутність людей і дозволяють системі
автоматично вимикати світло чи регулювати температуру у порожніх зонах
для оптимізації споживання енергії. Додатково, система може
використовувати датчики якості повітря для моніторингу та покращення
атмосферних умов у приміщенні. Всі ці функції спрямовані на створення
56
ефективного та комфортного робочого середовища, сприяючи забезпеченню
продуктивності та зменшенню витрат на енергію.
Отримані дані від датчиків системи розумного офісу відправляються на
центральний сервер для централізованого аналізу та керування. Цей сервер
виступає як мозок системи, здатний обробляти великий обсяг інформації та
приймати рішення на основі аналізу даних.
На сервері встановлені програми та алгоритми, які враховують
інформацію з усіх датчиків. Наприклад, алгоритми можуть визначати
оптимальні параметри температури та освітлення для кожного кабінету в
залежності від кількості людей та природного світла в конкретний момент.
Також можуть бути враховані інші фактори, такі як час доби чи день тижня.
Хаби, встановлені в кабінетах офісу, виконують роль локальних точок
збору даних і взаємодії з пристроями в конкретних зонах. Вони отримують
команди від центрального сервера та виконують їх, регулюючи кліматичні
системи та освітлення відповідно до встановлених параметрів.
Ця архітектура дозволяє не тільки збирати дані з усіх куточків офісу
для централізованого управління, але і забезпечує гнучкість в регулюванні
кожного приміщення окремо в залежності від його конкретних потреб. Така
система сприяє ефективному використанню енергії та комфортному
середовищу для працівників.
Сервер системи розумного офісу використовує сценарії автоматизації,
які зберігаються у центральній базі даних. Ці сценарії визначають різні умови
та взаємодії між різними елементами системи, враховуючи зібрані дані з
датчиків. Наприклад, сценарій може передбачати автоматичне зменшення
яскравості світла та зниження температури у приміщенні, якщо датчики
виявляють відсутність людей на протязі тривалого періоду.
Коли дані від датчиків надходять на сервер, вбудовані алгоритми
аналізують цю інформацію та визначають, чи потрібно викликати який-
небудь із заданих сценаріїв. Якщо умови сценарію виконані, сервер видає
команду хабам, розташованим в конкретних кабінетах офісу.
57
Хаби, отримавши команду від сервера, виконують необхідні дії
відповідно до сценарію. Це може включати в себе регулювання освітлення,
температури, або інших систем відповідно до зазначених параметрів. Крім
того, хаби можуть відправляти зворотні сигнали на сервер, повідомляючи
його про стан та результати виконання команд.
Такий підхід забезпечує централізоване управління системою,
дозволяючи ефективно використовувати дані з датчиків для автоматизації
процесів в офісному середовищі.
Система розумного офісу збирає різноманітні дані з ряду датчиків для
забезпечення оптимального середовища та ефективного управління
ресурсами. Ось перелік даних, які збираються системою:
1. Дані з датчиків освітлення:
a. Яскравість світла в приміщенні;
b. Рівень освітлення в різних зонах офісу.
2. Дані з датчиків шуму:
a. Рівень шуму в різних зонах офісу;
b. Зміни в шумовому фоні протягом дня.
3. Дані з датчиків руху:
a. Виявлення присутності людей в конкретних зонах;
b. Аналіз паттернів руху та визначення активних та пасивних
періодів;
4. Дані з датчиків температури та вологості:
a. Температура в різних зонах офісу;
b. Рівень вологості в приміщенні.
Ці дані можуть бути використані для автоматизованого управління
системами офісу. Наприклад, якщо датчики руху виявляють відсутність
людей в приміщенні, система може автоматично знизити яскравість
освітлення та вимкнути зайві електронні пристрої для економії енергії. Дані
про температуру та вологість можуть використовуватися для автоматичного
регулювання кліматичних систем з метою забезпечення комфортних умов
58
для працюючих. Крім того, дані про рівень шуму можуть використовуватися
для контролю звукоізоляції та управління акустичним середовищем в офісі.
Хаби, розташовані в кожному кабінеті офісу, відіграють важливу роль
у зборі даних та їхньому подальшому передаванні на центральний сервер для
збереження. Кожен хаб оснащений датчиками для вимірювання освітлення,
температури, вологості, шуму та інших параметрів, які важливі для
ефективного управління офісним середовищем.
Коли хаб отримує дані від датчиків, він конвертує ці дані в
читабельний формат, щоб забезпечити їхню зрозумілість та легкість обробки.
Це може включати в себе перетворення сирих значень, зчитаних з датчиків, в
конкретні величини, такі як температура в градусах Цельсія чи рівень
освітлення в люксах.
Отримавши конвертовані дані, хаб відправляє їх на центральний
сервер. Дані призначені для збереження на сервері для подальшого аналізу,
моніторингу та використання в сценаріях автоматизації.
Такий підхід дозволяє забезпечити централізований та
систематизований доступ до даних з усіх зон офісу, забезпечуючи, що
інформація зберігається ефективно та доступна для подальшого
використання в оптимізації умов роботи та ресурсів.
Хаб, розташований в кабінеті офісу, може бути інтегрований з
різноманітними пристроями для керування кліматичними умовами та
комфортом приміщення. Інтеграція з різними пристроями дозволяє системі
розумного офісу не лише моніторити стан, але і активно впливати на роботу
цих пристроїв з метою оптимізації енергоспоживання та забезпечення
комфортних умов для працівників.
Хаб може здійснювати взаємодію з кондиціонером для автоматичного
регулювання температури в приміщенні відповідно до встановлених
стандартів та індивідуальних налаштувань користувачів.
59
Інтеграція з системою теплої підлоги дозволяє хабу контролювати та
регулювати температуру підлоги в залежності від умов та побажань
користувачів.
Хаб може бути також інтегрований з системою управління освітленням
для автоматичного регулювання яскравості та типу освітлення в залежності
від наявності людей та природного світла.
Взаємодія з системами вікон та жалюзів дозволяє хабу регулювати
пропускання світла та тепла зовнішніми поверхнями приміщення.
Система розумного офісу керується за допомогою панелі
адміністратора, яка є централізованим інтерфейсом для взаємодії з усіма
пристроями та налаштуваннями, яка зображена на рисунку 3.2. Цей
інтерфейс дозволяє адміністратору моніторити стан всіх датчиків, пристроїв
та зон офісу в реальному часі, а також аналізувати історію зібраних даних.
Рисунок 3.2. – Головна сторінка системи
60
Управління пристроями здійснюється через панель адміністратора, де
можна змінювати параметри різних пристроїв та активувати або вимикати їх
в різних зонах офісу. Також адміністратор може створювати та
налаштовувати сценарії автоматизації для оптимізації функціонування
системи в різних умовах.
Панель адміністратора також включає функції менеджменту доступу,
де можна налаштовувати рівні доступу для користувачів та адміністраторів, а
також вести моніторинг та аудит використання системи. Оповіщення та
повідомлення налаштовуються для оперативного сповіщення про події чи
помилки в системі.
Усе це надає адміністратору зручний та централізований інструмент
для ефективного управління всіма аспектами системи розумного офісу,
забезпечуючи ефективність, зручність та безпеку управління.
Використання системи розумного офісу дозволяє компаніям створити
оптимальні та комфортні умови для співробітників, що має значний вплив на
їхню продуктивність та задоволеність роботою. Забезпечення комфортних
кліматичних умов та оптимального освітлення за допомогою автоматизації
дозволяє враховувати індивідуальні вподобання користувачів та
оптимізувати середовище для різних робочих сценаріїв.
Окрім поліпшення умов для працівників, система розумного офісу
сприяє збереженню коштів компанії через ефективне управління
енергоспоживанням. Автоматичне вимкнення світла та регулювання
температурних режимів у порожніх зонах офісу, оптимізація використання
електроенергії та опалення сприяють значній економії енергоресурсів.
За допомогою системи аналізу та моніторингу дані з датчиків
інтегровані у панель адміністратора, компанії можуть отримувати інсайти
щодо паттернів використання приміщень та ресурсів. Це дозволяє
вдосконалювати стратегії управління та вносити зміни для максимізації
ефективності та зниження витрат.
61
У підсумку, впровадження системи розумного офісу не тільки
покращує робочі умови для персоналу, але й сприяє ефективному
використанню ресурсів, що в свою чергу призводить до значних економічних
вигод для компанії.
3.3 Забезпечення захисту інформації при роботі з створеною
системою
Необхідність захисту інформації в розробленій системі розумного
офісу є надзвичайно важливим аспектом, оскільки вона включає в себе
чутливі дані, пов'язані як з користувачами, так і з функціональністю
приміщень.
Система може містити особисті дані співробітників, такі як графік
роботи, преференції комфорту та інші приватні дані. Забезпечення
конфіденційності цих даних є обов'язковим для збереження довіри
користувачів до системи.
Несанкціонований доступ до системи може призвести до витоку
конфіденційної інформації, порушення приватності користувачів або може
бути використаний для зловживання.
Гарантування того, що дані в системі залишаються недоторканими та
не піддаються маніпуляції, важливо для забезпечення правильного
функціонування системи та довіри до наданих результатів.
Системи розумного офісу можуть стати об'єктом кібератак.
Забезпечення високого рівня кібербезпеки є важливим для захисту від
потенційних загроз, таких як витік чутливої інформації, втрата
функціональності системи чи завдання шкоди.
Система розумного офісу може бути пов'язана з фізичною
інфраструктурою, такою як системи електропостачання та водопостачання.
Несанкціоноване втручання може призвести до серйозних наслідків для
функціонування приміщень.
62
Загалом, захист інформації в системі розумного офісу не тільки
забезпечує безпеку користувачів та компанії, але й підтримує стійкість та
довіру до системи в цілому.
Забезпечення захисту при роботі з IoT (Internet of Things) пристроями є
критичним завданням, оскільки ці пристрої можуть бути піддані
різноманітним кіберзагрозам, включаючи несанкціонований доступ, витік
конфіденційної інформації та можливість використання пристроїв для атак на
інші системи.
Кожен IoT пристрій використаний в системі має механізми
аутентифікації, щоб перевірити його легітимність перед наданням доступу.
Важливо встановлювати деталізовані політики авторизації для контролю
доступу до функціональності пристрою.
Усі дані, які передаються між IoT пристроями та інфраструктурою, є
зашифрованими, щоб унеможливити несанкціонованому користувачеві
зловживати або перехоплювати цю інформацію.
Постійне оновлення програмного забезпечення на IoT пристроях є
критичним для закриття виявлених вразливостей та підвищення рівня
безпеки. Забезпечення можливості автоматичних оновлень спрощує цей
процес для кінцевих користувачів.
Захист мережі, через яку обмінюються даними IoT пристрої, включає в
себе використання мережевих брандмауерів, виявлення інтрузій, валідацію
мережевого трафіку та інші заходи для запобігання несанкціонованому
доступу.
Захист пристроїв від фізичного доступу є важливим. Фізичні заходи
безпеки, такі як захист від розбирання та маркування пристроїв, можуть
ускладнити спроби атаки.
Захист інформації при роботі з протоколом ZigBee вкрай важливий,
оскільки цей протокол використовується для бездротового зв'язку в мережах
IoT, таких як системи розумного будинку та офісу.
63
Використання надійних алгоритмів шифрування для захисту переданих
даних в мережі ZigBee дозволяє унеможливити несанкціонований доступ до
інформації, що передається між пристроями.
Реалізація механізмів аутентифікації для перевірки легітимності
пристроїв, що спілкуються в мережі запобігає можливості підключення
несанкціонованих пристроїв до мережі.
Використання безпечних ключів для шифрування та розшифрування
даних в мережі ZigBee є критичним для захисту конфіденційності та
цілісності інформації.
Загально кажучи, захист інформації при використанні протоколу
ZigBee вимагає комплексного підходу, який охоплює технічні,
криптографічні та фізичні заходи безпеки.
Забезпечення безпеки інформації при роботі з базою даних MongoDB є
пріоритетною метою для збереження конфіденційності та цілісності даних.
Для досягнення цього мети важливо враховувати кілька ключових аспектів.
Спочатку, встановлення механізмів аутентифікації та авторизації
дозволяє контролювати доступ користувачів до бази даних, забезпечуючи
ідентифікацію та визначення їхніх прав.
Далі, використання TLS/SSL для шифрування транспортного рівня
забезпечує безпечний обмін даними між MongoDB серверами та клієнтами.
Також може бути застосоване шифрування на рівні стовпців чи документів в
самій базі даних.
Журналювання подій в базі даних важливо для виявлення та
відстеження можливих загроз та моніторингу активності користувачів.
Додатково, регулярне оновлення MongoDB та використання патчів є
важливими для усунення вразливостей та забезпечення високого рівня
безпеки.
Фізична безпека серверів бази даних також є важливою. Розташування
серверів у захищених приміщеннях з контрольованим доступом допомагає
запобігти фізичному доступу до них.
64
Крім того, регулярне створення резервних копій даних гарантує
можливість відновлення інформації у випадку втрати або пошкодження
даних. Цей підхід сприяє надійному збереженню даних та відновленню в
непередбачувих ситуаціях.
Розроблена система включає в себе систему ролей, яка регулює права
доступу користувачів до різних функціональних можливостей. Відповідно до
цієї системи, тільки адміністратор має повний доступ та можливість
налаштовувати пристрої в системі. Це означає, що адміністратор може
виконувати різні завдання, такі як додавання нових пристроїв, налаштування
параметрів та контроль за функціональністю системи.
Звичайний користувач системи обмежений своїми правами доступу і
може лише переглядати звіти та іншу інформацію, необхідну для
моніторингу та отримання звітів про стан пристроїв та умов приміщень. Він
не може вносити зміни в конфігурації пристроїв або виконувати інші дії, що
можуть впливати на роботу системи.
Цей підхід до розподілу ролей дозволяє ефективно керувати безпекою
та забезпечити, що лише відповідальні особи мають доступ до критичних
функцій системи, тим самим зменшуючи ризик несанкціонованого доступу
та використання.
Для входу в систему використовується дворівнева система захисту, яка
включає в себе процеси аутентифікації та авторизації.
Першим кроком при спробі входу в систему є аутентифікація, яка
забезпечує перевірку ідентифікації користувача. Кожен користувач повинен
представити свій ідентифікатор, такий як логін або електронна пошта, разом
із своїм унікальним паролем. Система порівнює ці дані із заздалегідь
збереженими у своїй базі даних, щоб визначити, чи є введені дані вірними.
Якщо аутентифікація успішна, користувач переходить до етапу
авторизації. На цьому етапі система визначає права та обов'язки користувача.
Залежно від його ролі та прав доступу, користувач може або не може
65
використовувати певні функціональні можливості системи, редагувати
конфігурації, або здійснювати інші дії.
Цей двоетапний процес забезпечує подвійний шар захисту.
Аутентифікація переконується, що тільки визначені користувачі мають
доступ до системи, а авторизація гарантує, що ці користувачі обмежені в
своїх можливостях відповідно до їхніх ролей та повноважень. Це підвищує
загальний рівень безпеки та контролю в системі.
Система також пропонує зручний метод авторизації за допомогою
облікового запису Google. Це означає, що користувачі мають можливість
увійти в систему, використовуючи свої дані Google Account, замість
створення та запам'ятовування окремого пароля для системи.
При виборі опції "Увійти за допомогою Google", користувач
перенаправляється на сторінку авторизації Google, де він може ввести свій
існуючий обліковий запис або створити новий. Після успішної аутентифікації
Google повідомляє систему, що користувач є визнаним та довіреним, і
автоматично авторизує його в системі.
Такий підхід спрощує процес входу та реєстрації для користувачів,
адже вони можуть використовувати існуючий обліковий запис Google, не
вводячи додаткових логінів та паролів. Крім того, це дозволяє
використовувати додатковий рівень безпеки, якщо користувач активував
двоетапну аутентифікацію для свого облікового запису Google.
Використання кращих практик у криптографії, механізмах
аутентифікації та авторизації, системі журналювання та моніторингу
дозволяє надійно захищати конфіденційні дані та забезпечує контроль над
доступом користувачів. Враховуючи систему ролей, де адміністратор має
повний доступ до налаштувань пристроїв, а звичайні користувачі можуть
лише переглядати звіти, досягнута баланс між зручністю використання та
безпекою інформації. Крім того, використання методу авторизації через
обліковий запис Google сприяє зручності для користувачів, забезпечуючи
високий рівень захисту. Враховуючи ці аспекти, можна визнати, що система
66
відповідає сучасним стандартам безпеки та забезпечує надійний функціонал
для ефективного управління приміщеннями та пристроями в офісному
середовищі.
3.4 Технічні вимоги для роботи з системою
При роботі з розумним офісом і використанні відповідних систем та
пристроїв важливо дотримуватися певних технічних вимог для забезпечення
ефективності та безпеки.
Наявність стабільної та надійної мережевої інфраструктури забезпечує
безперебійний обмін даними між пристроями та системами розумного офісу.
Висока швидкість передачі даних і низький рівень затримок важливі для
швидкої реакції системи.
Для використання системи розумного офісу достатньо мати стабільне
інтернет-з'єднання зі швидкістю не менше 100 мегабіт на секунду (Мбіт/с).
Це забезпечить ефективний обмін даними між пристроями та серверами
системи, а також дозволить користувачам зручно взаємодіяти з
функціоналом системи через мережу.
Швидкість інтернет-з'єднання у 100 Мбіт/с забезпечить достатню
пропускну здатність для передачі великої кількості даних, що є важливим для
оптимальної роботи системи розумного офісу. Таке інтернет-з'єднання
забезпечить швидкий доступ до системи, стрімкі оновлення та високоякісну
відправку та отримання даних, сприяючи загальній продуктивності та
зручності користувачів.
Наявність стійкого та безперебійного інтернет-зв'язку важлива для
здійснення дистанційного контролю, оновлень програмного забезпечення та
інтерактивного взаємодії з системою з будь-якого місця.
Захисні мережеві пристрої відіграють ключову роль у забезпеченні
безпеки мережі та усієї інфраструктури. Ці пристрої використовуються для
67
виявлення та запобігання потенційно шкідливим мережевим та інтернет-
загрозам.
Брандмауер фільтрує трафік мережі, контролюючи доступ до та від
інтернету. Він визначає, який мережевий трафік може або не може пройти
через нього, на основі встановлених правил та політик безпеки.
Антивірусні пристрої виявляють та блокують віруси, троянські
програми, шкідливі коди та інші види шкідливих програм, що можуть
загрожувати безпеці мережі.
VPN-концентратори дозволяють створювати зашифровані з'єднання
для віддаленого доступу, забезпечуючи безпеку під час передачі даних через
відкриті мережі, такі як Інтернет.
Захисні мережеві пристрої спільно допомагають утримувати мережу
від потенційних загроз, збільшуючи загальний рівень безпеки та
забезпечуючи надійну захисту від різноманітних мережевих атак.
Наявність стабільного живлення для всіх пристроїв системи. Додаткові
заходи для забезпечення безперебійного живлення можуть бути важливими
для уникнення втрати даних та забезпечення неперервності роботи.
Наявність Uninterruptible Power Supply (UPS) та батареї великої ємності
є важливою складовою для забезпечення надійності та захисту системи,
особливо в офісному середовищі.
UPS дозволяє продовжити життя пристроїв в разі втрати основного
живлення. Батареї великої ємності надають достатньо часу для виконання
процедур безпечного вимкнення або для переходу на альтернативні джерела
живлення, щоб уникнути втрати даних або можливого пошкодження
обладнання.
UPS може фільтрувати та стабілізувати напругу, що надходить до
системи. Це особливо важливо для запобігання пошкодженню електроніки
внаслідок різких коливань або перепадів напруги.
Батареї великої ємності дозволяють пристроям працювати без перебоїв
в умовах, коли стабільне живлення стає недоступним. Це особливо важливо
68
для систем, які вимагають постійної роботи, таких як сервери або системи
безпеки.
Загальною метою UPS та батарей великої ємності є забезпечення
стабільності та продовження роботи системи в умовах, коли стандартне
живлення може бути обмеженим або відсутнім. Це сприяє утриманню
безперебійної роботи системи та підвищує її надійність.
Всі дані, які відправляються від хабу до серверу, забезпечуються
високим рівнем безпеки через використання протоколу Secure Sockets Layer
(SSL) або його сучасного еквіваленту Transport Layer Security (TLS). Ця
технологія шифрування дозволяє забезпечити конфіденційність та цілісність
переданих даних.
Шляхом застосування SSL/TLS, всі інформаційні пакети, які
передаються від хабу до серверу, шифруються. Це означає, що дані стають
недоступними для неповноважних осіб, оскільки вони перебувають у
зашифрованому вигляді під час транспорту через мережу.
SSL/TLS використовує криптографічні методи, такі як шифрування
симетричного ключа та публічного ключа, для створення захищеного
тунелювального з'єднання між хабом і сервером. Це дозволяє надійно
захищати дані від можливих атак та перехоплення в процесі їхньої передачі.
Використання SSL/TLS є стандартним підходом у сфері безпеки
мережевих транзакцій, забезпечуючи високий рівень захисту від зловживань
та забезпечуючи користувачам та системам впевненість у конфіденційності
їхніх даних.
Для додаткового забезпечення та захисту конфіденційності інформації
на сервері використовується шифрування даних на диску сервера. Ця захисна
техніка забезпечує шар додаткового безпеки для збережених даних, що
збільшує рівень відповідності з приводу конфіденційності та зменшує ризик
неправомірного доступу.
Шифрування даних на диску сервера означає, що інформація,
збережена на фізичному носії даних (наприклад, жорсткому диску),
69
перебуває у зашифрованому вигляді. Тільки авторизовані особи з доступом
до відповідного ключа можуть розшифрувати ці дані і звертатися до них. Це
стає додатковим бар'єром для несанкціонованого доступу навіть у випадку,
якщо зловмисник, що реалізує атаку, отримає фізичний доступ до сервера або
носія даних.
Шифрування на рівні диску сервера допомагає захистити дані від
потенційних загроз, таких як втрати чи крадіжка фізичного обладнання. Воно
є важливою складовою комплексної стратегії безпеки даних, зокрема при
роботі з конфіденційною інформацією на серверах, і дозволяє забезпечити
безпеку від внутрішніх і зовнішніх загроз.
У розробці даної системи були використані всі необхідні практики для
захисту даних, забезпечуючи високий стандарт безпеки та конфіденційності.
Ці практики спільно утворюють комплексний підхід до захисту даних та
забезпечення високого рівня безпеки у всіх аспектах системи.
3.5 Оцінка ефективності побудови комунікації пристроїв
розумного будинку з використанням протоколу передачі даних ZigBee
Оцінка ефективності побудованої системи є важливою складовою
процесу розробки та управління технологічними проектами. Оцінка дозволяє
визначити, наскільки успішно система відповідає вимогам, чи вона
ефективно виконує свої завдання та в якій мірі вона відповідає стратегічним
та бізнес-цілям компанії.
Оцінка дозволяє перевірити, чи відповідає розроблена система всім
визначеним вимогам та специфікаціям. Це важливо для визначення
успішності виконання завдань та очікувань користувачів.
Процес оцінки дозволяє виявити можливі недоліки чи вразливості у
системі, що може бути важливим для подальших покращень та усунення
проблем.
70
Оцінка дозволяє визначити продуктивність системи та ідентифікувати
ефективність використання ресурсів, таких як час, енергія, обчислювальна
потужність та інші.
Важливо визначити, чи система ефективно використовує ресурси та в
якій мірі вона відповідає бюджету. Це допомагає управлінцям та
розробникам приймати рішення щодо подальших інвестицій та оптимізації
витрат.
Загалом, оцінка ефективності побудови системи є необхідним етапом
для забезпечення високої якості та виправлення можливих недоліків у роботі
системи. Це дозволяє управлінцям та розробникам приймати обґрунтовані
рішення, що сприяють подальшому розвитку та вдосконалення продукту.
Розроблена система надає унікальну можливість оцінити ефективність
застосування ZigBee мережі пристроїв в контексті розумного офісу.
Застосування ZigBee має декілька ключових переваг, які можна оцінити
через функціональність та продуктивність системи.
ZigBee відома своєю надійністю та ефективністю енергоспоживання,
особливо в умовах розподіленої мережі. Система може відобразити,
наскільки надійно працюють підключені пристрої, і як ефективно вони
використовують енергію.
ZigBee підтримує масштабованість мережі, що є важливим аспектом в
офісному середовищі з великою кількістю пристроїв. Система може оцінити,
наскільки легко можна розширювати мережу та керувати нею.
Використання ZigBee може визначити, наскільки добре пристрої
забезпечують інтеграцію та сумісність з іншими компонентами системи. Це
може бути важливим аспектом для створення повноцінного та сумісного
розумного офісу.
Аналіз ефективності ZigBee мережі у контексті розробленої системи
дозволяє здобути уявлення про переваги та можливі обмеження цієї
технології в конкретному середовищі розумного офісу. Це може служити
71
основою для подальших вдосконалень та оптимізацій, якщо це буде
необхідно.
Використання технології ZigBee в системі розумного офісу призвело до
оптимізації розташування датчиків і, відповідно, до зменшення кількості
необхідних хабів. Основна перевага ZigBee полягає в його здатності
забезпечувати низькорівневий, енергоефективний та надійний обмін даними
між пристроями в розподіленій мережі.
Завдяки великому діапазону покриття ZigBee, пристрої можуть
ефективно взаємодіяти з хабом на великій відстані. Це зменшує необхідність
встановлення багатьох хабів, оскільки вони можуть охоплювати значну
територію.
Використання технології ZigBee у системі розумного офісу відкриває
можливість ефективно взаємодіяти з великою кількістю пристроїв, які вже
існують на ринку. Це є важливою перевагою та сприяє широкому
застосуванню системи.
Протокол ZigBee стандартизований та широко підтримується в
індустрії, що дозволяє легко інтегрувати різноманітні пристрої в систему без
додаткових труднощів. Завдяки цій сумісності, розробники можуть
користуватися широким асортиментом пристроїв, таких як датчики, реле,
освітлення, термостати та інші, які вже доступні на ринку і розроблені з
використанням ZigBee.
Це спрощує впровадження та розширення системи, оскільки
користувачам не потрібно повністю міняти своє устаткування. Можна легко і
ефективно інтегрувати нові розумні пристрої вже існуючі в системі, що
робить її більш гнучкою та пристосованою до змін.
Враховуючи популярність та широке поширення пристроїв, які
використовують ZigBee , вибір цієї технології в системі розумного офісу
забезпечує сумісність з багатьма виробниками та дозволяє використовувати
широкий спектр розумних пристроїв для досягнення конкретних цілей та
вимог користувачів.
72
Використання технології ZigBee в системі розумного офісу дозволяє
зробити висновок про те, що ця стратегія надає конкурентну перевагу,
зменшуючи собівартість системи порівняно із конкурентами на ринку.
3.6 Висновки до розділу 3
Під час розділу, присвяченого оптимізації методів і алгоритмів для
побудови комунікацій у розумних будинках з використанням протоколу
передачі даних ZigBee, були розглянуті та визначені ключові аспекти
створеної системи.
Аналіз структури системи дозволив ідентифікувати її основні
компоненти, такі як мережеві контролери ZigBee, температурні датчики та
актуатори для систем опалення та охолодження. Опис функцій системи
включав в себе реалізацію контролю температури в різних зонах офісного
приміщення та можливість автоматичної реакції на зміни в робочому
середовищі
Забезпечення захисту інформації отримало значущий акцент, і
використання протоколу ZigBee було визначено як високоефективний та
безпечний засіб забезпечення конфіденційності та цілісності.
Технічні вимоги для користувачів системи передбачали наявність
обладнання, яке підтримує технологію ZigBee, а також здатність взаємодії з
веб-сервером для моніторингу та управління.
Оцінка ефективності розглядає вигоди використання ZigBee, такі як
низька вартість, енергоефективність та здатність підтримувати велику
кількість пристроїв. Реалізація системи контролю температури в офісному
приміщенні підтвердила, що ZigBee є оптимальним вибором для застосувань
в розумних будинках, де надійність та швидкість передачі даних є
критичними.
73
Отже, дослідження та оптимізація системи розумного будинку з
використанням ZigBee вказують на високий потенціал цього протоколу для
створення ефективних та функціональних систем розумного будинку.
74
ВИСНОВКИ
У даній кваліфікаційній роботі магістра було ретельно досліджено та
розглянуто ключові аспекти сучасних технологій у сфері розумних будинків
та Internet of Things (IoT). Розумний будинок, що інтегрує IoT, виявляється
перспективним напрямком для оптимізації життя та бізнес-процесів, надаючи
зручність та ефективність.
Аналіз різних рішень для автоматизації пристроїв, таких як Apple
HomeKit, Google Assistant, Xiaomi Mi Home та Amazon Alexa, вказує на
широкий вибір інструментів для створення розумних систем. Визначені
завдання кваліфікаційної роботи, такі як оптимальний контроль системи та
впровадження сценаріїв автоматизації, вказують на необхідність
комплексного підходу до розробки систем розумного будинку.
Огляд технологій, таких як протокол передачі даних ZigBee,
мікроконтроллери (Arduino, esp8266, esp32, Raspberry Pi Pico), мови
програмування (C/C++, Python, Java) та серверні мови (Java, Node.js, C#,
PHP), дозволив зрозуміти різноманітність інструментів для створення
розумних систем. Вибір конкретних технологій повинен базуватися на їхній
сумісності, продуктивності та відповідності вимогам проекту.
Оцінка ефективності системи з використанням протоколу ZigBee
підкреслила його переваги, такі як низька вартість, енергоефективність та
надійність. Розгляд мікроконтроллерів та мов програмування підкреслив
їхню ролі в реалізації різноманітних функціональностей.
Вибір оптимальних технологій для побудови комунікації пристроїв
розумного будинку з використанням протоколу передачі даних ZigBee
дозволив створити систему відповідно до умов та поставлених задач.
75
ПЕРЕЛІК СКОРОЧЕНЬ ТА УМОВНИХ ПОЗНАЧЕНЬ
IoT – Internet of Things (Інтернет речей).
ZigBee – Спеціальний протокол мережі для бездротових мереж низької
потужності та обмеженої зони покриття.
LED – Light Emitting Diode (світлодіод).
API – Application Programming Interface (програмний інтерфейс
застосунку).
RFID – Radio-Frequency Identification (ідентифікація за допомогою
радіочастот).
Wi-Fi – Wireless Fidelity (бездротова мережа).
RTOSМ – Real-Time Operating System (операційна система реального часу).
IDE – Integrated Development Environment (інтегроване середовище
розробки).
SDK – Software Development Kit (набір засобів розробки програмного
забезпечення).
URL – Uniform Resource Locator (однорідний локатор ресурсу).
LAN – Local Area Network (локальна мережа).
HTTP – Hypertext Transfer Protocol (протокол передачі гіпертексту).
HTTPS – Hypertext Transfer Protocol Secure (захищений протокол передачі
гіпертексту).
SSID – Service Set Identifier (ідентифікатор набору служби).
VPN – Virtual Private Network (віртуальна приватна мережа).
76
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ
1. Tripathy B. Іnternet of Things (IoT): TeChnologies, AppliCations,
Challenges and Solutions” / J. Anuradha. – Florida: CRC Press, 2017. – 334
p.
2. Sutaria R. “Making sense of interoperability: Protocols and Standardization
initiatives in IoT,” / Raghunath G. - International Conference on Recent
Trends in Communication and Computer Networks – ComNet 2013, 2013.
3. Lake, D. “The Internet of Things,” / Rayes A., and Morrow M. - The
Internet Protocol Journal, Volume 15, No. 3, September 2012.
4. Ferguson J. “Wireless Communication with Implanted Medical Devices
Using the Conductive Properties of the Body,” / Redish A. - Expert Review
of Medical Devices, Volume 6, No. 4, 2011.
5. Dickson B. How to prevent your IoT devices from being forced into botnet
bondage [Електронний ресурс] / Dickson. – 2015. – Режим доступу до
ресурсу: https://techcrunch.com/2016/08/16/how-to-prevent-your-iot-
devices-from-being- forced-into-botnet-slavery/.
6. Liu, Y. “Study on smart home system based on internet of things
technology.” In Informatics and Management Science IV; Du, W., Ed.;
Springer: London, UK, 2013; Volume 207, 73–81p.
7. Maciej Kranz “Іnternet of Things (IoT): Technologies, Applications,
Challenges and Solutions” - Wiley, 2016, 272 p.
8. Klaus Schwab “The Fourth Industrial Revolutio” - Crown Business, 2016. -
192 p.
9. Bruce Sinclair “IoT Inc: How Your Company Can Use the Internet of
Things to Win in the Outcome Economy” - McGraw-Hill Education, 2017. -
304 p.
77
10. Scott Klein ”IoT Solutions in Microsoft's Azure IoT Suite: Data Acquisition
and Analysis in the Real World” / Mark Simms (with Frederik Johannsen) -
Apress, 2017. - 255 p.
11. Claire Rowland “Designing Connected Products: UX for the Consumer
Internet of Things” / Elizabeth Goodman, Martin Charlier, Ann Light -
O'Reilly Media, 2015.- 726 p.
12. Daniel Kellmereit ”The Silent Intelligence: The Internet of Things” / Daniel
Obodovski - DnD Ventures, 2013. - 252 p.
13. Maciej Kranz ”Building the Internet of Things: Implement New Business
Models, Disrupt Competitors, Transform Your Industry” - Wiley, 2016. -
272 p.
14. Peter Semmelhack ”Social Machines: How to Develop Connected Products
That Change Customers' Lives” - O'Reilly Media, 2013. - 176p.
15. Steve Sinclair ”IoT Inc.: How Your Company Can Use the Internet of
Things to Win in the Outcome Economy”/ Nancy Clements - McGraw-Hill
Education, 2016. - 304 p.
16. Chris Griffith ”Designing the Internet of Things” - Wiley, 2015. 320 p.
17. Adrian McEwen ”Designing the Internet of Things” / Hakim Cassimally-
Wiley, 2013. - 336 p.
18. A. Minoli ”IoT Risk Management for Connected Cars and Autonomous
Vehicles” - Wiley, 2020. - 312 p.
19. Qusay F. Hassan ”Blockchain for the Internet of Things: A Systematic
Literature Review” - Springer, 2020. - 97 p.
20. Antonio Linan Colina ”IoT Solutions in Microsoft's Azure IoT Suite: Data
Acquisition and Analysis in the Real World” / Antonio Guerrero-Ibanez,
Antonio Skarmeta - Apress, 2017. - 308 p.
ДОДАТОК А
«ЗАТВЕРДЖУЮ»
Завідувач кафедри ІБ та КІ
д.т.н., професор Віра БАБЕНКО
__________________
“___” _____________ 2023р.
Дослідження побудови комунікації пристроїв розумного будинку з
використанням протоколу передачі даних Zig-Bee
Специфікація
482.ЧДТУ.32282-01
Листів 2
Розробник ________________ Володимир КОРІНЕНКО
Керівник ________________ Віра БАБЕНКО
Черкаси 2023
2
482.ЧДТУ.32282-01
Позначення Найменування Примітка
Документація
482.ЧДТУ.32282-01 12 01 Текст програми
482.ЧДТУ.32282-01 34 01 Інструкція користувача
ДОДАТОК Б
Дослідження побудови комунікації пристроїв розумного будинку з
використанням протоколу передачі даних Zig-Bee
Текст програми
482.ЧДТУ.32282-01 12 01
Листів 13
Розробник ______________ Володимир КОРІНЕНКО
Черкаси 2023
2
482.ЧДТУ.32282-01 12 01
import { Equal } from 'typeorm';
import { Injectable, NotFoundException } from '@nestjs/common';
import { v4 as uuidv4 } from 'uuid';
import {
IPaginationMeta,
IPaginationOptions,
paginate,
Pagination
} from 'nestjs-typeorm-paginate';
import { RemoteCommandInterface } from './interfaces/remote-
command.interface';
import { RemoteCommand } from './remote-command.entity';
import { RemoteCommandRepository } from './remote-command.repository';
@Injectable()
export class RemoteCommandService {
constructor(private remoteCommandRepository: RemoteCommandRepository)
{}
async paginate(
options: IPaginationOptions<IPaginationMeta>,
deviceId
): Promise<Pagination<RemoteCommand>> {
return paginate<RemoteCommand>(this.remoteCommandRepository,
options, {
where: {
device: Equal(deviceId)
},
order: { id: 'DESC' }
});
}
async createCommand(
remoteCommand: Partial<RemoteCommandInterface>
): Promise<RemoteCommandInterface> {
return this.remoteCommandRepository.save({
uuid: uuidv4(),
command: remoteCommand.command,
3
482.ЧДТУ.32282-01 12 01
device: remoteCommand.device
});
}
async deleteCommand(uuid: string): Promise<void> {
const command = await this.remoteCommandRepository.findByUuid(uuid);
if (!command) {
throw new NotFoundException('Command not found');
}
this.remoteCommandRepository.delete(command);
}
async removeRemoteCommands(deviceId: number):
Promise<RemoteCommand[]> {
const commands = await this.remoteCommandRepository.findByDeviceId(
deviceId
);
this.remoteCommandRepository.remove(commands);
return commands;
}
async hasRemoteCommands(deviceId: number): Promise<boolean> {
const commandsCount = await
this.remoteCommandRepository.countByDeviceId(
deviceId
);
return commandsCount > 0;
}
}
import { Injectable } from '@nestjs/common';
import { DataSource, Equal, Repository } from 'typeorm';
import { RemoteCommand } from './remote-command.entity';
@Injectable()
export class RemoteCommandRepository extends Repository<RemoteCommand>
{
4
482.ЧДТУ.32282-01 12 01
constructor(private dataSource: DataSource) {
super(RemoteCommand, dataSource.createEntityManager());
}
findByUuid(uuid: string): Promise<RemoteCommand> {
return this.findOne({
where: { uuid }
});
}
findByDeviceId(deviceId: number): Promise<RemoteCommand[]> {
return this.find({
where: {
device: Equal(deviceId)
}
});
}
countByDeviceId(deviceId: number): Promise<number> {
return this.count({
where: {
device: Equal(deviceId)
}
});
}
}
import { Entity, Column, PrimaryGeneratedColumn, ManyToOne } from
'typeorm';
import { RemoteCommandEnum } from '@enums/remote-commands/command';
import { Device } from '@entities/device/device.entity';
import { RemoteCommandInterface } from './interfaces/remote-
command.interface';
@Entity()
export class RemoteCommand implements RemoteCommandInterface {
@PrimaryGeneratedColumn()
id: number;
5
482.ЧДТУ.32282-01 12 01
@Column({ type: 'varchar', length: 36, nullable: false, unique: true })
uuid: string;
@Column({
type: 'enum',
enum: RemoteCommandEnum
})
command: RemoteCommandEnum;
@ManyToOne(() => Device, (device) => device.id)
device: Device;
}
import { v4 as uuid } from 'uuid';
import { Injectable, NotFoundException } from '@nestjs/common';
import {
paginate,
Pagination,
IPaginationOptions,
IPaginationMeta
} from 'nestjs-typeorm-paginate';
import { MotionInterface } from './interfaces/motion.interface';
import { Motion } from './motion.entity';
import { MotionRepository } from './motion.repository';
@Injectable()
export class MotionService {
constructor(private motionRepository: MotionRepository) {}
async createMotion(
motion: Partial<MotionInterface>
): Promise<MotionInterface> {
return this.motionRepository.save({
uuid: uuid(),
urlPhoto: motion.urlPhoto,
urlVideo: motion.urlVideo,
device: motion.device
});
6
482.ЧДТУ.32282-01 12 01
}
async updateMotion(
motion: Partial<MotionInterface>,
motionId
): Promise<MotionInterface> {
const result = await this.motionRepository.update(
{ uuid: motionId },
motion
);
if (!result.affected) {
throw new NotFoundException('Motion not found');
}
return this.motionRepository.findByUuid(motionId);
}
async paginate(
deviceId: number,
options: IPaginationOptions<IPaginationMeta>
): Promise<Pagination<Motion>> {
return paginate<Motion>(this.motionRepository, options, {
relations: ['device'],
where: {
device: Equal(deviceId)
},
order: { id: 'DESC' }
});
}
}
import { Injectable } from '@nestjs/common';
import { DataSource, Repository } from 'typeorm';
import { Motion } from './motion.entity';
@Injectable()
export class MotionRepository extends Repository<Motion> {
constructor(private dataSource: DataSource) {
super(Motion, dataSource.createEntityManager());
}
7
482.ЧДТУ.32282-01 12 01
findByUuid(uuid: string): Promise<Motion> {
return this.findOne({
where: { uuid }
});
}
}
import {
Entity,
Column,
ManyToOne,
CreateDateColumn,
PrimaryGeneratedColumn,
UpdateDateColumn
} from 'typeorm';
import { Device } from './../device/device.entity';
import { MotionInterface } from './interfaces/motion.interface';
@Entity()
export class Motion implements MotionInterface {
@PrimaryGeneratedColumn()
id: number;
@Column({ type: 'varchar', length: 36, nullable: false, unique: true })
uuid: string;
@CreateDateColumn({ update: false })
createdAt: Date;
@UpdateDateColumn({ update: true })
updatedAt: Date;
@Column({ type: 'varchar', length: 255, nullable: true, unique: false })
urlPhoto: string;
@Column({ type: 'varchar', length: 255, nullable: true, unique: false })
urlVideo: string;
@ManyToOne(() => Device, (device) => device.id)
8
482.ЧДТУ.32282-01 12 01
device: Device;
}
import {
Injectable,
ConflictException,
NotFoundException
} from '@nestjs/common';
import {
paginate,
Pagination,
IPaginationOptions,
IPaginationMeta
} from 'nestjs-typeorm-paginate';
import { v4 as uuidv4 } from 'uuid';
import { FindOptionsWhere, Like } from 'typeorm';
import { LocationInterface } from './interfaces/location.interface';
import { Location } from './location.entity';
import { LocationRepository } from './location.repository';
@Injectable()
export class LocationService {
constructor(private locationRepository: LocationRepository) {}
async paginate(
options: IPaginationOptions<IPaginationMeta>,
search?: string
): Promise<Pagination<Location>> {
if (search) {
const validSearch = search.trim();
return paginate<Location>(this.locationRepository, options, {
where: {
address: Like(`%${validSearch}%`)
},
order: { id: 'DESC' }
});
}
9
482.ЧДТУ.32282-01 12 01
return paginate<Location>(this.locationRepository, options, {
order: { id: 'DESC' }
});
}
async getLocation(uuid: string): Promise<LocationInterface> {
const location = await this.locationRepository.findByUuid(uuid);
if (!location) {
throw new NotFoundException('Location not found');
}
return location;
}
createLocation(
location: Partial<LocationInterface>
): Promise<LocationInterface> {
return this.locationRepository.save({
uuid: uuidv4(),
name: location.name,
address: location.address,
pollNumber: location.pollNumber,
providerNumber: location.providerNumber
});
}
async updateLocation(
uuid: string,
location: Partial<LocationInterface>
): Promise<LocationInterface> {
const where: FindOptionsWhere<Partial<LocationInterface>> = { uuid };
const updateLocation = await this.locationRepository.findByUuid(uuid);
if (!updateLocation) {
throw new NotFoundException('Location not found');
}
await this.locationRepository.update(where, {
name: location.name,
10
482.ЧДТУ.32282-01 12 01
address: location.address,
pollNumber: location.pollNumber,
providerNumber: location.providerNumber
});
return this.locationRepository.findByUuid(uuid);
}
async deleteLocation(uuid: string): Promise<void> {
const location = await this.locationRepository.findByUuid(uuid);
if (!location) {
throw new NotFoundException('Location not found');
}
if (location.devices.length !== 0) {
throw new ConflictException(
'Unable to delete location with active devices'
);
}
const where: FindOptionsWhere<Partial<LocationInterface>> = { uuid };
await this.locationRepository.update(where, {
deletedToken: uuidv4(),
deletedAt: new Date()
});
}
}
import { Injectable } from '@nestjs/common';
import { DataSource, Repository } from 'typeorm';
import { Location } from './location.entity';
@Injectable()
export class LocationRepository extends Repository<Location> {
constructor(private dataSource: DataSource) {
super(Location, dataSource.createEntityManager());
}
findByUuid(uuid: string): Promise<Location> {
11
482.ЧДТУ.32282-01 12 01
return this.findOne({
where: {
uuid
},
relations: ['devices']
});
}
}
import {
Entity,
Column,
OneToMany,
CreateDateColumn,
DeleteDateColumn,
UpdateDateColumn,
PrimaryGeneratedColumn
} from 'typeorm';
import { Device } from './../device/device.entity';
import { LocationInterface } from './interfaces/location.interface';
@Entity()
export class Location implements LocationInterface {
@PrimaryGeneratedColumn()
id: number;
@Column({ type: 'varchar', length: 36, nullable: false, unique: true })
uuid: string;
@Column({ type: 'varchar', length: 120, nullable: false, unique: false })
name: string;
@Column({ type: 'varchar', length: 255, nullable: false, unique: false })
address: string;
@Column({ type: 'varchar', length: 13, nullable: false, unique: false })
pollNumber: string;
@Column({ type: 'varchar', length: 13, nullable: false, unique: false })
providerNumber: string;
12
482.ЧДТУ.32282-01 12 01
@CreateDateColumn({ update: false })
createdAt: Date;
@UpdateDateColumn({ update: true })
updatedAt: Date;
@OneToMany(() => Device, (device) => device.location)
devices: Device[];
@DeleteDateColumn()
deletedAt: Date;
@Column({ type: 'varchar', length: 36, nullable: false, default: '' })
deletedToken: string;
}
import {
PipeTransform,
Injectable,
ArgumentMetadata,
HttpException,
HttpStatus
} from '@nestjs/common';
import { validate, ValidationError } from 'class-validator';
import { plainToClass } from 'class-transformer';
@Injectable()
export class ValidationPipe implements PipeTransform {
async transform(value, { metatype }: ArgumentMetadata) {
if (!metatype || !this.toValidate(metatype)) {
return value;
}
const object = plainToClass(metatype, value);
const errors = await validate(object);
if (errors.length > 0) {
const messages: string[] = this.getMessages(errors);
throw new HttpException(
{
status: HttpStatus.UNPROCESSABLE_ENTITY,
13
482.ЧДТУ.32282-01 12 01
error: 'Unprocessable Entity',
message: messages.length === 1 ? messages[0] : undefined,
messages: messages.length > 1 ? this.getMessages(errors) : undefined
},
HttpStatus.UNPROCESSABLE_ENTITY
);
}
return value;
}
private getMessages(errors: ValidationError[] = []): string[] {
let messages: string[] = [];
errors.forEach((error) => {
messages = messages.concat(Object.values(error.constraints));
});
return messages;
}
private toValidate(metaType): boolean {
const types = [String, Boolean, Number, Array, Object];
return !types.includes(metaType);
}
}
ДОДАТОК В
Дослідження побудови комунікації пристроїв розумного будинку з
використанням протоколу передачі даних Zig-Bee
Інструкція користувача
482.ЧДТУ.32282-01 34 01
Листів 4
Розробник _______________ Володимир КОРІНЕНКО
Черкаси 2023
2
482.ЧДТУ.32282-01 34 01
Ця інструкція допоможе розгорнути систему розумного офісу на
сервері. Для цього буде використано попередньо розроблену систему, яка
включає хаби, датчики, сервер та клієнтський додаток.
Для початку потрібно обрати сервер з високою продуктивністю та
надійністю, здатний працювати відразу з декількома одночасними
з'єднаннями та обробляти дані в режимі реального часу.
Потрібно встановити операційну систему, яка найбільше підходить для
потреб. Linux-дистрибутиви, такі як Ubuntu Server або CentOS, є
популярними виборами. Забезпечити оновлення операційної системи та
встановити необхідні залежності, такі як Python, Node.js, та інші, залежно від
технологічних вимог.
Завантажити серверну частину програмного забезпечення на сервер.
Налаштувати конфігураційні файли згідно потреб, вказавши параметри
підключення до бази даних, ключі API та інші налаштування.
Доступ до бази даних є ключовим етапом у забезпеченні безпеки,
ефективності та вірогідності системи розумного офісу. Увійти в MongoDB і
створити користувача, який буде використовуватися для з'єднання з сервером
бази даних. Забезпечити цьому користувачеві відповідні права доступу.
use admin
db.createUser(
{
user: "yourUsername",
pwd: "yourPassword",
roles: [
{ role: "readWrite", db: "yourDatabase" }
]
}
3
482.ЧДТУ.32282-01 34 01
)
Встановити обмеження щодо того, з яких IP-адрес відбуватиметься
доступ до бази даних. Це додасть додатковий рівень безпеки.
security:
authorization: "enabled"
bindIp: 127.0.0.1,YourServerIP
Налаштування доступу до бази даних є критично важливим для
забезпечення правильної роботи системи та збереження конфіденційності
даних. Враховати принцип найменших привілеїв, щоб надати лише необхідні
права для безпечного функціонування системи.
Отримати та встановити SSL-сертифікат для забезпечення безпечної
комунікації з клієнтськими пристроями та хабами. Є кілька способів
отримати SSL-сертифікат, однак одним з найпоширеніших є використання
служби, такої як Let's Encrypt. Для отримання сертифіката від Let's Encrypt,
встановити їхній клієнт (Certbot) та використовувати його для генерації та
встановлення сертифіката.
sudo apt-get update
sudo apt-get install certbot
sudo certbot certonly --nginx
Слідкувати інструкціям Certbot для отримання та встановлення
сертифіката.
Після отримання сертифіката від Let's Encrypt, налаштувати Nginx для
використання цього сертифіката. Відредагувати конфігураційний файл
Nginx:
server {
listen 80;
server_name your_domain.com www.your_domain.com;
return 301 https://$host$request_uri;
4
482.ЧДТУ.32282-01 34 01
}
server {
listen 443 ssl;
server_name your_domain.com www.your_domain.com;
ssl_certificate /etc/letsencrypt/live/your_domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/your_domain.com/privkey.pem;
location / {
proxy_pass http://your_upstream;
}
}
Замінити your_domain.com на свій домен та вказати правильні шляхи
до сертифіката та приватного ключа.
Після внесення змін у конфігураційний файл, перезавантажити службу
Nginx, щоб зміни набрали чинності:
sudo systemctl reload nginx
Тепер сервер повинен використовувати SSL-сертифікат для
захищеного з'єднання.
Важливо налаштувати автоматичне оновлення сертифікатів для
уникнення проблем з їхнім закінченням строку. Використовувати Cron або
вбудовану можливість автоматичного оновлення Certbot:
sudo certbot renew --dry-run
Цей крок перевірить, чи правильно налаштовано автоматичне
оновлення. Після цих кроків сервер буде готовий приймати захищені SSL-
з'єднання через Nginx.