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

Files in This Item:
File Description SizeFormat 
1_ТИТУЛКА_Манько-merged.pdf
  Restricted Access
2.39 MBAdobe PDFView/Open Request a copy


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

Extracted text
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ
ФАКУЛЬТЕТ ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ І СИСТЕМ
КАФЕДРА ІНФОРМАЦІЙНОЇ БЕЗПЕКИ ТА КОМП’ЮТЕРНОЇ ІНЖЕНЕРІЇ
ПОЯСНЮВАЛЬНА ЗАПИСКА
до кваліфікаційної роботи бакалавра
на тему: «Система моніторингу стану якості
повітря в населеному пункті»
ЧДТУ.242042.004 ПЗ
Виконав: студент 4 курсу, групи КМ-2005
спеціальності 123 – «Комп’ютерна інженерія»
за освітньою програмою – «Комп’ютерні системи
та мережі»
Алан МАНЬКО
Керівник
д.т.н., професор
Віра БАБЕНКО
Рецензент
начальник відділу персоналу Черкаського
інституту пожежної безпеки імені Героїв
Чорнобиля НУЦЗ України, к.т.н., доцент
Віталій ЗАЖОМА
«ЗАХИСТ ДОЗВОЛЯЮ»
Завідувач кафедри ІБ та КІ
д.т.н., професор Віра БАБЕНКО
Черкаси 2024 року
Форма № Н-9.01
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ
Факультет: інформаційних технологій і систем
Кафедра: інформаційної безпеки та комп’ютерної інженерії
Освітньо-кваліфікаційний рівень: Бакалавр
Спеціальність 123 – Комп’ютерна інженерія
Освітня програма Комп’ютерні системи та мережі
«ЗАТВЕРДЖУЮ»
Завідувач кафедри ІБ та КІ
д.т.н., професор _____________ Віра БАБЕНКО
«28» лютого 2024 року
ЗАВДАННЯ
на кваліфікаційну роботу бакалавра студенту
Маньку Алану Алановичу
(прізвище, ім‘я, по батькові)
1. Тема роботи: Система моніторингу стану якості повітря в населеному пункті
Керівник роботи: д.т.н., професор Бабенко Віра Григорівна
(прізвище, ім’я, по батькові, науковий ступінь, вчене звання)
затверджені наказом університету від «26» лютого 2024 р. № 60/04
2. Строк подання студентом роботи:
3. Вихідні дані до роботи:
МікроконтролерESP32. Датчики показників якості повітря:аміак, дим, оксид вуглецю та
бензин. Середовище розробки: Arduino IDE. Мова програмування: С.Середовище зберігання та
обробки даних: хмарний сервер, MongoDB. Засоби розробки серверного додатку: фреймворк
Nest.js, платформа Node.js, технологія VPS.Технологія передачі даних між мікроконтролером і
сервером: протокол MQTT. Середовище розробки інтерфейсу користувача: фреймворк React.js.
Забезпечення надійності збереження даних – автоматичне резервне копіювання.
4. Зміст розрахунково-пояснювальної записки (перелік питань, що їх належить розробити):
Вступ
1. Аналіз предметної області та постановка задачі
2. Вибір технологій та інструментальних засобів
3. Розробка системи моніторингу стану якості повітря в населеному пункті
4. Захист системи моніторингу
Висновки
Список використаних джерел. Додатки
5. Перелік графічного матеріалу (з точним зазначенням обов’язкових креслень, плакатів):
1. Додаток А Специфікація
2. Додаток Б Текст програм
3. Додаток В Інструкція користувача
6. Консультанти розділів роботи:
Розділ Прізвище, ініціали Підпис, дата
консультанта завдання видав завдання прийняв
7. Дата видачі завдання: 28 лютого 2024 року
КАЛЕНДАРНИЙ ПЛАН
Термін
№ з/п Назва етапів роботи виконання Примітка
етапів роботи
1 Збір матеріалу 01.03 – 14.03 виконано
2 Обробка матеріалу 15.03 – 20.03 виконано
3 Обґрунтування актуальності виконання досліджень 21.03 – 25.03 виконано
4 Оцінка стану проблеми, виокремлення технічних виконано
задач, постановка задачі 26.03 – 01.04
5 Викладення сутності і результатів розробки 03.04 – 08.04 виконано
6 Практичне застосування результатів розробки 09.04 – 27.04 виконано
7 Оформлення результатів в пояснювальну записку 28.04 – 02.05 виконано
8 Подання роботи на відгук та рецензування 15.05 – 20.05 виконано
9 Обробка матеріалу 29.05 – 1.05 виконано
10 Обґрунтування актуальності виконання задач 15.05 – 20.05 виконано
Студент ___________________________ АланМАНЬКО
(підпис)
Керівник роботи ___________________________ Віра БАБЕНКО
(підпис)
АНОТАЦІЯ
Метою виконання даної кваліфікаційної роботи на здобуття освітнього
ступеня «бакалавр» є розробка системи моніторингу стану якості повітря в
населеному пункті.
Загальний обсяг роботи становить 79 сторінок. У роботі 14 рисунків, 1
таблиця. Під час виконання роботи використано 20 літературних джерел.
Основними завданнями кваліфікаційної роботи є розробка
мікроконтролерної системи моніторингу якості повітря на базі ESP32, яка
даватиме можливість контролювати основні показники якості повітря в місті.
Система є гнучка та масштабована, а модулі системи можна буде розміщувати в
різних частинах міста для більш точних локальних показників.
Стислий опис розділів кваліфікаційної роботи бакалавра складається з
аналізу предметної області та постановки задачі; вибору технологій та
інструментальних засобів; розробки мікроконтролерної системи моніторингу за
якістю повітря та реалізації технологій захистусистеми моніторингу.
Ключові слова: СИСТЕМА МОНІТОРИНГУ, ЯКІСТЬ ПОВІТРЯ,
СЕРВЕР,МІКРОКОНТРОЛЕРИ, ДАТЧИКИ, СЕРВЕРНЕ ПРОГРАМНЕ
ЗАБЕЗПЕЧЕННЯ, ЗАХИСТ ІНФОРМАЦІЇ, ПЕРЕДАЧА ДАНИХ
ANOTATION
The purpose of this qualification work for obtaining the bachelor's degree is a
development of a monitoring system the state of air quality in the settlement.
The total volume of work is 79 pages. The work contains 14 figures, 1 table. 20
literary sources were used to perform the work.
The main tasks of the qualification work are the development of an air quality
microcontroller monitoring system based on ESP32, which will provide an
opportunity to control air quality in the city. Where system modules can be placed in
different parts of the city, for more accurate local indicators.
A concise description of the sections of the bachelor's qualification work
consists of an analysis of the subject area and a statement of the problem; selection of
technologies and tools; development of air quality microcontrollermonitoring system
and implementation of monitoring system protection.
Keywords: MONITORING SYSTEM, AIR QUALITY, SERVER,
MICROCONTROLLERS, SENSORS, SERVER SOFTWARE, INFORMATION
PROTECTION, DATA TRANSFER
ЗМІСТ
ВСТУП..................................................................................................................... 4
1 АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ ТА ПОСТАНОВКА ЗАДАЧІ..................7
1.1 Аналіз існуючих систем ........................................................................... 7
1.2 Постановка задачі....................................................................................12
1.3 Висновки до розділу 1 ............................................................................ 15
2 ВИБІР ТЕХНОЛОГІЇ ТА ІНСТРУМЕНТАЛЬНИХ ЗАСОБІВ РОЗРОБКИ
СИСТЕМИ............................................................................................................. 16
2.1 Огляд існуючих технологій....................................................................16
2.2 Обґрунтування вибору............................................................................24
2.3 Висновки до розділу 2 ............................................................................ 30
3 РОЗРОБКА СИСТЕМИ МОНІТОРИНГУ СТАНУ ЯКОСТІ ПОВІТРЯ В
НАСЕЛЕНОМУ ПУНКТІ.....................................................................................31
3.1 Структура системи..................................................................................31
3.2 Опис функцій системи............................................................................38
3.3 Технічні вимоги для роботи з системою...............................................42
3.4 Оцінка ефективності ...............................................................................45
3.5 Висновки до розділу 3 ............................................................................ 49
4 ЗАХИСТ АВТОМАТИЗОВАНОЇ СИСТЕМИ................................................ 50
4.1 Огляд існуючих рішень..........................................................................50
4.2 Реалізація захисту користувачів............................................................55
4.3 Висновки до розділу 4 ............................................................................ 58
ВИСНОВКИ...........................................................................................................59
ЧДТУ.242042.004 ПЗ
Змн. Арк. № докум. Підпис Дат
РозрКобив Манько А.А. а Система моніторингу Літ. Лист Листів
Керівник Бабенко В.Г. 2 79
Рецеанзент Зажома В.М. стану якості повітря в
Н.Контроль Гресько С.О. населеному пункті Кафедра ІБ та КІ
Затвфердив Бабенко В.Г. Пояснювальна записка гр. КМ-2005
е
д
р
а
К
К
-
0
6
ДОДАТКИ:
А – 482.ЧДТУ.42042-01 Система моніторингу стану якості повітря в
населеному пункті
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ……………………………...………..78
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 3
а
ВСТУП
Актуальність теми. Зростаюче забруднення повітря стає серйозною
проблемою для здоров'я людей та екосистем. Із загрозами, такими як зміна
клімату, здоров'я та якість життя, моніторинг та аналіз якості повітря стає
необхідним інструментом для реагування та прийняття ефективних заходів.
Впровадження систем моніторингу дозволяє оперативно виявляти
забруднення та приймати необхідні заходи для збереження чистоти повітря,
забезпечуючи здоров'я та комфорт мешканців. Застосування сучасних
технологій, таких як датчики моніторингу повітря, аналітичні програми та
системи передачі даних, дозволяє точно визначати рівень забруднення та
його джерела.
На сьогоднішній день існує кілька аналогів систем моніторингу якості
повітря, які використовуються по всьому світу. Такі системи пропонують
моніторинг якості повітря в реальному часі, інтерактивні карти забруднення,
а також прогнози якості повітря. Вони надають дані про рівні пилу, часток
PM2.5, PM10, а також інших забруднювачів.
Забруднене повітря може призводити до серйозних проблем зі
здоров'ям, таких як захворювання дихальних шляхів, серцево-судинні
захворювання та навіть рак. Моніторинг допомагає ідентифікувати зони з
високим ризиком і вживати заходи для його зменшення. Також деякі
забрудники повітря, такі як парникові гази, сприяють зміні клімату.
Моніторинг допомагає визначити джерела цих газів та розробляти стратегії
для їх зменшення, сприяючи таким чином більш стійкому кліматичному
майбутньому.
Виходячи з вищесказаного, можна зробити висновок, що дана тема, яка
стосується розробки системи моніторингу стану якості повітря в населеному
пункті є актуальною.
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 4
а
Метою кваліфікаційної роботи є розробка системи моніторингу
якості повітря на базі мікроконтролера ESP32, яка даватиме можливість
контролювати якість повітря. Крім того, модулі системи можна буде
розмістити в різних частинах міста, для отримання більш точних локальних
показників.
Для досягнення сформульованої мети необхідно вирішити такі задачі:
1. Провести огляд існуючих систем моніторингу якості повітря,
визначити їхні переваги та недоліки, а також ідентифікувати можливості для
їх покращення;
2. Обґрунтувати доцільність розробки нової системи та надати
теоретичну оцінку ефективності нової системи;
3. Сформувати набір вимог до нової системи;
4. Створити програмне забезпечення для збору, обробки та аналізу
даних про якість повітря, що дозволить ефективно використовувати
отриману інформацію;
5. Оцінити складність реалізації системи моніторингу якості повітря.
На даний момент існує багато джерел інформації, в яких автори
вивчають тему моніторингу якості повітря, наприклад "Моніторинг, оцінка та
управління якістю повітря" під редакцією Б. Гариглиона та ін. Ця книга
пропонує широкий огляд методів моніторингу якості повітря, а також
методів аналізу даних та управління. "Забруднення повітря та його вплив на
здоров'я" автора Стефана Труделя книга, яка дає огляд впливу забруднення
повітря на здоров'я людей та екосистеми, включаючи методи моніторингу та
оцінки ризиків. Стаття "Моніторинг якості атмосферного повітря для оцінки
впливу на здоров'я" автора Шонгхванга Лу представляє сучасні методи
моніторингу якості повітря та їх використання в оцінці впливу на здоров'я.
Одержані в кваліфікаційній роботі результати мають практичне
значення. Моніторинг дозволяє виявляти рівні забруднення повітря, які
можуть бути шкідливими для здоров'я людей. Також виявляти джерела
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 5
а
забруднення повітря та їхні впливи на природні екосистеми. Це дозволяє
приймати заходи для збереження біорізноманіття та екологічної рівноваги,
визначити тенденції забруднення, ідентифікувати джерела забруднення та
розробляти стратегії для ефективного управління ресурсами та заходами для
зменшення забруднення.
Отже, система моніторингу якості повітря в населеному пункті відіграє
важливу роль щодо збереження здоров'я людей, екологічного стану довкілля
та створенні сталого та здорового середовища для мешканців.
Кваліфікаційна робота складається з 4-х розділів, у яких подається
інформація про обрану предметну область дослідження та про постановку
проблеми; огляд існуючих технологій, за допомогою яких можна реалізувати
подібну систему та обґрунтування вибору технології для її реалізації;
розробку системи: відображення структури системи, опис функцій кожної
частини системи, технічні вимоги до системи, а також практична оцінка
ефективності системи; розробка захисту інформації для мікроконтролерної
системи.
Список літератури, використаної під час написання кваліфікаційної
роботи, досить добре розкриває основні методики та підходи для розробки
подібних автоматизованих систем.
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 6
а
1 АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ ТА ПОСТАНОВКА ЗАДАЧІ
1.1 Аналіз існуючих систем
В Україні показники якості повітря збираються за допомогою мережі
моніторингових станцій, розташованих у різних регіонах країни. Ці станції
обладнані різноманітними датчиками, які вимірюють рівні різних
забруднювачів у повітрі, таких як оксиди азоту (NOx), оксиди сірки (SOx),
частки PM2.5 та PM10, бензопірен, бензол, толуен тощо.
Отримані дані передаються до центральних баз даних для обробки та
аналізу. Інформація про рівень забруднення повітря є доступною для
громадськості через спеціальні веб-портали та мобільні додатки.
У деяких випадках також застосовуються мобільні моніторингові
станції, які можуть бути розміщені в різних точках міста або регіону для
отримання більш детальної інформації про якість повітря в конкретних
місцях, таких як центри міст, промислові зони або екологічно чутливі
зони [1].
Ці дані мають велике значення для прийняття рішень у сферах охорони
здоров'я, екології та громадського благополуччя, а також для розробки та
впровадження програм та стратегій зменшення забруднення повітря та
покращення якості довкілля.
У різних країнах можуть бути різні агенції або установи, які
відповідають за моніторинг якості повітря та надання інформації про рівень
забруднення.
Державні агентства з охорони навколишнього середовища часто
відповідають за проведення моніторингу якості повітря на національному
рівні та надання інформації громадськості. Прикладом є Управління з
охорони навколишнього середовища в США (EPA), Європейське агентство з
довкілля (EEA) тощо.
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 7
а
У деяких країнах моніторинг може здійснюватися на місцевому рівні
муніципалітетами або регіональними установами з охорони навколишнього
середовища. Університети та дослідні інститути можуть також брати участь
та проводити наукові дослідження в цій галузі. Деякі неприбуткові
організації та громадські ініціативи можуть також займатися моніторингом
якості повітря та надавати інформацію громадськості.
Ці агентства та організації зазвичай співпрацюють між собою та з
іншими зацікавленими сторонами для забезпечення надійності та
об'єктивності інформації щодо якості повітря [2].
Забруднення повітря є серйозною проблемою, яка негативно впливає на
здоров'я людей і навколишнє середовище. У 2020 році забруднення повітря
спричинило загибель близько 7 мільйонів людей у всьому світі [3].
У відповідь на цю проблему команда вчених, екологів, розробників та
студентів створила екосистему моніторингу якості повітря YourAirTest.
YourAirTest – це науковий стартап, що моделює шкідливі викиди з
заводів та пожеж (PM2.5, PM10, O3, NO2, SO2, CO) для моніторингу якості
повітря. Прогнозує забруднювачі, моделює викиди та надихає на зміни
заради чистого повітря.
Кожен відвідувач сайту yourairtest.com має можливість побачити
актуальний стан повітря за своїм місцем розташування або у 100 країнах
світу, зображено на рис. 1.1.
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 8
а
Рисунок 1.1 – Зовнішній вигляд сервісу YourAirTest
Також візуалізуються повітряні потоки, які, в найближчому
майбутньому, стануть прогнозом забруднення повітря. Є легкий доступ до
візуальної інформації, детальної інформації про проект та відповіді на
найчастіші запитання. Мобільний додаток розроблений з метою зменшення
впливу повітря низької якості на здоров'я людей. Надає точні дані про 6
ключових забруднювачів: тверді частинки PM2.5, тверді частинки PM10, O3
(озон), NO2 (діоксид азоту), SO₂ (діоксид сірки) та CO (оксид вуглецю) у
необхідному форматі (U.S.AQI та EAQI) [4]. Також додано прогноз погоди.
YourAirTest використовує унікальну систему моніторингу повітря в
режимі реального часу, яка збирає, аналізує та перевіряє тисячі джерел даних
про якість повітря, які здебільшого надходять від наземних моніторингових
станцій, які надаються урядом, неурядовими організаціями та приватними
особами. Наземні станції дають дуже точні та достовірні дані про якість
повітря. Якщо у певній місцевості немає подібних станцій і не надходить
запит на надання інформації про якість повітря стосовно цього місця, може
використовуватися дані з обробки супутникових знімків та математичного
моделювання результатів, а також дані погодних моделей.
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 9
а
SaveEcoBot – єдина в Україні екологічна система, яка поєднує дані про
поточний стан довкілля, про забруднення, забруднювачів та інструменти
захисту довкілля. Мета покращити якість повітря в країнах, що
розвиваються, шляхом підвищення рівня екологічної обізнаності громадян за
допомогою надання їм безкоштовного та легкого доступу до індексу якості
повітря та інших публічних екологічних даних.
Рисунок 1.2 – Зовнішній вигляд сервісу SaveEcoBot
На сайті можна знайти інтерактивну карту радіаційного фону та
детальну інформацію про стан радіаційного фону в областях та населених
пунктах. Також доступна карта якості повітря з відображенням напрямку та
швидкості вітру, інформація про якість повітря з кожного поста моніторингу
та дані по населених пунктах. Додатково на сайті розміщена аналітика та
карта пожеж України з деталями по кожному з регіонів, а також аналітика
екологічних податків та статистика результатів роботи екоінспекції.
Oxygen – універсальна станція моніторингу якості повітря. Це
пристрій, який дозволяє здійснювати контроль та реєстрацію стану повітря, а
саме показники температури, вологості, концентрації пилу PM2.5 і PM10, CO
(Чадний газ), NO2 (Оксид азоту) , NH3 (Аміак) в режимі реального часу.
Модуль є економічно ефективним інструментом, що задовольняє потреби
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 10
а
всіх зацікавлених в підтримці належного рівня навколишнього середовища
[5]. Показник PM 2.5 відображає концентрацію твердих частинок діаметром
до 2.5 мікрометра. Показник PM 10 відображає концентрацію твердих
частинок діаметром до 10 мікрометрів. Зовнішній вигляд сервісу Oxygen
зображено на рисунку 1.3.
Рисунок 1.3 – Зовнішній вигляд сервісу Oxygen
На відміну від традиційних пиломірів Oxygen станції надають нові
можливості оцінки якості повітря за такими показниками: зважені частинки
РМ10 і РМ2.5, азоту діоксид, вуглецю оксид, аміак. Ці показники
забруднюючих речовин входять в пріоритетний список "А", щодо яких
проводиться оцінювання якості повітря згідно з новим Порядком державного
моніторингу в сфері охорони атмосферного повітря (ПКМУ від 14 серпня
2019 р. № 827).
Розширені функціональні можливості дозволять не тільки отримувати
оперативні дані про якість атмосферного повітря, а й накопичувати великі
дані для оцінки і прогнозування індексів забруднення і ризиків для здоров'я
населення.
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 11
а
Аналіз існуючих систем моніторингу стану якості повітря в населених
пунктах виявляє різноманітність підходів та технологій, які застосовуються
для збору та аналізу даних. Деякі системи базуються на стаціонарних
моніторах, розміщених у стратегічних точках міста, що забезпечують
постійний моніторинг основних забруднювачів повітря. Інші системи
використовують мобільні датчики, які можуть бути розміщені в різних
точках для отримання більш детальної інформації про якість повітря в
конкретних місцях. Деякі системи інтегрують дані з різних джерел, таких як
монітори стану довкілля, метеорологічні станції та супутникові
спостереження, для отримання більш повного зображення стану повітряного
середовища. Важливим аспектом аналізу є також доступність та зрозумілість
інформації для громадськості та зацікавлених сторін. Це дозволяє
громадянам та владі приймати обґрунтовані рішення щодо заходів з охорони
навколишнього середовища та здоров'я.
1.2 Постановка задачі
Один із важливих показників, який буде мати система моніторингу
якості повітря, – це рівень концентрації твердих часток PM2.5 та PM10 у
повітрі. Ці частки є основними забруднювачами повітря та можуть мати
серйозний вплив на здоров'я людей, особливо на легені та серце. Моніторинг
рівня цих часток дозволить вчасно виявляти забруднені зони та приймати
заходи для зменшення впливу на здоров'я громадян.
Індекс якості повітря – це показник, який використовується урядовими
установами для інформування громадськості про рівень забруднення повітря
у конкретний момент часу. У кожній країні існують власні показники якості
повітря, які відповідають різним національним стандартам і враховують
конкретні умови та проблеми країни.
Розрахунок індексу якості повітря вимагає середніх значень
концентрації забруднювальних речовин за визначений період, отриманих з
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 12
а
моніторингу довкілля або моделювання атмосферної дисперсії. Ці значення
об'єднуються з даними про тривалість впливу, утворюючи дозу
забруднювальних речовин у повітрі. Потенційні наслідки для здоров'я
встановлюються через епідеміологічні дослідження. Індекс якості повітря
зазвичай розділяється на діапазони, кожному з яких присвоюється
ідентифікатор, код кольору та рекомендації щодо охорони здоров'я.
Збільшення індексу може спричинити зростання викидів в атмосферу,
зокрема під час годин пік. Умови стагнації повітря, викликані антициклоном
або температурною інверсією, часто призводять до високих концентрацій
забруднювальних речовин. У такі дні можуть бути рекомендовані заходи для
захисту здоров'я, такі як уникання зовнішніх навантажень, добровільні акції
зі скорочення викидів або використання захисних масок. Більшість
шкідливих речовин у повітрі не враховуються в індексі якості повітря, проте
багато країн відслідковують шість основних забруднювачів повітря, таких як
діоксид сірки (SO2), тверді та дрібні частки (PM10, PM2.5), діоксид азоту
(NO2), оксид вуглецю (CO) та озон (O3), враховуючи їхні впливи при
розрахунку індексу.
Вимірювання якості повітря має велике значення для здоров'я та
безпеки громадян. Розуміння рівня забруднення допомагає людям приймати
обґрунтовані рішення щодо свого здоров'я та зменшення впливу шкідливих
речовин на нього.
Високий рівень забруднення повітря може призвести до серйозних
проблем з дихальною системою, серцем та іншими органами. Знання про
якість повітря дозволяє людям уникати небезпечних ситуацій та приймати
заходи для захисту свого здоров'я.
Люди з алергіями, астмою та іншими респіраторними захворюваннями
можуть вчасно реагувати на погіршення якості повітря, носячи захисні маски
або уникнувши вуличних прогулянок у періоди підвищеного забруднення.
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 13
а
Вимірювання якості повітря також допомагає визначити періоди
підвищеного ризику для громадян. Наприклад, коли рівень забруднення
надто великий, рекомендується утримуватися від активних фізичних
навантажень на вулиці або уникати відкривання вікон у будинках.
Інформація про якість повітря сприяє поширенню екологічної
свідомості серед населення. Вона може стимулювати громадян до участі в
заходах зі зменшення забруднення та впливати на прийняття рішень владою з
питань охорони навколишнього середовища.
Отже, вимірювання якості повітря не лише дозволяє реагувати на
потенційно небезпечні ситуації, але і сприяє підвищенню загальної якості
життя та здоров'я населення.
Розробка системи моніторингу та покращення якості повітря можуть
значно покращити якість життя громадян міста з кількох причин:
1. Покращення якості повітря допомагає зменшити ризик розвитку
респіраторних захворювань, алергій та інших хвороб, пов'язаних із
забрудненням повітря. Це сприяє покращенню загального здоров'я населення
та зниженню витрат на медичне обслуговування;
2. Чисте повітря створює комфортніші умови для проживання та
роботи. Люди можуть насолоджуватися свіжим повітрям без страху за своє
здоров'я та комфорту;
3. Краща якість повітря може позитивно впливати на продуктивність
праці та активність громадян. Люди, які працюють та живуть в чистому
середовищі, частіше відчувають себе бадьорими та енергійними;
4. Міста з чистим повітрям приваблюють більше туристів та інвесторів.
Це може сприяти розвитку туристичного та економічного потенціалу міста,
створенню нових робочих місць та збільшенню доходів місцевого населення.
Отже, розробка та впровадження системи моніторингу якості повітря
може принести значну користі для життя та здоров'я громадян, а також
сприяти розвитку міста та його економіки.
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 14
а
1.3 Висновки до розділу 1
Можна зробити висновок, що розробка та впровадження системи
моніторингу якості повітря в місті є критично важливим кроком для
покращення якості життя громадян. Ця система не лише допомагає вчасно
виявляти та уникати небезпечних рівнів забруднення повітря, але й сприяє
підвищенню здоров'я та безпеки населення, створенню комфортного
середовища для проживання та роботи, а також залученню туристів та
інвесторів. Чисте повітря є важливою складовою здорового та процвітаючого
міста, і система моніторингу стану його якості є ключовим інструментом у
досягненні цієї мети.
У ході аналізу було розглянуто три інноваційні системи: YourAirTest,
SaveEcoBot та Oxygen. YourAirTest – це науковий стартап, який прогнозує
шкідливі викиди з заводів та пожеж для моніторингу якості повітря.
SaveEcoBot надає інформацію про екологічні проблеми та способи їх
вирішення. Oxygen, з свого боку, пропонує інноваційні рішення для
покращення якості повітря у містах. Кожна з цих систем відіграє важливу
роль у забезпеченні чистого та безпечного повітря для мешканців міст,
сприяючи покращенню якості життя та створенню здорового та сталого
середовища проживання.
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 15
а
2 ВИБІР ТЕХНОЛОГІЇ ТА ІНСТРУМЕНТАЛЬНИХ ЗАСОБІВ
РОЗРОБКИ СИСТЕМИ
2.1 Огляд існуючих технологій
На сьогоднішній день існує велика кількість різних типів датчиків для
вимірювання якості повітря. Ці датчики можуть вимірювати різні параметри
повітря, такі як концентрація різних забруднювачів (наприклад, PM2.5,
PM10, NO2, SO2, CO, O3), температура, вологість, атмосферний тиск та інші.
Датчики можуть бути встановлені на стаціонарних моніторах,
розташованих по всьому місту, або бути портативними, що дозволяє
громадянам самостійно вимірювати якість повітря в конкретних місцях.
Деякі датчики підключені до Інтернету, що дозволяє в реальному часі
моніторити дані та надавати інформацію користувачам через мобільні
додатки або веб-портали.
Завдяки розвитку технологій, датчики стають все більш доступними та
дешевшими, що сприяє їх широкому поширенню та використанню.
Одним з таких є модуль датчика якості повітря MQ-135 призначений
для визначення вмісту та кількості шкідливих та небезпечних газів у повітрі,
таких як: NH3, NOx, пари спирту, бензину, диму, CO2 і т.д. зображений на
рисунку 2.1.
Він побудований на основі датчика MQ135. На платі модуля
передбачений компаратор для визначення порогового значення концентрації
шкідливих речовин [6]. Поріг спрацювання встановлюється потенціометром.
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 16
а
Рисунок 2.1 – Модуль датчика якості повітря MQ-135
Модуль MQ-2 представляє собою датчик диму, що розташований на
платі з потенціометром та 4 виводами. Він служить для виявлення горючого
газу та диму, зображений на рисунку 2.2.
Рисунок 2.2 – МодульMQ-2 датчик диму
Детектований газ включає горючий газ та дим. Діапазон чутливості
становить 300-10000 ppm, з опором чутливого елемента від 1 до 20 кОм при
50 ppm толуолу. Датчик налаштований на виявлення ізобутану з
концентрацією 1000 ppm. Час відгуку становить не більше 10 секунд.
Чутливість – більше 5 секунд. Опір нагрівача - 31Ω ± 3Ω, струм нагрівача –
не більше 180 мА, напруга нагрівача – 5 В ± 0,2 В, потужність нагрівача – не
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 17
а
більше 900 мВт, напруга схеми – не більше 24 В. Стандартні робочі умови:
температура від -10 до +50°C, вологість – не більше 95% RH, концентрація
кисню – 21%. Умови зберігання: температура від -20 до +70°C, вологість – не
більше 70% RH. Конфігурація може бути типу A або B (металевий або
пластиковий корпус) [7].
Датчик кисню Asair AO-03 (0-25%) він призначений для вимірювання
вмісту кисню в повітрі в діапазоні від 0% до 25%, зображений на рисунку 2.3.
Рисунок 2.3 – Датчик кисню Asair AO-03
Є електрохімічним типом датчика з вихідним сигналом 0.1 мА (±0.03).
Він має лінійний вихід у діапазоні від 0 до 30% O2 та нелінійний вихід у
діапазоні від 30 до 100% O2. Час відгуку становить менше 15 секунд, а
діапазон робочих температур від 0 до 50°C. Датчик працює при
атмосферному тиску з допустимим відхиленням ± 20%. Робочий діапазон
вологості складає 0 до 99% (RH без конденсату).
Датчик якості повітря MICS5524 TVOC призначений для виявлення в
повітрі пар різних речовин, таких як етанол (від 10 до 500 ppm), CO (від 1 до
1000 ppm), водень (від 1 до 1000 ppm), аміак (від 1 до 500 ppm), а також газів
метану, бутану та ізопропану (>1000 ppm) %, зображений на рисунку 2.4.
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 18
а
Рисунок 2.4 – Датчик якості повітря MICS5524 TVOC
Проте датчик не повідомляє про концентрацію виявлених речовин,
оскільки будь-яка з них суттєво погіршує якість повітря. Модуль живиться
стандартною напругою для мобільних пристроїв 5 В. Зазвичай цей датчик
використовується у побутових пристроях і не призначений для медичних або
промислових застосувань [8]. Важливо пам'ятати, що всі газові датчики
потребують калібрування для забезпечення точності вихідних даних.
Принцип роботи датчика полягає в зміні його внутрішнього опору, який
реагує на зміни концентрації цільових газів.
Модуль якості повітря ZP07-MP503-4 використовує вдосконалений
товстоплівковий напівпровідниковий датчик газу%, зображений на рисунку
2.5.
Рисунок 2.5 – Модуль якості повітря ZP07-MP503-4
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 19
а
Цей датчик має надзвичайно високу чутливість до летких органічних
газів, таких як формальдегід, бензол, окис вуглецю, аміак, водень, алкоголь,
сигаретний дим та ароматизатори. Після налагодження, калібрування та
старіння модуль володіє високою узгодженістю та надзвичайною чутливістю.
Він оснащений низьким енергоспоживанням, функцією автоматичного
визначення прогріву (від 10 с до 3 хв), системою самодіагностики
несправностей датчика, що забезпечує його відмінну довготривалу
стабільність. Цей модуль забезпечує високу собівартість та має тривалий
термін служби. Він застосовується в різних галузях, включаючи машини для
очищення повітря, системи вентиляції свіжого повітря, інтелектуальні
вбудовані стелі, монітори якості повітря, вентилятори, кондиціонери та інші
системи виявлення та очищення повітря.
Мікроконтролери Arduino чудово підходять для створення систем
моніторингу якості повітря. Arduino пропонує різні моделі, які можуть бути
використані для зчитування даних з різних сенсорів, таких як датчики газів,
температури, вологості та інших параметрів, які визначають якість повітря.
Мають вбудовані аналогово-цифрові та цифро-аналогові конвертери,
що дозволяє підключати різні типи сенсорів. Завдяки різним
розширювальним модулям та бібліотекам, доступним для Arduino, можна
легко реалізувати зчитування даних та їх обробку.
Крім того, Arduino має простий інтерфейс програмування, що робить
його доступним для початківців. Велика спільнота розробників та наявність
великої кількості прикладів та бібліотек допомагають швидко розробляти
програмне забезпечення для систем моніторингу якості повітря.
ESP8266 – це мікроконтролер з вбудованим модулем Wi-Fi, який
здатен працювати в якості самостійного мікроконтролера або як модуль, що
забезпечує можливість підключення до мережі Wi-Fi. Він використовується
для реалізації різноманітних IoT (Internet of Things) проектів, включаючи
системи моніторингу якості повітря, зображений на рисунку 2.6.
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 20
а
Рисунок 2.6 – Мікроконтролер ESP8266
ESP8266 має потужний 32-бітний процесор, вбудовану пам'ять для
зберігання програмного забезпечення та даних, а також вбудований Wi-Fi
модуль, що робить його ідеальним вибором для створення систем
моніторингу якості повітря, які потребують підключення до мережі Інтернет.
ESP8266 має велику спільноту розробників та підтримується різними
інтегрованими середовищами розробки, такими як Arduino IDE, MicroPython
та NodeMCU Lua, що спрощує розробку програмного забезпечення для
нього.
Таким чином, ESP8266 є дуже потужним та універсальним
мікроконтролером, який може бути використаний для створення систем
моніторингу якості повітря, забезпечуючи зручний доступ до мережі Wi-Fi та
високу продуктивність.
ESP32 мікроконтролер, що володіє вбудованим модулем Wi-Fi та
Bluetooth. Він є наступником ESP8266 і має значно більше можливостей.
ESP32 забезпечує швидке підключення до бездротової мережі і може
працювати в якості основного мікроконтролера або як частина складної
системи IoT, зображений на рисунку 2.7.
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 21
а
Рисунок 2.7 – ESP32 мікроконтролер
Основні характеристики ESP32 включають потужний двохядерний
процесор, більшу кількість вбудованої пам'яті, а також підтримку різних
інтерфейсів, таких як SPI, I2C, UART тощо [9]. Крім того, ESP32 може
працювати в режимі низького споживання енергії, що робить його ідеальним
вибором для батарейних пристроїв та систем з живленням від акумуляторів.
ESP32 підтримується різними середовищами розробки, такими як
Arduino IDE, MicroPython, ESP-IDF (Espressif IoT Development Framework) та
іншими, що дозволяє розробникам вибрати найбільш зручне середовище для
розробки програмного забезпечення для своїх проектів [10].
Передача інформації від мікроконтролера до серверу може відбуватися
за допомогою різних протоколів, серед яких HTTP, MQTT та UDP.
HTTP є одним з найпоширеніших протоколів для передачі даних у
мережі Інтернет. Використовується для відправки запитів від клієнтів до
серверів та отримання відповідей назад. У випадку мікроконтролерів, вони
можуть відправляти HTTP-запити на веб-сервер, який обробляє їх та зберігає
отримані дані. Цей підхід зручний для використання веб-серверів або
хмарних сервісів для зберігання даних.
MQTT – легкий та ефективний протокол, розроблений для IoT-
пристроїв. Він ґрунтується на моделі "видавець-підписник" та дозволяє
встановлювати зв'язок між багатьма пристроями та сервером через
посередника, відомого як брокер. Мікроконтролер може надсилати
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 22
а
повідомлення на брокер, а потім інші пристрої або сервер можуть
підписатися на ці повідомлення для отримання оновлень. MQTT особливо
підходить для великої кількості пристроїв, що надсилають дані в реальному
часі.
UDP – це простий протокол без з'єднання, який передає дані у вигляді
датаграм без підтвердження доставки. Він широко використовується для
передачі даних в режимі реального часу, таких як аудіо та відео потоки або
дані сенсорів у IoT пристроях [11] . Мікроконтролер може використовувати
UDP для відправки даних на сервер, але в цьому випадку слід враховувати
втрати пакетів, оскільки UDP не гарантує доставку даних.
Кожен з цих протоколів має свої переваги та недоліки, і вибір
конкретного залежить від ваших потреб, особливостей проекту та
характеристик мережі.
Технології розробки серверного програмного забезпечення включають
PHP, Java, Node.js та Python, кожна з яких має свої унікальні особливості та
використання.
PHP є однією з найпопулярніших мов програмування для веб-
розробки. Вона широко використовується для створення динамічних веб-
сайтів та взаємодії з базами даних. PHP легко інтегрується з великою
кількістю баз даних, веб-серверів та інших технологій, що робить його
популярним вибором для розробки веб-додатків.
Java є потужною та універсальною мовою програмування, яка
використовується для створення різноманітних програм, включаючи серверні
додатки. За допомогою Java можна розробляти масштабовані та надійні веб-
додатки, які легко масштабувати та підтримувати.
Node.js є середовищем виконання JavaScript, яке дозволяє
використовувати JavaScript для розробки серверного програмного
забезпечення. Він забезпечує швидкий та ефективний спосіб створення
масштабованих веб-додатків та API, особливо для реал-тайм додатків.
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 23
а
Python є простою та потужною мовою програмування, яка широко
використовується для розробки різноманітних програм, включаючи серверне
програмне забезпечення. Він володіє великою кількістю бібліотек та
фреймворків, що сприяє швидкому розробленню та підтримці веб-додатків.
Технології збереження даних з датчиків включають MySQL та
MongoDB, кожна з яких має свої особливості та використання.
MySQL – це реляційна база даних, яка використовує мову
структурованих запитів (SQL) для взаємодії з даними. Вона добре підходить
для збереження структурованих даних, таких як дані з датчиків, де важливо
зберігати інформацію в табличній формі з реляціями між таблицями [12].
MySQL є надійним та широко використовуваним рішенням для збереження
даних у веб-додатках та IoT системах.
MongoDB – це документо-орієнтована база даних, яка зберігає дані у
вигляді JSON-подібних документів з динамічною схемою. Вона дозволяє
зберігати неструктуровані або напівструктуровані дані, такі як дані з
датчиків, в гнучкому та масштабованому форматі [13]. MongoDB особливо
підходить для сенсорних даних та IoT систем, де може виникати потреба у
швидкому та гнучкому збереженні даних без жорстких вимог до схеми.
2.2 Обґрунтування вибору
Система моніторингу стану якості повітря в населеному пункті відіграє
важливу роль у забезпеченні здоров'я та благополуччя мешканців. Погана
якість повітря може призвести до серйозних проблем зі здоров'ям, таких як
захворювання дихальних шляхів, серцево-судинні захворювання та інші
захворювання. Моніторинг дозволяє вчасно виявляти забруднення повітря та
приймати заходи для його покращення, що сприяє зниженню ризику
захворювань та покращенню якості життя населення. Крім того, моніторинг є
важливим інструментом для управління екологічною ситуацією та
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 24
а
зменшення негативного впливу на довкілля, сприяючи сталому розвитку
населених пунктів.
Наявність великої кількості датчиків в населеному пункті є важливою
практикою для розуміння якості повітря з кількох причин. По-перше,
розташування багатьох датчиків у різних частинах населеного пункту
дозволяє отримати більш точну картину загальної якості повітря. Оскільки
якість повітря може варіюватися в залежності від джерел забруднення,
торговельних дільниць, промислових об'єктів та інших факторів,
розташування датчиків у різних районах допомагає зрозуміти різницю в
рівнях забруднення.
По-друге, багато датчиків дозволяють виявити потенційні джерела
забруднення та відстежити їхні зміни в часі. Це дозволяє локалізувати
проблемні ділянки та приймати ефективні заходи для зменшення викидів.
Крім цього, багато датчиків сприяють створенню детальної мережі
моніторингу, яка може бути використана для аналізу трендів у якості повітря
з часом і розробки стратегій для покращення середовища життя у населеному
пункті.
Важливість низької вартості датчиків для моніторингу якості повітря у
населених пунктах не може бути переоцінена. Зниження вартості датчиків
дозволить широкому колу організацій та компаній здійснювати інсталяцію
цих пристроїв у різних точках міста або населеного пункту.
Недорогі датчики роблять систему моніторингу більш доступною та
широко використовуваною, що стимулює більше досліджень та дій для
покращення якості повітря. Це також забезпечує більш широке охоплення
моніторингом уразливих зон, таких як промислові райони, де якість повітря
може бути особливо проблематичною.
Низька вартість датчиків сприяє також їхньому масовому
використанню в різних програмах та ініціативах, що спрямовані на
покращення якості повітря та захист здоров'я громадян. Такий підхід
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 25
а
дозволяє залучити більше зацікавлених сторін та забезпечує більш об'єктивну
оцінку стану довкілля у населених пунктах.
Мікроконтролер ESP32 є відмінним вибором для створення датчиків
якості повітря через кілька ключових переваг. ESP32 відомий своєю низькою
вартістю порівняно з іншими мікроконтролерами, що робить його доступним
для широкого кола розробників і сприяє зниженню вартості виробництва
датчиків.
Також, ESP32 має вражаючі можливості з бездротового зв'язку,
включаючи підтримку Wi-Fi та Bluetooth, що дозволяє передавати дані про
якість повітря безпосередньо до хмарних сервісів або мобільних додатків для
моніторингу.
Крім того, ESP32 має потужну обробку сигналів, що дозволяє
обробляти дані з різних сенсорів і виконувати складні алгоритми аналізу
якості повітря прямо на мікроконтролері.
Таким чином, ESP32 стає ідеальним вибором для створення недорогих
та сучасних датчиків якості повітря, які можуть бути ефективно використані
в програмах моніторингу довкілля та захисту здоров'я громадян.
Мікроконтролер ESP32 має вбудовану можливість підключення до
публічних Wi-Fi мереж, що робить його ідеальним рішенням для створення
датчиків якості повітря, які потребують зв'язку з Інтернетом.
Завдяки можливості підключення до Wi-Fi мережі ESP32 може
надсилати зібрані дані про якість повітря на сервери хмарних сервісів або на
інші веб-сервери для подальшого аналізу та обробки. Це дозволяє зручно
відстежувати зміни в якості повітря в реальному часі та приймати необхідні
заходи в разі виявлення проблем.
Також варто відзначити, що ESP32 підтримує різні методи
аутентифікації та шифрування для забезпечення безпеки підключення до Wi-
Fi мережі, що робить його надійним рішенням для передачі чутливої
інформації через мережу.
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 26
а
Отже, можливість підключення до публічних Wi-Fi мереж робить
ESP32 привабливим вибором для розробки різноманітних пристроїв,
включаючи датчики якості повітря, які потребують зв'язку з Інтернетом для
передачі даних та взаємодії з іншими пристроями.
Для оцінки якості повітря можна успішно використовувати датчик MQ-
135, який є чутливим до різних газів, таких як аміак, дим, оксид вуглецю та
бензин. Цей датчик має гарну сумісність з мікроконтролером ESP32.
Завдяки своїй чутливості до шкідливих газів, датчик MQ-135 може
допомогти виявляти забруднення повітря та вимірювати його рівні.
Поєднання MQ-135 і ESP32 дозволяє збирати дані про концентрацію різних
газів у повітрі та передавати ці дані для аналізу на сервери або інші
зберігальні пристрої.
Такий підхід дозволяє створювати недорогі та ефективні системи
моніторингу якості повітря, які можуть бути використані для контролю за
довкіллям у різних місцях, включаючи міські райони, промислові зони та
сільські території.
Розроблений датчик повинен мати можливість передавати зібрані дані
про якість повітря на сервер для подальшого аналізу та використання. Одним
з найефективніших способів забезпечення цієї можливості є використання
протоколу передачі даних MQTT (Message Queuing Telemetry Transport).
MQTT є легковаговим протоколом, який дозволяє надсилати дані в
реальному часі на сервери, забезпечуючи ефективну та надійну передачу
даних. Цей протокол особливо підходить для використання в мережах
Інтернету речей (IoT), так як він дозволяє ефективно керувати великим
обсягом даних в розподілених системах.
Використання MQTT дозволяє датчику надсилати дані на сервер з
мінімальними затратами ресурсів та безпеки передачі. Це робить його
ідеальним вибором для використання в системах моніторингу якості повітря,
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 27
а
де важливо забезпечити швидку та надійну передачу даних для аналізу та
реагування на зміни у середовищі.
Для системи моніторингу якості повітря можна використовувати
хмарний сервер для зберігання та обробки даних. Один з прикладів хостингу,
який можна використовувати для цього, це Hostinger.
Хмарні хостингові платформи, такі як Hostinger, надають гнучкі та
масштабовані рішення для розгортання веб-серверів, баз даних та додаткових
служб. Вони забезпечують високу доступність, надійність та безпеку для
вашого сервера, що робить їх ідеальним вибором для зберігання даних з
системи моніторингу якості повітря.
Використання хмарного хостингу дозволяє легко масштабувати ваш
сервер в залежності від потреб системи, забезпечуючи ефективне
використання ресурсів та зниження витрат. Крім того, хмарні хостингові
рішення, такі як Hostinger, часто надають інструменти для моніторингу та
керування вашим сервером, що дозволяє легко управляти системою
моніторингу якості повітря з будь-якого місця.
Хмарний хостинг, такий як Hostinger, зазвичай підтримує технологію
VPS (віртуальний приватний сервер), що дозволяє користувачам мати повний
контроль над своїм віртуальним сервером. Однією з великих переваг VPS є
можливість використання будь-якої мови програмування для розробки
серверного додатку для вашої системи моніторингу якості повітря.
Будь-яка популярна мова програмування, така як Python, JavaScript,
Java, PHP, Ruby та багато інших, може бути використана для створення
серверних додатків на вашому віртуальному сервері. Ви можете вибрати ту
мову, з якою ви найбільш знайомі або яка найкраще підходить для вашого
проекту.
Технологія VPS також надає можливість інсталювати та налаштовувати
різноманітні середовища розробки та бази даних відповідно до вашого
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 28
а
проекту. Це забезпечує гнучкість та розширюваність у виборі технологій для
вашого серверного додатку системи моніторингу якості повітря.
Мова програмування JavaScript стала дуже популярною в сучасному
програмуванні, особливо в контексті розвитку веб-додатків і серверних
додатків. З цього погляду, обирання JavaScript для розробки серверного
додатку для системи моніторингу якості повітря є вибором, який має кілька
вагомих переваг.
По-перше, JavaScript має широку спільноту розробників та величезну
екосистему бібліотек і фреймворків, які полегшують розробку серверних
додатків. Наприклад, Node.js, який є середовищем виконання JavaScript на
сервері, дозволяє створювати ефективні та потужні серверні додатки з
використанням JavaScript.
По-друге, використання однієї мови програмування як на клієнтській,
так і на серверній стороні спрощує розробку та підтримку коду, оскільки
розробники можуть використовувати ті ж самі навички та інструменти для
обох частин додатку.
Крім того, JavaScript має велику кількість бібліотек і модулів для
роботи з мережевими запитами, базами даних та іншими аспектами розробки
серверних додатків, що робить його потужним інструментом для створення
систем моніторингу якості повітря та інших веб-застосунків.
Обрані технології є оптимальним вибором завдяки їхній ефективності
та потужності. Інтеграція мікроконтролера ESP32 та датчика MQ-135
дозволяє ефективно виконувати моніторинг якості повітря, а використання
мови програмування JavaScript та хмарного хостингу спрощує розробку
серверної частини системи та забезпечує надійну та масштабовану
інфраструктуру для обробки даних. Такий підхід дозволяє ефективно
створювати та управляти системою моніторингу якості повітря,
забезпечуючи точні та надійні дані для аналізу та прийняття рішень.
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 29
а
2.3 Висновки до розділу 2
У даному розділі було проведено огляд різноманітних технологій,
пов'язаних зі створенням систем моніторингу та збору даних, таких як
датчики, мікроконтролери, способи передачі інформації від мікроконтролерів
до серверів. Було розглянуто різні типи датчиків, їхні особливості та області
застосування, а також описано різні мікроконтролери, які використовуються
для збору та обробки даних в реальному часі. Крім того, було розглянуто
різні методи передачі інформації, такі як HTTP, MQTT та UDP, і
обґрунтовано їхнє використання залежно від конкретних вимог проекту.
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 30
а
3 РОЗРОБКА СИСТЕМИМОНІТОРИНГУ СТАНУ ЯКОСТІ ПОВІТРЯ
В НАСЕЛЕНОМУ ПУНКТІ
3.1 Структура системи
Система моніторингу якості повітря в населеному пункті відіграє
важливу роль у забезпеченні здоров'я та благополуччя мешканців. Погана
якість повітря може викликати серйозні захворювання дихальних шляхів,
астму, серцево-судинні захворювання та інші проблеми зі здоров'ям.
Моніторинг дозволяє виявляти забруднення повітря та реагувати на них,
запобігаючи розвитку захворювань та забезпечуючи безпеку мешканців.
Крім того, відслідковування якості повітря є важливим для здоров'я довкілля
та підтримки сталого розвитку, оскільки допомагає зменшити викиди
шкідливих речовин та покращити якість життя в цілому. Така система є
необхідною для створення здорового та безпечного середовища для всіх
громадян.
Для розробки системи моніторингу якості повітря було використано дві
основні складові: датчики якості повітря та сервер, який збирає інформацію з
цих датчиків.
Перш за все, для збирання даних про якість повітря було вибрано
датчики, які здатні вимірювати концентрацію різних забруднювачів у повітрі.
Ці датчики здатні реагувати на певні гази та інші шкідливі речовини, що
присутні в атмосфері. Наприклад, датчик MQ-135 може виявляти аміак, дим,
оксид вуглецю та інші гази, що можуть бути шкідливими для здоров'я.
Друга складова системи – сервер – призначений для збору, зберігання
та обробки даних, які отримуються від датчиків. Цей сервер має можливість
підключатися до датчиків через мережу Інтернету та отримувати від них дані
про якість повітря. Після цього сервер обробляє ці дані та може відображати
їх у зручному для аналізу форматі, а також виконувати інші функції,
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 31
а
наприклад, сповіщення користувачів у випадку перевищення певних
нормативів якості повітря.
Таке поєднання датчиків та сервера дозволяє створити ефективну
систему моніторингу якості повітря, яка забезпечить користувачам доступ до
актуальної та надійної інформації про стан навколишнього середовища.
Проектування системи є необхідним, оскільки воно дає можливість
заздалегідь визначити потреби та вимоги користувачів, визначити
оптимальну архітектуру системи, вибрати найбільш підходящі технології та
інструменти для реалізації, а також спланувати кроки виконання проекту. Під
час процесу проектування можна виявити потенційні проблеми та ризики,
такі як конфлікти вимог, технічні обмеження чи недоліки в дизайні, і вчасно
їх вирішити. Це допомагає уникнути невдач та зменшити витрати часу,
грошей та ресурсів, які можуть виникнути під час реалізації непроектованої
системи. Крім того, проектування передбачає визначення критеріїв успіху та
планування вимірювання їх досягнення, що дозволяє ефективно
контролювати процес розробки та забезпечити високу якість готового
продукту.
Розроблена система складається з трьох основних компонентів:
1. Датчики якості повітря на базі ESP32. Ці датчики розміщені в різних
точках міста та призначені для вимірювання рівня різних
забруднювачів у повітрі, таких як гази та інші шкідливі речовини;
2. Серверний додаток. Серверний додаток призначений для збирання,
обробки та зберігання даних, які надходять від датчиків. Він отримує
дані через мережу Інтернету та забезпечує їх подальшу обробку та
аналіз;
3. Клієнтський додаток. Клієнтський додаток призначений для
відображення інформації про якість повітря на карті міста. Він отримує
дані від серверного додатка та відображає їх у зручному форматі для
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 32
а
користувачів, дозволяючи їм відслідковувати рівень забруднення
повітря в реальному часі.
Завдяки такому комплексному підходу, система надає користувачам
можливість виконувати моніторинг якості повітря у різних частинах міста та
приймати необхідні заходи для покращення екологічної ситуації. На
рисунку 3.1 представлена запропонована нами структура системи
моніторингу якості повітря.
Датчик Датчик Датчик Датчик
якості якості якості якості
повітря повітря повітря повітря
MQTT
Broker
MQTT Module
БД
Rest API Module
Серверний додаток
Клієнтський додаток
Рисунок 3.1 – Структура розробленої системи моніторингу якості повітря
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 33
а
Ця структура включає в себе датчики якості повітря, серверний та
клієнтський додатки.
Датчики, розроблені на базі мікроконтролера ESP32 та датчика MQ-
135, є ключовою частиною системи моніторингу якості повітря.
Мікроконтролер ESP32 відмінно підходить для реалізації таких систем,
оскільки він має вбудовану підтримку Wi-Fi, що дозволяє забезпечити
зручний доступ до даних через мережу Інтернету.
Датчик MQ-135 використовується для вимірювання рівня різних газів у
повітрі, таких як аміак, дим, амоніак, бензол, оксиди азоту, етиловий спирт,
вуглекислий газ та інші шкідливі речовини. Він досить чутливий до цих газів
і може дати достатньо точні виміри, щоб визначити рівень забруднення
повітря.
Поєднання мікроконтролера ESP32 і датчика MQ-135 дозволяє
створити компактний та ефективний пристрій для моніторингу якості
повітря, який може бути розміщений в різних точках міста для збору даних.
Така система дозволяє користувачам в реальному часі відстежувати рівень
забруднення повітря та вчасно реагувати на можливі небезпеки для здоров'я.
Для розробки програмної підтримки роботи датчика якості повітря
використовувалася мова програмування C та середовище розробки Arduino
IDE. Мова програмування C використовується для програмування
мікроконтролера ESP32, який входить до складу датчика. C є мовою
загального призначення, яка дозволяє точно керувати ресурсами пристрою та
оптимізувати продуктивність коду.
Середовище розробки Arduino IDE є популярним інструментом для
роботи з мікроконтролерами, такими як ESP32. Воно має зручний інтерфейс
та багато вбудованих функцій, які спрощують процес програмування. Крім
того, Arduino IDE має велику спільноту користувачів та великий набір
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 34
а
бібліотек, що робить розробку програмного забезпечення для
мікроконтролерів швидкою та ефективною [15].
Для забезпечення комунікації між датчиками якості повітря та
сервером використовувався протокол передачі даних MQTT (Message
Queuing Telemetry Transport), а також було налаштовано брокер HiveMQ.
Протокол MQTT – легкий та ефективний протокол для передачі
повідомлень, який працює поверх TCP/IP протоколу. Він дозволяє ефективно
передавати дані між пристроями з мінімальними затримками та
використанням мережевих ресурсів. Брокер HiveMQ є одним з популярних
рішень для роботи з протоколом MQTT, який забезпечує надійне приймання,
маршрутизацію та розподіл повідомлень між датчиками та сервером.
Використання MQTT та HiveMQ дозволяє забезпечити надійну та ефективну
комунікацію між всіма складовими системи моніторингу якості повітря.
Серверна частина системи моніторингу якості повітря була розроблена
з використанням мови програмування Node.js [16]. Node.js - це популярне
середовище виконання JavaScript, яке дозволяє створювати швидкі та
масштабовані серверні додатки.
Використання Node.js дозволяє розробникам створювати ефективні та
продуктивні серверні додатки, використовуючи відомий та широко
використовуваний веб-технологічний стек, такий як JavaScript, а також
велику кількість розширень та бібліотек. Це також дозволяє зручно
інтегрувати серверну частину з клієнтською стороною додатка, яка також
може бути розроблена з використанням JavaScript, що спрощує розробку та
підтримку системи.
Використання Node.js в даному проекті дозволяє створити швидку,
надійну та ефективну серверну частину системи моніторингу якості повітря,
яка може обробляти великі обсяги даних та забезпечувати високу
продуктивність та доступність.
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 35
а
Для розробки серверної частини системи використовувався фреймворк
Nest.js, який надає зручні інструменти для побудови масштабованих та
ефективних веб-додатків на Node.js. Однією з важливих особливостей Nest.js
є його модульність і зручна архітектура, яка дозволяє розробляти серверні
додатки, використовуючи концепції модулів та сервісів.
Окрім того, Nest.js надає розширену підтримку для роботи з різними
протоколами та сервісами, включаючи MQTT. Завдяки цьому, розробники
можуть легко інтегрувати підтримку протоколу MQTT без зайвого складного
коду. Nest.js забезпечує зручний та ефективний спосіб для роботи з MQTT в
контексті серверної частини додатку.
Таким чином, використання фреймворку Nest.js спрощує розробку
серверної частини системи моніторингу якості повітря, надаючи зручні
інструменти для роботи з MQTT та забезпечуючи швидкий та ефективний
процес розробки.
Для зберігання даних в системі моніторингу якості повітря була обрана
NoSQL база даних MongoDB. MongoDB є документ-орієнтованою базою
даних, яка дозволяє зберігати дані у вигляді документів у форматі JSON. Це
дозволяє зручно зберігати дані, які можуть мати різну структуру, і швидко
отримувати доступ до них.
Вибір MongoDB для зберігання даних в системі моніторингу якості
повітря має кілька переваг. По-перше, MongoDB дозволяє зберігати великі
обсяги даних та ефективно їх опрацьовувати. По-друге, вона має гнучку
схему даних, що дозволяє легко змінювати структуру даних в разі потреби.
Крім того, MongoDB має вбудовану підтримку для кластеризації та
реплікації, що дозволяє забезпечити високу доступність та надійність
системи.
Отже, вибір MongoDB для зберігання даних в системі моніторингу
якості повітря допомагає забезпечити ефективне та надійне зберігання та
обробку даних, що є ключовим аспектом в таких системах.
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 36
а
Для відображення даних про якість повітря був розроблений
клієнтський додаток, що базується на фреймворку React.js. React.js є
потужним та популярним JavaScript фреймворком для створення
користувацьких інтерфейсів.
Використання React.js дозволяє розробникам створювати ефективні та
динамічні веб-додатки зі складними інтерфейсами. Однією з основних
переваг React.js є використання компонентної архітектури, що спрощує
розробку та управління складними інтерфейсами, розбиваючи їх на невеликі
та перевикористовувані компоненти.
Завдяки React.js, розробники можуть легко створювати інтерактивні та
зручні для використання інтерфейси, які швидко реагують на зміни даних та
забезпечують плавність та ефективність взаємодії з користувачем.
Отже, використання React.js для розробки клієнтського додатку
дозволяє створити зручний та ефективний інтерфейс для відображення даних
про якість повітря, що дозволяє користувачам легко відстежувати та
аналізувати ці дані.
Комунікація між клієнтом і сервером у системі моніторингу якості
повітря здійснюється через протокол HTTPS (Hypertext Transfer Protocol
Secure). HTTPS – це захищений протокол передачі даних через мережу
Інтернет, який забезпечує шифрування даних та аутентифікацію сторін [17].
Використання протоколу HTTPS дозволяє забезпечити
конфіденційність та цілісність даних, які передаються між клієнтом і
сервером. Всі дані, що передаються через HTTPS, шифруються за допомогою
SSL/TLS протоколу, що забезпечує захист від перехоплення та зміни даних
сторонніми особами.
Такий підхід до комунікації між клієнтом і сервером дозволяє
забезпечити безпеку та конфіденційність даних користувачів, що є
критичним аспектом для системи моніторингу якості повітря, особливо при
передачі особистих або чутливих даних.
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 37
а
Розроблена система моніторингу якості повітря розділена на модулі,
що потенційно можуть розроблюватися паралельно різними командами. Цей
підхід до розробки дозволяє ефективно організувати роботу над різними
частинами системи та прискорити процес розробки в цілому.
Кожен модуль в системі може відповідати за певні функціональні
аспекти, такі як збір даних від датчиків, обробка та зберігання даних,
відображення інформації для користувачів тощо. Кожен з цих модулів може
бути розроблений окремою командою розробників, що дозволяє
використовувати ресурси ефективніше та прискорити виконання проекту в
цілому.
Такий підхід до розробки системи дозволяє також легко масштабувати
та змінювати систему в майбутньому, оскільки різні модулі можуть бути
додані або змінені незалежно один від одного. Крім того, він дозволяє
розділити відповідальності між різними командами та забезпечити кращу
організацію процесу розробки.
3.2 Опис функцій системи
Розроблена система призначена для оперативного отримання даних про
якість повітря в режимі реального часу. Основною метою цієї системи є
надання користувачам актуальної та точної інформації про рівень
забруднення повітря у різних частинах населених пунктів.
Завдяки «реально-вчасному моніторингу» якості повітря, користувачі
можуть оперативно реагувати на потенційно небезпечні ситуації та приймати
необхідні заходи для захисту свого здоров'я. Це особливо важливо для осіб з
респіраторними захворюваннями, алергіями або іншими станами, які можуть
погіршитися в умовах забрудненого повітря.
«Реально-вчасний моніторинг» якості повітря також дозволяє органам
влади та екологічним організаціям оперативно втручатися в ситуації з
великим рівнем забруднення повітря, приймаючи необхідні заходи для
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 38
а
зменшення впливу шкідливих речовин на здоров'я людей та навколишнє
середовище.
Отже, розроблена система моніторингу якості повітря має велике
значення для забезпечення безпеки та здоров'я громадськості, забезпечуючи
оперативний доступ до інформації про стан довкілля.
Система моніторингу якості повітря має кілька ключових функцій, що
дозволяють користувачам отримувати оперативну та інформативну
інформацію про стан повітря у реальному часі:
1. Відображення на карті міста. Система надає можливість
відображення розташування датчиків якості повітря на карті міста. Це
дозволяє користувачам легко визначати місцезнаходження датчиків та
їх покриття населених пунктів;
2. Індикація поточного рівня якості повітря. На карті користувач може
бачити поточний рівень забруднення повітря в різних точках міста. Ця
інформація може бути представлена за допомогою кольорової шкали
або значків, що відображають ступінь забруднення;
3. Відображення додаткової інформації. Крім поточного рівня
забруднення, система може надавати користувачам додаткову
інформацію, таку як типи забруднюючих речовин, поради щодо
захисту здоров'я та інші важливі дані;
4. Мобільний доступ. Система може мати мобільний додаток, що
дозволяє користувачам отримувати доступ до даних про якість повітря
з будь-якого місця та в будь-який час через мобільні пристрої.
Ці функції дозволяють системі надавати користувачам зручний та
інформативний інструмент для моніторингу якості повітря, що сприяє
забезпеченню здоров'я та безпеки громадськості.
Система здійснює вимірювання рівня вуглекислого газу в
атмосферному повітрі, що дозволяє визначати якість повітря. Вуглекислий
газ (CO2) є одним з основних показників забруднення повітря та може бути
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 39
а
індикатором наявності інших шкідливих речовин в атмосфері. Підвищений
рівень CO2 може вказувати на недостатню вентиляцію приміщень або інші
джерела забруднення повітря.
Аналізуючи рівень вуглекислого газу, система може оцінювати якість
повітря та надавати користувачам інформацію про ступінь забруднення та
можливі наслідки для здоров'я. Ця інформація може бути корисною для
прийняття рішень щодо захисту здоров'я та зменшення впливу шкідливих
факторів на навколишнє середовище. Клієнтська частина системи зображена
на рисунку 3.2.
Рисунок 3.2 – Клієнтська частина системи
Адміністратор системи має можливість переглядати точки на карті, які
відображають рівень якості повітря в місцях розташування датчиків. Ця
функціональність дозволяє адміністраторові швидко та зручно виконувати
моніторинг стану довкілля та визначати потенційно проблемні зони.
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 40
а
Інтерактивна карта відображає точки з різними кольорами або
індикаторами, які відповідають рівню забруднення повітря в кожній
конкретній області. Наприклад, зелені точки можуть вказувати на добрий
стан повітря, червоні - на високий рівень забруднення, а жовті – на помірний
рівень.
Ця інформація допомагає адміністраторові швидко виявляти місця з
поганим станом повітря та приймати необхідні заходи для зменшення впливу
забруднення та покращення якості повітря. Крім того, вона може бути
використана для моніторингу та аналізу тенденцій забруднення повітря в
різних районах та в різний час.
Градація кольорів для рівня вуглекислого газу (CO2) в повітрі може
бути наступною:
1. Зелений: представляє чисте повітря з низьким рівнем вуглекислого
газу. Цей колір вказує на оптимальні умови для дихання та низький
ризик забруднення повітря;
2. Жовтий або помаранчевий: вказує на помірний рівень вуглекислого
газу в повітрі. Він може означати, що рівень CO2 надзвичайно не
нормативний, але ще не досяг критичного рівня;
3. Червоний: показує високий рівень вуглекислого газу та загрозу для
здоров'я. Цей колір вказує на сильне забруднення повітря, що може
бути небезпечним для людей, особливо для тих, хто має респіраторні
проблеми або хронічні захворювання.
При натисканні на область, де працює датчик, система відображає
точну інформацію про забруднення повітря в цій конкретній локації. Система
може показати точний рівень забруднення повітря в обраній області. Це може
бути представлено числовим значенням або за допомогою градації кольорів.
Користувач може отримати інформацію про типи забруднюючих
речовин, які присутні в повітрі в даній області. Наприклад, вуглекислий газ,
озон, оксиди азоту тощо.
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 41
а
Система може надати користувачам поради щодо захисту здоров'я в
залежності від рівня забруднення повітря. Це може включати рекомендації
щодо носіння захисних масок, обмеження тривалості перебування на вулиці
та інші заходи.
Користувач може переглянути історію забруднення повітря в даній
області протягом певного часового періоду. Це дозволяє здійснювати аналіз
тенденцій та виявляти патерни забруднення повітря.
Отримання точної інформації про забруднення повітря дозволяє
користувачам своєчасно реагувати на потенційні загрози для здоров'я та
приймати необхідні заходи для захисту себе та своєї родини.
3.3 Технічні вимоги для роботи з системою
Технічні вимоги – це документ, який формалізує вимоги до
функціональності, продуктивності, надійності, безпеки та інших аспектів
системи чи програмного забезпечення. Цей документ є важливим етапом у
процесі розробки проекту, оскільки визначає технічні параметри, які повинні
бути виконані для задоволення потреб і очікувань користувачів.
Технічні вимоги потрібні з наступних причин:
1. Уточнення вимог користувачів. Вони допомагають зрозуміти та
уточнити вимоги та очікування користувачів стосовно продукту або
системи;
2. Визначення обсягу проекту. Вони визначають обсяг робіт, які
необхідно виконати для реалізації проекту;
3. Оцінка термінів та ресурсів. Вони допомагають визначити необхідні
ресурси (час, бюджет, персонал) для реалізації проекту;
4. Створення основи для тестування. Вони визначають критерії
успішності, які використовуються для оцінки продукту під час
тестування;
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 42
а
5. Забезпечення якості продукту. Вони допомагають забезпечити, що
розроблений продукт відповідає вимогам користувачів та стандартам
якості;
6. Мінімізація ризиків. Вони дозволяють ідентифікувати можливі
технічні проблеми та ризики на ранніх етапах розробки, що дозволяє їх
вирішити до початку реалізації проекту.
Таким чином, технічні вимоги є важливим інструментом у процесі
розробки програмного забезпечення або системи, який допомагає
забезпечити успішну реалізацію та задоволення потреб користувачів.
Важливо визначити місця розташування датчиків системи,
орієнтуючись на оптимальні умови для отримання репрезентативних даних
про якість повітря. Розміщення датчиків повинно бути стратегічним, з
урахуванням різноманітних чинників, таких як топографія місцевості, рух
повітря, наявність джерел забруднення та місцевих особливостей.
Паралельно з цим, необхідно забезпечити наявність Wi-Fi для передачі даних
та електроживлення для датчиків, зокрема мережі 220 Вольт. Це забезпечить
надійну та стабільну роботу системи моніторингу у будь-який час.
Система підтримує тільки Wi-Fi з частотою 2.4 Гігагерц, що означає,
що датчики та інші пристрої, що входять до складу системи, можуть
підключатися до мережі тільки на цій частоті. Такий обмежений вибір може
бути обумовлений технічними обмеженнями або стратегічними рішеннями з
метою спрощення конфігурації мережі та забезпечення сумісності з
існуючим обладнанням.
Швидкість Інтернету важлива для системи, оскільки вона визначає
можливість передачі даних між датчиками, сервером і користувачами. Однак
для більшості систем моніторингу якості повітря досить мати швидкість
Інтернету на рівні 2 Мбіт в секунду. Це вважається достатньою швидкістю
для передачі невеликого обсягу даних, які зазвичай використовуються у
таких системах. Така швидкість забезпечить стабільну та ефективну роботу
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 43
а
системи, забезпечуючи одночасно якість передачі даних і оптимальне
споживання ресурсів мережі.
Для роботи системи буде достатньо й підключення до мережі 3G
Інтернету. Хоча ця технологія має меншу швидкість передачі даних
порівняно з Wi-Fi або більш продуктивними мережами, вона все ж
забезпечить необхідну пропускну здатність для передачі даних, необхідних
для функціонування системи моніторингу якості повітря. Таким чином,
підключення до мережі 3G дозволить системі працювати ефективно навіть у
випадку відсутності Wi-Fi або інших більш швидких мережних підключень.
Використання відомих MQTT брокерів є важливим з точки зору
забезпечення безпеки передачі даних у системі моніторингу. Ці брокери
зазвичай мають високий рівень захисту, що включає шифрування передачі
даних, аутентифікацію користувачів та контроль доступу. Крім того, вони
надають можливість моніторингу та аудиту передачі даних, що дозволяє
вчасно виявляти та реагувати на можливі загрози безпеці. Такий підхід
сприяє забезпеченню конфіденційності, цілісності та доступності даних у
системі моніторингу якості повітря.
Використання хмарного сервера має велике значення для ефективності
та надійності системи моніторингу якості повітря. Важливо, щоб дані були
опрацьовані безперервно та ефективно, незалежно від внутрішніх обмежень
та потенційних проблем, таких як обмежені ресурси пристроїв або відмови
обладнання.
Хмарні сервери забезпечують гнучкість у масштабуванні
обчислювальних потужностей та ресурсів для обробки даних. Вони також
забезпечують великий рівень доступності та надійності, що дозволяє системі
функціонувати без збоїв навіть при великому обсязі даних або в разі
виникнення проблем на рівні локальних серверів [18]. Крім того,
використання хмарного сервера дозволяє отримувати доступ до передових
інструментів для аналізу даних, машинного навчання та штучного інтелекту,
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 44
а
що може значно поліпшити якість та ефективність моніторингу якості
повітря.
Налаштування системи автоматичного резервного копіювання є
надзвичайно важливим кроком для забезпечення безпеки та надійності даних
у системі моніторингу якості повітря. Це дозволяє уникнути втрати цінної
історії даних в разі виникнення непередбачуваних ситуацій, таких як
випадкове видалення, помилки програмного забезпечення або виходу з ладу
обладнання.
Автоматичне резервне копіювання може забезпечити регулярне
створення копій даних та їх збереження на зовнішніх серверах або пристроях.
Важливо вибрати надійний та безпечний механізм резервного копіювання,
який забезпечить збереження даних у цілісному та доступному стані. Це
може бути здійснено за допомогою спеціальних програмних засобів або
сервісів хмарного сховища, які автоматизують процес резервного копіювання
та забезпечують його надійність.
Використання всіх вище наданих рекомендацій забезпечить стабільну
роботу системи моніторингу якості повітря.
3.4 Оцінка ефективності
Оцінка ефективності розробленої системи є критично важливим
кроком, оскільки вона дозволяє зрозуміти, наскільки добре система виконує
свої функції та відповідає потребам користувачів. Це дозволяє виявити
потенційні проблеми, несправності або недоліки, які можуть вплинути на
продуктивність або користь від використання системи. Такий аналіз дозволяє
зробити необхідні вдосконалення або коригування, щоб забезпечити
оптимальну роботу та задоволення від користування системою.
Розроблена система не базується на даних державних станцій, що
робить її значно ефективнішою при оцінці якості повітря з кількох причин.
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 45
а
По-перше, така система може забезпечити більш гнучкий та
деталізований моніторинг якості повітря, охоплюючи більш широку
територію та забезпечуючи дані з меншими інтервалами. Це дозволяє краще
розуміти стан повітря в конкретних районах та реагувати на потенційні
проблеми швидше.
Крім того, система, яка не залежить виключно від державних станцій,
може забезпечити більш точні та об'єктивні дані, оскільки вона враховує
ширший спектр джерел забруднення та може адаптуватися до місцевих умов
та особливостей.
Такий підхід дозволяє отримувати більш повну та достовірну
інформацію про якість повітря, що є важливим для забезпечення безпеки та
здоров'я громади.
Розроблена система отримує дані в режимі реального часу, що надає
можливість в будь-який момент часу отримати актуальну інформацію про
якість повітря. Це дозволяє оперативно виявляти зміни в стані повітря та
вчасно реагувати на потенційні загрози для здоров'я громади. Завдяки цій
можливості користувачі можуть отримувати доступ до актуальних даних у
реальному часі, що сприяє підвищенню обізнаності та прийняттю
обґрунтованих рішень щодо власного здоров'я та безпеки.
Система оновлює показники кожні 20 секунд, що забезпечує часте та
регулярне оновлення даних про якість повітря. Це дозволяє користувачам
отримувати свіжу інформацію без значних затримок та сприяє оперативній
реакції на зміни у якості повітря. Такий короткий інтервал оновлення
забезпечує високу точність та актуальність даних, що дозволяє більш
ефективно використовувати систему для моніторингу та контролю за станом
довкілля.
Дані зберігаються протягом року, що надає можливість здійснювати
аналіз більш детальної та довготривалої динаміки якості повітря. Це дозволяє
спостерігати за змінами впливу різних факторів на середовище протягом
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 46
а
тривалого періоду часу та виявляти тенденції у зміні якості повітря в різні
пори року або в різних районах. Підтримка історичних даних протягом року
допомагає зрозуміти довгострокові тенденції та зміни в середовищі, що може
бути корисним для прийняття рішень щодо здоров'я та безпеки.
Розроблену систему можна порівняти з існуючим рішенням
YourAirTest з кількох ключових точок зору. В першу чергу, обидва рішення
спрямовані на моніторинг якості повітря та надають користувачам доступ до
актуальних даних про стан довкілля. Однак, є деякі відмінності в їх
функціональності та можливостях.
Розроблена система має деякі переваги, такі як можливість реального
часу оновлення даних, швидка реакція на зміни стану повітря, а також
можливість зберігання даних протягом року для подальшого аналізу. Крім
того, вона базується на датчиках, що розроблені на базі мікроконтролера
ESP32, що може забезпечити більш гнучке та ефективне використання
системи.
З іншого боку, YourAirTest, можливо, має свої унікальні функції або
особливості, які можуть бути привабливими для деяких користувачів.
Важливо провести детальний аналіз функціональності та властивостей обох
систем для визначення того, яка з них краще відповідає конкретним потребам
та вимогам користувача.
Таблиця 3.1 Порівняння розробленої системи з аналогічною існуючою
Розроблена система YourAirTest
Кількість датчиків Необмежена * Обмежена компанією
Оновлення даних 1 раз на 20 секунд 1 раз в годину
Збереження даних 1 рік 1 місяць
Тип розробки Open Source ** Закрита розробка
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 47
а
* Під необмеженою кількістю датчиків мається на увазі відсутність
обмеження в додаванні нових датчиків користувачами. Система може легко
інтегрувати дані з будь-якої кількості додаткових датчиків, які бажають
встановити користувачі. Після отримання даних з усіх цих датчиків система
опрацьовує їх і формує мапу, яка відображає рівень забруднення повітря на
відповідних ділянках міста або іншій території. Такий підхід дозволяє
створити більш повну та деталізовану карту якості повітря, охоплюючи різні
райони та ураховуючи різноманітні джерела забруднення.
** Під Open source розуміється можливість використання персональних
датчиків на основі програмного забезпечення, наданого розробником. Це
означає, що користувачі мають можливість отримати доступ до вихідного
коду програми, змінити його за власними потребами та використовувати
власні датчики для збору даних. Такий підхід надає більшу гнучкість та
контроль користувачам, дозволяючи їм налаштовувати систему відповідно до
своїх потреб та унікальних вимог.
Порівнявши дві системи, можна зробити висновок, що розроблена
система виявляється більш привабливою, оскільки вона надає користувачам
більші можливості та переваги. Розроблена система, як правило, надає
більшу гнучкість у конфігуруванні та вдосконаленні за допомогою
відкритого вихідного коду, що дозволяє користувачам вносити зміни та
адаптувати систему під свої потреби. Крім того, вона може бути більш
доступною та економічно вигідною, оскільки користувачі можуть
використовувати власні датчики та апаратне забезпечення. Таким чином,
порівнявши обидві системи, можна зробити висновок, що розроблена
система надає більше широких можливостей для користувачів та виявляється
більш привабливою альтернативою.
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 48
а
3.5 Висновки до розділу 3
У розділі було детально розглянуто ключові аспекти розробки та
функціонування системи моніторингу якості повітря. Структура системи
була розкрита з урахуванням основних компонентів, їх взаємозв'язку та
взаємодії. Опис функцій системи дав можливість зрозуміти, як саме система
працює та які можливості вона надає користувачам.
Технічні вимоги для роботи з системою були визначені для
забезпечення її ефективності та стабільності в різних умовах експлуатації.
Оцінка ефективності системи надала змогу зрозуміти, наскільки успішно
вона виконує свої функції та які можливості ще можна покращити або
розширити.
В цілому, розділ присвячений детальному огляду проектування та
реалізації системи моніторингу якості повітря, що дозволить ефективно
впроваджувати та використовувати її для забезпечення здоров'я та комфорту
населення.
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 49
а
4 ЗАХИСТ АВТОМАТИЗОВАНОЇ СИСТЕМИ
4.1 Огляд існуючих рішень
Захист інформації при передачі даних між мікроконтролером і
сервером важливий для забезпечення конфіденційності, цілісності та
доступності даних.
Використання шифрування дозволяє захистити дані під час їхньої
передачі, забезпечуючи конфіденційність. Протоколи, такі як SSL/TLS,
можуть забезпечити шифрування даних від мікроконтролера до сервера.
Авторизація та аутентифікації користувачів перед доступом до системи
обов’язково повинні бути забезпечені. Це може включати використання
паролів, токенів або інших методів ідентифікації. Крім того, важливо
налаштувати права доступу, щоб управляти тим, хто має доступ до
конкретних ресурсів.
Доцільно застосовувати методи перевірки цілісності даних, такі як
хешування або цифровий підпис, для виявлення будь-яких модифікацій
даних під час їх передачі.
Безпечні мережеві протоколи, такі як HTTPS або VPN, для захисту
мережевого з'єднання між мікроконтролером і сервером від зловмисників та
прослуховування.
Надійна обробка помилок та винятків може запобігти використанню
атак, які спрямовані на використання вразливостей в програмному
забезпеченні.
Забезпечення високого рівня захисту даних, що передаються від
мікроконтролера до сервера, вимагає комплексного підходу, який враховує
різні аспекти безпеки, від захисту мережі до захисту даних в самому
програмному забезпеченні.
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 50
а
Використання HTTPS з'єднання є ефективним методом захисту
інформації при передачі даних між мікроконтролером і сервером. HTTPS
(Hypertext Transfer Protocol Secure) – це захищена версія стандартного
протоколу HTTP, яка використовує шифрування за допомогою протоколу
SSL/TLS для забезпечення конфіденційності та цілісності даних під час їх
передачі через мережу Інтернет, зображено на рисунку 4.1.
Рисунок 4.1 – HTTPS з'єднання
Переваги використання HTTPS включають шифрування даних, які
передаються між мікроконтролером і сервером, що робить їх
нечитабельними для незаконного доступу третіх осіб [19]. Це забезпечує
конфіденційність даних.
HTTPS дозволяє перевірити ідентичність сервера за допомогою
сертифікатів SSL/TLS. Це допомагає уникнути атак типу "людина
посередині", де зловмисники намагаються перехопити комунікацію між
мікроконтролером і сервером.
Забезпечує механізми для перевірки цілісності даних під час їх
передачі. Це дозволяє виявляти будь-які зміни або модифікації даних під час
їх пересилання. Також дозволяє захистити систему від атак, таких як
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 51
а
перехоплення даних, "людина посередині" і внесення змін до переданих
даних.
Загально, використання HTTPS з'єднання є важливим елементом
захисту інформації при передачі даних між мікроконтролером і сервером, і
відіграє ключову роль у забезпеченні безпеки в мережевому середовищі.
TLS (Transport Layer Security) – це криптографічний протокол, який
забезпечує захищену комунікацію між клієнтами і серверами через мережу
Інтернет. Використання TLS дозволяє забезпечити конфіденційність,
цілісність та аутентифікацію даних, що передаються, та захист від атак типу
"людина посередині", як працює протокол зображено на рисунку 4.2.
Рисунок 4.2 – Протокол Transport Layer Security
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 52
а
TLS використовує асиметричне шифрування для обміну симетричним
ключем між клієнтом і сервером. Після цього весь трафік між ними
шифрується за допомогою цього спільного ключа, що забезпечує
конфіденційність даних. Також TLS включає в себе процес аутентифікації
сторін за допомогою цифрових сертифікатів, що дозволяє перевіряти
справжність ідентичності комунікуючих сторін.
Протокол TLS складається з різних версій, таких як TLS 1.0, TLS 1.1,
TLS 1.2 та остання на момент написання TLS 1.3, які включають в себе різні
алгоритми шифрування та захисту. TLS 1.3 відзначається покращеною
ефективністю та безпекою порівняно з попередніми версіями.
Захист інформації при передачі даних між мікроконтролером і
сервером за допомогою TLS з'єднання полягає в тому, що весь трафік між
ними шифрується та захищається від несанкціонованого доступу. Це робить
TLS одним із найбільш ефективних і поширених методів захисту комунікації
в мережевому середовищі.
Під час збереження даних до бази даних, шифрування є важливим
кроком для забезпечення безпеки та конфіденційності.
Шифрування – це процес перетворення даних з відкритого тексту в
зашифрований таким чином, щоб доступ до них мали лише авторизовані
особи. Це досягається за допомогою криптографічних ключів, які
перетворюють відкритий текст у нечитабельний формат. Ключі – це
математичні величини, що використовуються як для шифрування, так і для
розшифрування даних, та вони повинні бути відомі як відправнику, так і
отримувачу. Процес розшифрування виконується особами, які мають
відповідний ключ, і вимагають зворотного перетворення зашифрованих
даних у відкритий текст. Фахівці по криптографії постійно працюють над
розробкою більш складних та надійних ключів для підвищення рівня безпеки
[20]. В захищеному шифруванні використовуються ключі високого рівня
складності, що ускладнює процес злому (відомий як метод "грубої сили") для
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 53
а
хакерів. Два основних види шифрування – це симетричне, де один ключ
використовується як для шифрування, так і для розшифрування, та
асиметричне, де для цих процесів використовуються різні ключі.
Шифрування даних необхідне з декількох причин. По-перше, воно
забезпечує конфіденційність, тобто лише власник і отримувач можуть читати
дані. Це допомагає уникнути перехоплення конфіденційних даних
зловмисниками, інтернет-провайдерами або навіть урядами. По-друге,
шифрування забезпечує безпеку даних, що допомагає уникнути витоку
інформації у разі втрати або викрадення пристрою. Втім, дані залишаються
захищеними завдяки зашифрованому вмісту. Крім того, шифрування
забезпечує цілісність даних, запобігаючи їхній зміні або перехопленню під
час передачі. Це особливо важливо для захисту інформації під час
комунікації через мережу. Нарешті, багато галузевих і державних
нормативних документів, таких як HIPAA, PCI-DSS і GDPR, вимагають від
компаній шифрувати дані користувачів, а державні установи та підрядники
США повинні дотримуватися Федеральних стандартів обробки інформації
(FIPS).
Ось деякі способи шифрування даних при їх збереженні в базі даних:
Шифрування на рівні поля – цей метод використовується для
шифрування конкретних полів даних перед їх збереженням у базі даних. Дані
шифруються перед вставкою в базу даних і розшифровуються при
витягуванні. Це може бути корисно, коли необхідно зберігати конфіденційну
інформацію, таку як паролі або особисті дані.
Шифрування на рівні стовпців – у цьому методі весь стовпець бази
даних шифрується. Він застосовується до всіх значень у даному стовпці,
незалежно від їх типу. Це може бути корисно для збереження
конфіденційних даних, таких як номери кредитних карток або медичні
записи.
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 54
а
Шифрування бази даних в цілому – у цьому методі вся база даних
шифрується ціляком, включаючи всі дані, що зберігаються в ній. Це надійний
спосіб захистити всі дані в базі даних від несанкціонованого доступу. Однак
він може бути більш ресурсомістким і складним у використанні, особливо
при потребі у розшифруванні великого обсягу даних.
Шифрування каналу зв'язку з базою даних – цей метод передбачає
шифрування комунікаційного каналу між додатком та базою даних.
Використовуються шифрувальні протоколи, такі як SSL (Secure Sockets
Layer) або TLS (Transport Layer Security), щоб захистити дані в процесі їх
передачі.
Ці методи можуть бути використані окремо або в поєднанні один з
одним для забезпечення максимального рівня безпеки даних в базі даних.
Вибір конкретного методу залежить від конкретних потреб проекту,
чутливості даних та вимог до безпеки.
4.2 Реалізація захисту користувачів
При розробці системи особливу увагу приділили захисту інформації,
яка наявна в системі. Це включає в себе застосування різноманітних заходів
безпеки, таких як шифрування даних, аутентифікація користувачів, контроль
доступу та моніторинг системи на предмет потенційних загроз. Такий підхід
допомагає запобігти несанкціонованому доступу до інформації та зберегти
конфіденційність, цілісність та доступність даних для авторизованих
користувачів. Забезпечення високого рівня захисту інформації є важливою
складовою розробки будь-якої системи, особливо коли йдеться про дані, що
стосуються здоров'я та безпеки користувачів.
Датчики розроблені таким чином, щоб на них не зберігалася
інформація. Замість цього, при отриманні даних, датчик негайно відправляє
інформацію на сервер для подальшої обробки та аналізу. Цей підхід мінімізує
ризик втрати чи викрадення конфіденційної інформації, оскільки дані не
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 55
а
зберігаються локально на датчику і відразу передаються на безпечний сервер
для подальшої обробки. Такий механізм також забезпечує швидку та
ефективну передачу даних, що дозволяє забезпечити оперативну реакцію на
будь-які зміни в середовищі.
Дані, отримані датчиком передаються через протокол MQTT з
використанням TLS (Transport Layer Security). TLS забезпечує шифрування
даних під час їх передачі між датчиками та сервером, що забезпечує
конфіденційність та цілісність інформації. Використання TLS також
забезпечує аутентифікацію сторін, що зв'язуються, і захищає від можливого
перехоплення чи модифікації даних під час їх транспортування через мережу.
Такий підхід забезпечує високий рівень безпеки для передачі даних між
датчиками та сервером.
Для безпеки зберігання даних в MQTT брокері HiveMQ
використовується низка заходів для захисту інформації. Ці заходи
включають:
1. Аутентифікація і авторизація. HiveMQ надає можливості для
налаштування різних методів аутентифікації користувачів та контролю
доступу до різних тем (topics) в системі MQTT. Це дозволяє обмежити
доступ до певних даних лише авторизованим користувачам;
2. TLS шифрування. HiveMQ підтримує TLS (Transport Layer Security),
яке забезпечує шифрування даних під час їх передачі між MQTT
клієнтами та брокером. Це забезпечує конфіденційність та цілісність
даних під час їх транспортування через мережу;
3. Захист від атак. HiveMQ включає в себе захист від різних типів
атак, таких як переповнення буфера, внесення змін до даних і т. д.
Розробники HiveMQ постійно вдосконалюють систему для
забезпечення безпеки даних у всіх аспектах її роботи;
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 56
а
4. Моніторинг та журналювання подій. HiveMQ може здійснювати
моніторинг активності, що відбувається в системі, і вести журнал подій
для виявлення та відповіді на потенційні загрози безпеці даних.
Ці заходи спільно забезпечують високий рівень безпеки для зберігання
даних в MQTT брокері HiveMQ, що дозволяє користувачам впевнено
використовувати цей брокер для обміну та зберігання конфіденційної
інформації.
Сервер, отримуючи дані від датчика, застосовує шифрування до цих
даних з використанням AES-256 алгоритму, що є одним з найбільш надійних
алгоритмів шифрування. Після шифрування дані зберігаються в базі даних у
зашифрованому вигляді. Цей підхід забезпечує високий рівень
конфіденційності та безпеки для збереження та обробки даних у системі.
Сервер, з метою забезпечення безпеки даних, не надсилає
користувачам усі дані, отримані від датчиків, а замість цього передає
агреговані дані. Це означає, що сервер обробляє та аналізує отримані від
датчиків дані, а потім надсилає користувачам лише результати аналізу, які
можуть бути корисними для їхніх потреб. Такий підхід дозволяє захистити
конфіденційні дані та зменшити обсяг інформації, яка передається по мережі,
зменшуючи при цьому ризик витоку конфіденційної інформації.
Система відповідає всім критеріям захисту та може бути використана
користувачами без безпекових ризиків. Захист даних здійснюється на всіх
рівнях: від передачі і зберігання до обробки та доступу. Використання
шифрування AES-256 для передачі та зберігання даних, а також агрегація та
обробка інформації на сервері перед тим, як вона надсилається користувачам,
забезпечують високий рівень конфіденційності та захищеність даних. Такий
підхід дозволяє користувачам використовувати систему без ризику
порушення їхньої безпеки чи конфіденційності даних.
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 57
а
4.3 Висновки до розділу 4
У розділі детально розглянуто два важливі аспекти: огляд існуючих
рішень та реалізацію захисту користувачів. Огляд існуючих рішень надав
можливість проаналізувати та визначити переваги та недоліки різних
підходів до захисту автоматизованої системи моніторингу якості повітря.
Цей аналіз став основою для реалізації ефективного та надійного захисту
розробленої системи моніторингу якості повітря.
Реалізація захисту користувачів була проведена з урахуванням
найсучасніших методів та практик в галузі кібербезпеки. Застосування
відповідних технологій та алгоритмів дозволило створити систему, яка
надійно захищена від несанкціонованого доступу та зловживання. В
результаті реалізація захисту автоматизованої системи стала важливим
етапом у забезпеченні безпеки та стабільності системи моніторингу якості
повітря, що підвищує рівень довіри користувачів та гарантує ефективну
роботу системи в умовах сучасного інформаційного середовища.
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 58
а
ВИСНОВКИ
Дана випускна кваліфікаційна робота присвячена важливості розробки
та впровадження систем моніторингу якості повітря в сучасних містах. Ці
системи не лише виявляють та допомагають уникнути небезпечних рівнів
забруднення повітря, а й сприяють покращенню якості життя, забезпечуючи
безпеку та комфорт для мешканців.
У роботі проаналізовано три інноваційні системи: YourAirTest,
SaveEcoBot та Oxygen, які відіграють ключову роль у забезпеченні чистого
повітря та покращенні якості життя.
Детально розглянуто технології, що використовуються у системах
моніторингу, такі як датчики, мікроконтролери та способи передачі
інформації. Окрім того, розглянуто ключові аспекти розробки та
функціонування системи, включаючи структуру, функції, технічні вимоги та
оцінку ефективності.
У випускній кваліфікаційній роботі висвітлено два важливих аспекти:
огляд існуючих рішень та реалізація захисту користувачів, що підкреслює
необхідність застосування передових технологій кібербезпеки для
забезпечення безпеки та стабільності систем моніторингу, які є ключовими
для створення здорового та процвітаючого міста.
Розробка системи здійснена на базі мікроконтролера ESP32, яка
даватиме можливість контролювати якість повітря в місті, а модулі системи
можна буде розміщувати в різних частинах міста з метою отримання більш
точних локальних показників.
Розглянуті та розроблена в роботі системи мають потенціал зробити
значний вплив на здоров'я громадян, екологічну безпеку та стабільність
економіки. Також для їх створення використовуються інноваційні підходи,
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 59
а
оскільки вони можуть забезпечити ефективність та надійність у зборі та
аналізі даних про якість повітря.
Невід'ємною складовою успішної реалізації систем моніторингу є
також застосування передових методів кібербезпеки для захисту інформації,
збираної та оброблюваної такими розподіленими системами.
В цілому, така система моніторингу якості повітря в містах є ключовим
інструментом у досягненні мети створення здорового та сталого середовища
для проживання.
Лист
ЧДТУ.242042.004 ПЗ т
Зм. Лист № докум. Підпис Дат 60
а
ДОДАТОК А
«ЗАТВЕРДЖУЮ»
Завідувач кафедри ІБ та КІ
д.т.н., професор Віра БАБЕНКО
__________________
«___» ____________ 2024 року
Система моніторингу стану якості повітря в населеному пункті
Специфікація
482.ЧДТУ.42042-01
Листів 2
Розробник _______________ Алан МАНЬКО
Керівник _______________ Віра БАБЕНКО
Черкаси 2024
2
482.ЧДТУ.42042-01
Позначення Найменування Примітка
Документація
482.ЧДТУ.42042-01 12 01 Текст програми
482.ЧДТУ.42042-01 34 01 Інструкція користувачаґ
ДОДАТОК Б
Система моніторингу стану якості повітря в населеному пункті
Текст програми
482.ЧДТУ.42042-01 12 01
Листів 11
Розробник: Алан МАНЬКО
Черкаси 2024
2
482.ЧДТУ.42042-01 12 01
import {
Get,
Param,
UseGuards,
Controller,
Post,
HttpCode,
Body,
Delete,
Query,
ParseUUIDPipe
} from '@nestjs/common';
import { ApiBearerAuth, ApiResponse, ApiTags } from '@nestjs/swagger';
import { AuthDeviceGuard } from '@modules/auth/guards/auth-device.guard';
import { SensorService } from '@entities/sensor/sensor.service';
import { RemoteCommandService } from '@entities/remote-command/remote-
command.service';
import { SensorsAdminCommandRequestDto } from '@dto/sensors/remote-
commands/sensors-admin-command.request.dto';
import { SensorsAdminCommandResponseDto } from '@dto/sensors/remote-
commands/sensors-admin-command.response.dto';
import { SensorsAdminCommandListResponseDto } from '@dto/sensors/remote-
commands/sensors-admin-command-list.response.dto';
@Controller('v1/sensors/:sensorId/admin-commands')
@ApiTags('sensor-remote-commands-controller')
@ApiBearerAuth()
export class SensorsAdminCommandsController {
constructor(
private commandService: RemoteCommandService,
private sensorService: SensorService
) {}
@Get()
@ApiResponse({ status: 200, type: SensorsAdminCommandListResponseDto })
@UseGuards(AuthDeviceGuard)
async findAll(
@Param('sensorId') sensorId: string,
@Query('page') page = 1,
3
482.ЧДТУ.42042-01 12 01
@Query('limit') limit = 10
): Promise<SensorsAdminCommandListResponseDto> {
const sensor = await this.sensorService.getSensorByUuid(sensorId);
const paginatedCommandsData = await this.commandService.paginate(
{
page,
limit
},
sensor.id
);
return {
...paginatedCommandsData,
items: paginatedCommandsData.items.map((command) => {
return new SensorsAdminCommandResponseDto(command);
})
};
}
@Post()
@UseGuards(AuthDeviceGuard)
@ApiResponse({ status: 201, type: SensorsAdminCommandResponseDto })
@HttpCode(201)
async create(
@Param('sensorId', new ParseUUIDPipe()) sensorId: string,
@Body() reqCommand: SensorsAdminCommandRequestDto
): Promise<SensorsAdminCommandResponseDto> {
const sensor = await this.sensorService.getSensorByUuid(sensorId);
const newCommand = await this.commandService.createCommand({
command: reqCommand.command,
sensor
});
return new SensorsAdminCommandResponseDto(newCommand);
}
@Delete(':commandId')
@UseGuards(AuthDeviceGuard)
@HttpCode(204)
async delete(
@Param('sensorId') sensorId: string,
4
482.ЧДТУ.42042-01 12 01
@Param('commandId') commandId: string
): Promise<void> {
await this.commandService.deleteCommand(commandId);
}
}
import { Get, Param, UseGuards, Controller } from '@nestjs/common';
import { ApiBearerAuth, ApiResponse, ApiTags } from '@nestjs/swagger';
import { DeviceService } from '@entities/device/device.service';
import { RemoteCommandService } from '@entities/remote-command/remote-
command.service';
import { DeviceIdGuard } from '@modules/auth/guards/device-id.guard';
import { AuthDeviceGuard } from '@modules/auth/guards/auth-device.guard';
@Controller('v1/devices/:deviceId/remote-commands')
@ApiTags('device-remote-commands-controller')
@ApiBearerAuth()
export class DevicesRemoteCommandsController {
constructor(
private commandService: RemoteCommandService,
private deviceService: DeviceService
) {}
@Get()
@ApiResponse({ status: 200, type: String, isArray: true })
@UseGuards(AuthDeviceGuard, DeviceIdGuard)
async findAll(@Param('deviceId') deviceId: string): Promise<string[]> {
const device = await this.deviceService.getDeviceByUuid(deviceId);
const commands = await
this.commandService.removeRemoteCommands(device.id);
return commands.map((cmd) => cmd.command);
}
}
import { Body, Controller, Get, Param, Put, UseGuards } from '@nestjs/common';
import { ApiBearerAuth, ApiResponse, ApiTags } from '@nestjs/swagger';
import { SettingsService } from '@entities/sensor/settings/settings.service';
5
482.ЧДТУ.42042-01 12 01
import { AuthAllGuard } from '@modules/auth/guards/auth-all.guard';
import { AuthDeviceGuard } from '@modules/auth/guards/auth-device.guard';
import { SettingsResponseDto } from '@dto/sensors/settings/settings.response.dto';
import { SettingsRequestDto } from '@dto/sensors/settings/settings.request.dto';
@Controller('v1/sensors/:sensorId/settings')
@ApiTags('sensor-settings-controller')
@ApiBearerAuth()
export class SensorsSettingController {
constructor(private sensorSettingsService: SettingsService) {}
@Get()
@UseGuards(AuthAllGuard)
@ApiResponse({ status: 200, type: SettingsResponseDto })
async findOne(
@Param('sensorId') sensorId: string
): Promise<SettingsResponseDto> {
const settings = await this.sensorSettingsService.getSettings(sensorId);
return new SettingsResponseDto(settings);
}
@Put()
@UseGuards(AuthDeviceGuard)
@ApiResponse({ status: 200, type: SettingsResponseDto })
async update(
@Param('sensorId') sensorId: string,
@Body() settings: SettingsRequestDto
): Promise<SettingsResponseDto> {
const data = await this.sensorSettingsService.updateSettings(
sensorId,
settings
);
return new SettingsResponseDto(data);
}
}
import {
Get,
Post,
6
482.ЧДТУ.42042-01 12 01
Delete,
Param,
HttpCode,
Controller,
UseGuards,
ParseUUIDPipe,
Body,
Query
} from '@nestjs/common';
import { ApiBearerAuth, ApiQuery, ApiResponse, ApiTags } from
'@nestjs/swagger';
import { Pagination } from 'nestjs-typeorm-paginate';
import { ActionMessagesEnum } from '@enums/actions/types';
import { SensorService } from '@entities/sensor/sensor.service';
import { SensorCommunicationsService } from
'@entities/sensor/communications/sensor-communications.service';
import { AuthDeviceGuard } from '@modules/auth/guards/auth-device.guard';
import { PaginateRequestDto } from '@dto/paginate/paginate.request.dto';
import { SensorCommunicationRequestDto } from '@dto/communications/sensor-
communication.request.dto';
import { SensorCommunicationResponseDto } from
'@dto/communications/sensor-communication.response.dto';
@Controller('v1/sensors/:sensorId/communications')
@ApiTags('sensor-communications-controller')
@ApiBearerAuth()
export class SensorsCommunicationsController {
constructor(
private sensorCommunicationsService: SensorCommunicationsService,
private sensorService: SensorService
) {}
@Get()
@UseGuards(AuthDeviceGuard)
@ApiQuery({ name: 'search', required: false, enum: ActionMessagesEnum })
@ApiQuery({
name: 'page',
required: false,
schema: {
7
482.ЧДТУ.42042-01 12 01
type: 'integer',
minimum: 1
}
})
@ApiQuery({
name: 'limit',
required: false,
schema: {
type: 'integer',
minimum: 1
}
})
@ApiResponse({ status: 200, type: [SensorCommunicationResponseDto] })
async findAll(
@Param('sensorId', new ParseUUIDPipe()) sensorId: string,
@Query('search') search: string,
@Query('page') page = 1,
@Query('limit') limit = 10
): Promise<Pagination<SensorCommunicationResponseDto>> {
const sensorCommunications = await
this.sensorCommunicationsService.paginate(
new PaginateRequestDto({
page,
limit
}),
sensorId,
search
);
return {
...sensorCommunications,
items: sensorCommunications.items.map((communication) => {
return new SensorCommunicationResponseDto(communication);
})
};
}
@Post()
@UseGuards(AuthDeviceGuard)
@ApiResponse({ status: 201, type: SensorCommunicationResponseDto })
@HttpCode(201)
async create(
8
482.ЧДТУ.42042-01 12 01
@Param('sensorId') sensorId: string,
@Body() communicationData: SensorCommunicationRequestDto
): Promise<SensorCommunicationResponseDto> {
const { url, action } = communicationData;
const sensor = await this.sensorService.getSensorByUuid(sensorId);
const newCommunication = await
this.sensorCommunicationsService.createSensorCommunication({
action,
url,
sensor: sensor
});
return new SensorCommunicationResponseDto(newCommunication);
}
@Delete(':communicationId')
@UseGuards(AuthDeviceGuard)
@HttpCode(204)
async delete(
@Param('sensorId') sensorId: string,
@Param('communicationId') communicationId: string
): Promise<void> {
await this.sensorCommunicationsService.deleteSensorCommunication(sensorId,
communicationId);
}
}
import {
Get,
Put,
Post,
Body,
Param,
Query,
Delete,
Controller,
HttpCode,
UseGuards
} from '@nestjs/common';
import { ApiBearerAuth, ApiQuery, ApiResponse, ApiTags } from
'@nestjs/swagger';
import { Pagination } from 'nestjs-typeorm-paginate';
9
482.ЧДТУ.42042-01 12 01
import { PlaceService } from '@entities/place/place.service';
import { PlacesRequestDto } from '@dto/places/places.request.dto';
import { PlacesResponseDto } from '@dto/places/places.response.dto';
import { PlacesListResponseDto } from '@dto/places/places-list-response.dto';
import { AuthUserGuard } from '@modules/auth/guards/auth-user.guard';
@Controller('v1/places')
@ApiTags('places-controller')
@ApiBearerAuth()
export class PlacesController {
constructor(private placeService: PlaceService) {}
@Get()
@ApiResponse({ status: 200, type: PlacesListResponseDto })
@UseGuards(AuthUserGuard)
@ApiQuery({
name: 'search',
required: false
})
async findAll(
@Query('page') page = 1,
@Query('limit') limit = 10,
@Query('search') search: string
): Promise<Pagination<PlacesResponseDto>> {
const paginatedPlaceData = await this.placeService.paginate(
{
page,
limit
},
search
);
return {
...paginatedPlaceData,
items: paginatedPlaceData.items.map(
(item) => new PlacesResponseDto(item)
)
};
}
10
482.ЧДТУ.42042-01 12 01
@Get(':placeId')
@ApiResponse({ status: 200, type: PlacesResponseDto })
@UseGuards(AuthUserGuard)
async findOne(
@Param('placeId') placeId: string
): Promise<PlacesResponseDto> {
const place = await this.placeService.getPlace(placeId);
return new PlacesResponseDto(place);
}
@Post()
@UseGuards(AuthUserGuard)
@ApiResponse({ status: 201, type: PlacesResponseDto })
@HttpCode(201)
async create(
@Body() place: PlacesRequestDto
): Promise<PlacesResponseDto> {
const newPlace = await this.placeService.createPlace({
name: place.name,
address: place.address,
providerNumber: place.internetProviderPhone
});
return new PlacesResponseDto(newPlace);
}
@Put(':placeId')
@ApiResponse({ status: 200, type: PlacesResponseDto })
@UseGuards(AuthUserGuard)
async update(
@Param('placeId') placeId: string,
@Body() place: PlacesRequestDto
): Promise<PlacesResponseDto> {
const updatedPlace = await this.placeService.updatePlace(
placeId,
{
name: place.name,
address: place.address,
providerNumber: place.internetProviderPhone
}
11
482.ЧДТУ.42042-01 12 01
);
return new PlacesResponseDto(updatedPlace);
}
@Delete(':placeId')
@UseGuards(AuthUserGuard)
@HttpCode(204)
async delete(@Param('placeId') placeId: string): Promise<void> {
await this.placeService.deletePlace(placeId);
}
}
import { ApiResponse, ApiTags } from '@nestjs/swagger';
import { Get, Controller } from '@nestjs/common';
import { DeviceService } from '@entities/device/device.service';
import { MonitorResponseDto } from '@dto/monitor/monitor.response.dto';
@Controller('v1/monitor')
@ApiTags('system-monitoring')
export class MonitorController {
constructor(private deviceService: DeviceService) {}
@Get()
@ApiResponse({ status: 200, type: MonitorResponseDto })
async getStatus(): Promise<MonitorResponseDto> {
const devices = await this.deviceService.paginate({
page: 1,
limit: 1
});
return new MonitorResponseDto({
backend: process.versions.node ? 'OK' : 'ERROR',
database: devices.items.length ? 'OK' : 'ERROR',
twilio: 'OK',
pushover: 'OK'
});
}
}
ДОДАТОК В
Система моніторингу стану якості повітря в населеному пункті
Інструкція користувача
482.ЧДТУ.42042-01 34 01
Листів 4
Розробник: Алан МАНЬКО
Черкаси 2024
2
482.ЧДТУ.42042-01 34 01
Для налаштування системи з використанням MQTT брокера HiveMQ,
спершу потрібно завантажити HiveMQ з офіційного сайту. Після
завантаження, розпакуйте архів у зручне для вас місце на сервері. Потім
перейдіть до папки з HiveMQ за допомогою командного рядка.
Щоб запустити брокер, виконайте команду ./bin/run.sh на Linux
або ./bin/run.bat на Windows. Після запуску брокера ви можете налаштувати
його конфігураційні файли, які знаходяться в папці conf. Основний
конфігураційний файл hivemq.conf дозволяє налаштувати параметри, такі як
порт, на якому працює брокер, і параметри безпеки.
Для більш детального налаштування, наприклад, налаштування
TLS/SSL або інтеграції з іншими сервісами, ви можете ознайомитись з
офіційною документацією HiveMQ, де є докладні інструкції та приклади
конфігурації. Після внесення всіх необхідних змін у конфігураційні файли,
перезапустіть брокер, щоб зміни вступили в силу.
Після цього система буде готова для підключення клієнтів MQTT, які
можуть публікувати і підписуватись на повідомлення через брокер HiveMQ.
Датчики системи, розроблені на базі ESP32, повинні бути прошиті з
використанням обраного брокеру MQTT. Для цього необхідно підготувати
прошивку, яка включає налаштування для підключення до MQTT брокера
HiveMQ. Перш за все, завантажте та встановіть необхідні інструменти для
роботи з ESP32, такі як Arduino IDE або PlatformIO. Після цього налаштуйте
середовище для роботи з ESP32, додавши відповідні бібліотеки, включаючи
бібліотеки для роботи з MQTT, наприклад, PubSubClient.
В прошивці ESP32 задайте параметри підключення до вашої Wi-Fi
мережі та налаштуйте підключення до вашого HiveMQ брокера, вказавши
адресу брокера, порт, а також дані для аутентифікації, якщо це необхідно.
3
482.ЧДТУ.42042-01 34 01
Після написання та налаштування коду, завантажте прошивку на ESP32.
Переконайтеся, що ESP32 успішно підключається до Wi-Fi та MQTT брокера,
а також що воно може публікувати та підписуватись на потрібні топіки.
Таким чином, розроблені датчики на базі ESP32 будуть взаємодіяти з
системою через MQTT брокер HiveMQ, дозволяючи обмінюватись даними
ефективно та надійно.
Для налаштування серверу VPS необхідно спочатку підключитися до
нього через SSH. Після підключення оновіть список пакетів і встановіть
Node.js, використовуючи офіційний репозиторій NodeSource для отримання
останньої версії. Після встановлення Node.js, переконайтеся, що він
встановлений правильно, перевіривши версію за допомогою команди node -v.
Наступним кроком є встановлення MongoDB. Додайте офіційний
репозиторій MongoDB до списку репозиторіїв вашої системи та встановіть
MongoDB. Після цього запустіть MongoDB і переконайтеся, що він працює
правильно, перевіривши стан служби за допомогою команди systemctl status
mongod.
Після встановлення MongoDB та Node.js необхідно налаштувати
середовище Node.js для роботи з MQTT та MongoDB. Створіть новий проект
Node.js і встановіть необхідні пакети, такі як mqtt для роботи з MQTT
брокером і mongoose для взаємодії з MongoDB. Напишіть серверний код для
отримання даних від MQTT брокера та збереження їх у базу даних MongoDB.
Таким чином, налаштування серверу VPS з Node.js і MongoDB
дозволить ефективно обробляти, зберігати та аналізувати дані від датчиків на
базі ESP32, забезпечуючи надійну та масштабовану інфраструктуру для вашої
системи.
Важливо налаштувати політику безпеки VPS серверу для роботи з
MQTT, щоб забезпечити захист системи від несанкціонованого доступу та
атак. Один із ключових аспектів безпеки - це налаштування брандмауера, щоб
4
482.ЧДТУ.42042-01 34 01
сервер приймав пакети тільки на певний порт, який використовується для
MQTT.
Після підключення до VPS через SSH, встановіть і налаштуйте
брандмауер, наприклад, ufw (Uncomplicated Firewall). Спочатку дозвольте
тільки необхідні порти. Порт за замовчуванням для MQTT - 1883. Якщо ви
використовуєте захищене з'єднання (TLS/SSL), використовуйте порт 8883.
Налаштуйте брандмауер так, щоб дозволити тільки ці порти та
заблокувати всі інші вхідні з'єднання. Це можна зробити за допомогою
наступних команд:
sudo apt update
sudo apt install ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp
sudo ufw allow 1883/tcp
sudo ufw enable
Ці команди блокують всі вхідні з'єднання, окрім SSH (порт 22) та MQTT
(порт 1883). Якщо використовується TLS/SSL, додайте також порт 8883:
sudo ufw allow 8883/tcp
Крім налаштування брандмауера, важливо забезпечити безпеку самого
брокера MQTT. Налаштуйте аутентифікацію та авторизацію для підключення
клієнтів до брокера. Використовуйте сильні паролі та обмежте доступ до
брокера тільки для довірених пристроїв.
Таким чином, налаштування політики безпеки на VPS сервері
забезпечить захист вашої системи, дозволяючи приймати пакети лише на
певний порт, який використовується для MQTT, та блокуючи всі інші вхідні
з'єднання.
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ
1. Дмитрієнко В.О., Лук’яненко В.Ю. Технологія екологічного
моніторингу повітряних масивів. Київ: НАУ, 2014. 224 с.
2. Дубовик О.О., Глушкова О.В., Масленніков В.П. Моніторинг якості
повітря в промислових регіонах. Дніпропетровськ: Наука і освіта, 2012.
208 с.
3. Павлюк О.О., Кулик Ю.П., Лисенко А.М. Методи моніторингу та
аналізу стану довкілля. Київ: Кондор, 2018. 320 с.
4. Літвинов В.М., Коваленко В.О., Сидорчук В.В. Теоретичні основи
моніторингу і якості повітряних масивів. Львів: Світ, 2010. 272 с.
5. Кузьмін О.В., Іванова Г.І., Шевченко В.О. Екологічний моніторинг та
якість повітря: практичний посібник. Харків: Видавець ХНУ, 2016.
184 с.
6. Шевченко І.В., Кравченко А.В. Моніторинг якості повітряних масивів в
міському середовищі. Київ: УкрГУ, 2017. 192 с.
7. Сидоренко В.А., Петров В.В., Литвиненко О.В. Екологічний
моніторинг атмосферного повітря в містах України. Київ: Аспект-Прес,
2015. 240 с.
8. Ніколаєнко І.С., Савченко А.В., Коваленко В.М. Методика проведення
моніторингу якості повітря в міському середовищі. Одеса: Астропринт,
2013. 176 с.
9. Пономаренко Л.О., Соловйов Д.В. Сучасні технології моніторингу
якості повітря. Львів: Новий Світ-2000, 2019. 312 с.
10.Бєлікова Т.І., Горшков О.В., Кузьмін О.П. Методологія оцінки стану
природного середовища та якості повітря. Чернігів: Видавець ЧДУ,
2014. 248 с.
11.Качмарек В. Arduino для початківців. Навчальний посібник. К.: ДК
Прес, 2017. 352 с.
Арк.
ЧДТУ.242042.004 ПЗ 78
Змн. Арк. № докум. Підпис Дата
12.Саймон М. Вивчення Arduino: Інструменти та методи для інженерного
вміння. - Індіанаполіс: Que Publishing, 2016. 384 с.
13.Спенсер С.Д., Шталц Дж. Raspberry Pi. Експерименти з малими
комп'ютерами, 2016. 512 с.
14.Кінг Б. Програмування мікроконтролерів AVR мовою С. Середовища
та техніки. К.: ДК Прес, 2017. 448 с.
15.О'Рейлі Т., Лукас Дж. Вивчення Python за допомогою Raspberry Pi.
O'Reilly Media, 2016. 288 с.
16.Таненбаум Е., Бос Х. Сучасні операційні системи. Нью-Йорк: Пірсон,
2014. 1120 с.
17.Сейл Е. Raspberry Pi для знавців програмування. К.: ДК Прес, 2017. 432
с.
18.Фаулер М. Постійна інтеграція: Покращення якості програмного
забезпечення та зниження ризиків. Бостон: Addison-Wesley Professional,
2006. 208 с.
19.Бертон С. Гудмен Д. Побудова мікросервісів. O'Reilly Media, 2015.
280 с.
20.Ширлінг Д., Ширлінг Т. Кулінарний рецепт MySQL 8. Бірмінгем: Packt
Publishing, 2018. 570 с.
Арк.
ЧДТУ.242042.004 ПЗ 79
Змн. Арк. № докум. Підпис Дата