ІНФОРМАЦІЙНА ТЕХНОЛОГІЯ АВТОМАТИЗАЦІЇ ОСВІТЛЕННЯ ПРИМІЩЕНЬ

From Wikiversity

ІНФОРМАЦІЙНА ТЕХНОЛОГІЯ АВТОМАТИЗАЦІЇ ОСВІТЛЕННЯ ПРИМІЩЕНЬ[edit]

«Багатофункціональна інформаційна система управління і моніторингу освітленням в поліграфічних приміщеннях» Яремко Яромира Васильовича кафедри інформаційних мультимедійних технологій, науковий керівник професор, д.ф.-м.н. Огірко І.В.

Інформаційні технології[edit]

Інформаційні технології безпекометрії

Логіка та інформаційні технології

Моделювання та технології

АНАЛІТИЧНИЙ ОГЛЯД ПРОБЛЕМИ АВТОМАТИЗАЦІЇ ОСВІТЛЕННЯ ПРИМІЩЕНЬ[edit]

Система керування освітленням однин з найефективніших модулів розумного будинку, оскільки освітлення є найбільший споживач енергії і завдяки такій системі ми можемо керувати світлом таким чином щоб зменшити виплати за електроенергію. Також за допомогою функції віддаленого керування освітленням можна створювати ілюзію присутності людей в будинку чи конкретному приміщенні. Таким чином контролер може частково відповідати за безпеку. На сьогоднішній день без системи освітлення не обходиться жодна технологія Розумний дім , оскільки це дозволяє підвищити безпеку приміщень, зробити більш комфортним управління світлом, та допомогає економити на електроенергії.

Освітлення вимірюється в люксах. Для нормальної життєдіяльності людини і комфортних умов праці цілком прийнятним вважається діапазон освітленості 100-700 лк. Для виконання більш дрібних і точних робіт завжди необхідний більший рівень освітленості. Низькі рівні освітленості робочих приміщень 50-30 лк взагалі небажані, так як продуктивність праці людини при цьому істотно знижується. Відповідно за допомогою декліькох джерел світла, і автоматизованої системи керування освітленням можна організувати комфортну і економну в одночас атмосферу в приміщенні.

Одним з представників таких девайсів є BroadLink TС2-1. TC2 встановлюється замість звичайного настінного вимикача світла, безкоштовний додаток для Apple або Android пристроїв, дві лінії керування, для віддаленого управління по смартфону необхідно використовувати в парі з універсальним пультом RM-Pro. Ви зможете керувати освітленням прямо зі смартфону, з будь-якого віддаленого місця. Зручна Touch панель з підсвіткою буде ідеальним доповненням до дизайну будь-якого приміщення.HTML був побудований так, що сторінки відображалися на всіх пристроях однаково. Пізніше додали графічне оформлення (CSS).

CSS - це фактично мова стилів, яка визначає відображення HTML-документів. CSS працює зі шрифтами, з кольорами символів і фону, з полями, з рядками, з висотою і з шириною елементів відображення, з фоновими зображеннями, з позиціонуванням елементів і багато з чим іншим. Якщо HTML необхідний для структурування змісту сторінки, то CSS необхідний для того, щоб форматувати цей структурований зміст. Використання CSS полегшує створення якісних сайтів, дозволяючи задати стилі окремих елементів сторінок сайту в особливих css-файлах, щоб в подальшому бути впевненим в тому, що всі сторінки сайту будуть витримані в єдиному стилі. Найбільш важливим з усіх файлів стилів є файл style.css - саме в цьому файлі задаються всі основні стилі елементів сайту. Яскравим прикладом достоїнств використання єдиного файлу стилів style.css є оформлення таблиць: задавши в файлі стилів ширину комірок всіх таблиць width: auto; і висоту комірок всіх таблиць height: auto; можна бути впевненим, що ширина і висота всіх осередків всіх таблиць сторінок сайту буде автоматично визначатися змістом комірок.

JavaScript -динамічна, об’єктно-орієнтована, прототипна мова програмування. Реалізація стандарту ECMAScript. Найчастіше використовується для створення сценаріїв веб-сторінок, що надає можливість на стороні клієнта (пристрої кінцевого користувача) взаємодіяти з користувачем, керувати браузером, асинхронно обмінюватися даними з сервером, змінювати структуру та зовнішній вигляд веб-сторінок. JavaScript класифікують як прототипну скриптову мову програмування з динамічною типізацією. Окрім прототипної, JavaScript також частково підтримує інші парадигми програмування (імперативну та частково функціональну) і деякі відповідні архітектурні властивості, зокрема: динамічна та слабка типізація автоматичне керування пам'яттю, прототипне наслідування , функції як об’єкти першог класу. Мова JavaScript використовується для: • написання сценаріїв веб-сторінок для надання їм інтерактивності; • створення односторінкових веб-застосунків ; • програмування на стороні сервера; • стаціонарних застосунків; • мобільних застосунків ; • сценаріїв в прикладному ПЗ • всередині PDF-документів тощо. Незважаючи на схожість назв, мови Java та JavaScript є двома різними мовами, що мають відмінну семантику, хоча й мають схожі риси в стандартних бібліотеках та правилах іменування. Синтакис обох мов отриманий «у спадок» від мови С, але семантика та дизайн JavaScript є результатом впливу мов Self та Scheme. JQuery – бібліотека мови JavaScript, яка позволяє швидше та зручніше писати код. Синтаксис jQuery розроблений, щоб зробити орієнтування у навігації зручнішим завдяки вибору елементів DOM, створенню анімації, обробки подій, і розробки AJAX-застосунків. jQuery також надає можливості для розробників, для створення плагінів у верхній частині бібліотеки JavaScript. Використовуючи ці об'єкти, розробники можуть створювати абстракції для низькорівневої взаємодії та створювати анімацію для ефектів високого рівня. Це сприяє створенню потужних і динамічних веб-сторінок.

Вибір технологій Cloud computing[edit]

Хмарні обчислення або скорочено хмара — модель забезпечення повсюдного та зручного доступу на вимогу через мережу до спільного пулу обчислювальних ресурсів, що підлягають налаштуванню (наприклад, до комунікаційних мереж, серверів, засобів збереження даних, прикладних програм та сервісів), і які можуть бути оперативно надані та звільнені з мінімальними управлінськими затратами та зверненнями до провайдера.

При використанні хмарних обчислень програмне забезпечення надається користувачеві як Інтернет-сервіс. Користувач має доступ до власних даних, але не може управляти і не повинен піклуватися про інфраструктуру, операційну систему і програмне забезпечення, з яким він працює. «Хмарою» метафорично називають інтернет, який приховує всі технічні деталі. Згідно з документом IEEE, опублікованим у 2008 році, «Хмарні обчислення — це парадигма, в рамках якої інформація постійно зберігається на серверах у мережі інтернет і тимчасово кешується на клієнтській стороні, наприклад на персональних комп'ютерах, ігрових приставках, ноутбуках, смартфонах тощо».

Провайдери хмарних рішень дозволяють орендувати через інтернет обчислювальні потужності та дисковий простір. Переваги такого підходу — доступність (користувач платить лише за ті ресурси, які йому потрібні) і можливість гнучкого масштабування. Клієнти позбавляються від необхідності створювати і підтримувати власну обчислювальну інфраструктуру.

За оцінками експертів, використання хмарних технологій в багатьох випадках дозволяє скоротити витрати в два-три рази в порівнянні з утриманням власної розвиненої IT-структури.

«Хмара» відкриває новий підхід до обчислень, при якому ані обладнання, ані програмне забезпечення не належать підприємству. Замість цього провайдер надає замовнику вже готовий сервіс.

До допомоги «хмар» часто вдаються молоді компанії-стартапи, які потребують великих обчислювальних ресурсів для обслуговування користувачів, але не можуть дозволити собі створення і експлуатацію власного дата-центру.

Одним з перших широкодоступних хмарних інтернет-сервісів стала електронна пошта з веб-інтерфейсом. У цьому випадку всі дані зберігаються на віддалених серверах, а користувач отримує доступ до своїх листів через браузер з будь-якого комп'ютера або достатньо потужного мобільного пристрою.

Національним інститутом стандартів і технологій США встановлені такі обов'язкові характеристики хмарних обчислень: Самообслуговування на вимогу споживач самостійно визначає і змінює обчислювальні потреби, такі як серверний час, швидкості доступу та обробки даних, обсяг збережених даних без взаємодії з представником постачальника послуг;Універсальний доступ по мережі, послуги доступні споживачам через мережу передачі даних незалежно від термінального пристрою;Об'єднання ресурсів постачальник послуг об'єднує ресурси для обслуговування великої кількості споживачів в єдиний пул для динамічного перерозподілу потужностей між споживачами в умовах постійної зміни попиту на потужності; при цьому споживачі контролюють тільки основні параметри послуги (наприклад, обсяг даних, швидкість доступу), але фактичний розподіл ресурсів, що надаються споживачеві, здійснює постачальник (в деяких випадках споживачі все ж можуть керувати деякими фізичними параметрами перерозподілу, наприклад, вказувати бажаний центр обробки даних з міркувань географічної близькості); Еластичність, послуги можуть бути надані, розширені, звужені в будь-який момент часу, без додаткових витрат на взаємодію з постачальником, як правило, в автоматичному режимі; Облік споживання, постачальник послуг автоматично обчислює спожиті ресурси на певному рівні абстракції (наприклад, обсяг збережених даних, пропускна здатність, кількість користувачів, кількість транзакцій), і на основі цих даних оцінює обсяг наданих споживачам послуг. З точки зору постачальника, завдяки об'єднанню ресурсів та непостійному характеру споживання з боку споживачів, хмарні обчислення дозволяють економити на масштабах, використовуючи менші апаратні ресурси, ніж при виділенні апаратних потужностей для кожного споживача, а за рахунок автоматизації процедур модифікації виділення ресурсів істотно знижуються витрати на абонентське обслуговування.

З точки зору споживача, ці характеристики дозволяють отримати послуги з високим рівнем доступності і низькими ризиками непрацездатності, забезпечити швидке масштабування обчислювальної системи завдяки еластичності без необхідності створення, обслуговування і модернізації власної апаратної інфраструктури.

Зручність і універсальність доступу забезпечується широкою доступністю послуг і підтримкою різного класу термінальних пристроїв (персональних комп'ютерів, мобільних телефонів, інтернет-планшетів). На сьогодення існує великій асортимент «Хмар», реалізована система використовуватиме Amazon EC2. Amazon EC2 представляє справжнє віртуальне обчислювальне середовище, що дозволяє використовувати інтерфейси веб-служб для запуску екземплярів з різними операційними системами, завантажувати їх у користувацьке середовище додатків, керувати доступами до мережі та керувати зображенням за допомогою багатьох або декількох систем на вибір. Щоб використовувати Amazon EC2, потрібно: • Виберати заздалегідь налаштоване шаблонне зображення на машині Amazon (AMI), щоб негайно почати працювати. Або створити AMI, що містить програми, бібліотеки, дані та пов’язані з ними настройки конфігурації. • Налаштувати безпеку та доступ до мережі на екземплярі Amazon EC2. • Виберати тип інстансу, а потім запускати, завершувати та відстежувати стільки екземплярів AMI, скільки потрібно, використовуючи API веб-служб або різноманітні інструменти управління, що надаються. • Визначити, чи потрібно запускатись у кількох місцях, використовувати статичні кінцеві точки IP або приєднати стійкі блоковані сховища до своїх інстансів. • Оплачувати лише за ресурси, які фактично споживаються, наприклад, години інстансу або передачу даних.

ПРОЕКТУВАННЯ КІБЕРФІЗИЧНОЇ СИСТЕМИ БАГАТОРЕЖИМНОГО ОСВІТЛЕННЯ ПРИМІЩЕНЬ[edit]

Вузол синхронізації та вузол скиду - відповідає за повну синхронізацію всіх вузлів пристрою , і за перезапуск ПЗ на пристрої відповідно. ПЗП – відповідає за постійне зберігання інформації в пристрої якшо це потрібно. ОЗП – динамічна пам’ять яка є досить швидкою і дозволяє обмінюватись інформацією з контролером на досить великій швидкості. Світлодіод – відіграє роль освітлення приміщення. Ethernet адаптер – головний комунікаційний вузол який дозволяє вийти в всесвітню мережу пристрою і обмінюватись інформацією ззовні. Датчик руху – реагує на присутність особи в приміщенні та відсилає сигнали на аналізацію контролеру. Датчик світла – перевіряє чи достатнє освітлення в приміщенні якщо там зафіксований якийсь рух.   Розробка функціональної схеми клієнт-серверної системи

Функціональна схема клієнт серверної системи[edit]

На Google Cloud розгорнуто два інстанис на які положено два Java процеси відповідно, які підняті на віртуальномих серверах TomCat 8. Такий прийом використовується для більшої надійності, якщо один з процесів впаде бо невідомих причинах, то можна буде комунікувати з іншим. Також в Google Cloud знаходиться база даних ще на одному інстансі , вона єдина і до неї звертаються два процеси. За комунікацію користувачів та пристроїв з серверною частиною відповдає Диспетчер-комунікатор, який відіграє роль “load balancer” , цей механізм є ключовим в даній системі оскільки він розприділяє навантаження на кожен інстас якщо наприклад багато користувачів та пристроїв починають одночасно пінгати серверний додаток, в такому випадку “load balancer” буде аналізувати процеси і їхню навантаженість і після цього перенаправляти всі запити клієнтів на потрібний (зручний) екземпляр серверного додатку.

«Load Balancer» можна використовувати для наступних цілей:

• Балансування навантаження вхідного інтернет-трафіку віртуальних машин. Така конфігурація називається загальнодоступним балансувальником навантаження. • Балансування нагрузки трафіку між віртуальними машинами всередині віртуальної мережі. Крім того, можна підключитися до зовнішнього інтерфейсу load balancer з локальної мережі в гібридному сценарії. В обох сценаріях використовується конфігурація, відома як внутрішня підсистема балансування навантаження. • Перенаправлення трафіку на певний порт в певних віртуальних машинах з правилами перетворення вхідних мережевих адрес (NAT). • Забезпечення вихідного підключення для віртуальних машин у віртуальній мережі за рахунок використання загальнодоступної підсистеми балансу навантаження.

Load Balancer надає наступні основні можливості для програм: • Балансування нагрузки. За допомогою Load Balancer можна створити правило балансування навантаження, щоб розподілити вхідний трафік зовнішнього інтерфейсу між екземплярами внутрішньої пулу. Load Balancer використовує алгоритм на основі хеша для розподілу вхідних потоків і відповідним чином перезаписує заголовки потоків копій внутрішньої пулу. Сервер може отримувати нові потоки, коли в результаті перевірки працездатності отримується серверна кінцева точка. За замовчуванням для зіставлення трафіку з доступними серверами Load Balancer використовує хеш з 5 кортежами (вихідний IP-адреса, порт джерела, IP-адреса призначення, порт призначення і тип протоколу). Ви можете створити порівняти з певною вихідною IP-адресою, включивши 2- або 3-х кортежний хеш для даного правила. • Перенаправлення портів. За допомогою Load Balancer можна створити правило перетворення мережевих адрес для вхідних підключень для перенаправлення трафіку з конкретного порту певної IP-адреси зовнішнього інтерфейсу на конкретний порт певного серверного примірника у віртуальній мережі. Крім того, це також досягається за рахунок того ж поширення на основі хеша, що і при балансуванні навантаження. • Перевірки працездатності. Load Balancer використовує задані перевірки працездатності, щоб визначити працездатність екземплярів в серверному пулі. Якщо перевірка не відповідає, балансувальник навантаження припиняє надсилати нове підключення непрацездатним екземплярам. Наявні підключення не будуть зачіпатися і будуть працювати, поки програма не завершить роботу потоку.

MySQL використовується в ролі компонента постійної пам’яті, працює на окремій віртуальній машині. Будь який Java процес може доступитись до нього і витягнути , змінити чи зберегти інформацію. Для доступу до бази даних потрібно знати логін та пароль юзера який був створений під час інсталяції MySQL Server.



Недоліком BroadLink TC2-1 є відсутність автоматичного керування яке аналізує показники з датчиків руху та освітлення, а також неможливість керувати освітленням з ПК чи лептопів.


Управління внутрішнім освітленням здійснюється з урахуванням часу доби і дня тижня. Така схема оснащується системою годинника реального часу і ідеально підійде для людей, які, відправляючись спати, забувають вимкнути світло у ванній або залі. Так само рівень освітлення може регулюватися присутністю людей у приміщенні, датчики присутності включають або відключають освітлення в тій або іншій кімнаті. Така функція спрямована на значну економію електроенергії.

Дистанційне безпровідне управління освітлювальної установкою. Ця функція властива не всім системам «розумного будинку». Однак її реалізація на базі електроніки системи управління освітленням дуже проста, а сама функція додає значне зручність в управлінні освітлювальної установкою. Методами управління установкою освітлення є дискретне відключення або включення всіх або ряду світильників по командам керуючих сигналів. Крім цього системі під силу не тільки відключати систему, але і плавно знижувати потужність освітлення.

Мінусом Smart Bus є те, що дистанційне керування є не достатньо гнучким та кросплатформним. Тому, що в даній системі може відбуватись керування з будь яких пристроїв які підключені до інтернету. А також система Smart Bus не дозволяє підключити тільки керуванням світла, а змушує підключати інші компоненти такі як утеплення і тд.

Досягнення цивілізації покликані в тій чи іншій мірі полегшувати і робити комфортним наше життя. Звичайно ж, такі інновації не могли не торкнутися «нашої фортеці». Будинки, в яких ми живемо, частина нашого життя, де ми проводимо досить багато часу, а значить, повинні поєднувати в собі максимум комфорту, функціональності і допомагати економити. Абсолютно недавно з'явилося поняття «розумний будинок», що включає в себе масу систем і механізмів, але хотілося б зупинитися на варіантах контролю освітлення. Пристрої такого типу можна застосовувати в: • Приватних домах • Квартирах • Офісах • Магазинах • Інших комерційних та некоммерційних приміщеннях Комфортно і безпечно ввечері та вночі стає там, де є якісне вуличне освітлення. Це стосується вулиць міст та сільських населених пунктів, автозаправнок станцій метро, парковок, площ, автомагістралей, пішохідних переходів, мостів, тунелів, складів, будівельних і промислових зон, залізничних переїздів і станцій. Пристрій такого типу можна встановлювати в таких місцях та калібрувати його для того, щоб економити електроенергію. В такій ситуації можливо потрібно буде продумати правильне розташування та алгоритм опрацювання показників від датчиків.

• Точна підтримка штучного освітлення в приміщенні на заданному рівні. Досягається це введенням в систему керування освітленням фотоелементом, що знаходиться всередині приміщення та контролює створену освітлювальною установкою світло. Уже тільки ця функція дозволяє заощаджувати енергію за рахунок відсікання так званої "надлишкової освітленості".

• Якщо підтримувати освітленість, створювану спільно освітлювальною установкою та природним освітленням, на заданому рівні, то можна ще сильніше знизити потужність освітлювальної установки в кожний момент часу.

• В певний час року і години дня можливо досить навіть використання одного природного освітлення. Ця функція може здійснюватися тим же фотоелементом, що і в попередньому випадку, за умови, що він стежить за повною (природною + штучною) освітленості. При цьому економія енергії може складати 20 - 40%.

• Додаткова економія енергії в освітленні може бути досягнута відключенням освітлювальної установки в певні години дня, а також у вихідні та святкові дні. Цей прийом дозволяє ефективно боротися із ситуацією коли людина забуває вимкнути світло, а тим бльше коли вона покидає дім на довгший час. Для її реалізації автоматизована система управління освітленням повинна бути обладнана власним годинником реального часу.

• При оснащенні системи управління освітленням датчиком присутності можна включити і відключити світильники залежно від того, чи є люди в даному приміщенні. Ця функція дозволяє витрачати енергію найбільш оптимально, але її застосування виправдано далеко не у всіх приміщеннях.


Сервер з реляційною базою даних розміщений на Amazon EC2. Amazon Elastic Compute Cloud (Amazon EC2) — веб-сервіс, котрий надає обчислювальні потужності в хмарі. Сервіс входить в інфраструктуру Amazon Web Services. Простий веб-інтерфейс сервісу дозволяє отримати доступ до обчислювальних потужностей і налаштувати ресурси з мінімальними затратами. Він надає користувачам повний контроль над обчислювальними ресурсами, а також доступне середовище для роботи. Служба скорочує час, необхідний для отримання і завантаження нового сервера. Якщо режим є ручний тоді іде ще один HTTP запит який віддає команду про те чи повинне бути включеним освітлення чи ні. Якщо відповідь на перший запит прийшла що пристрій повивнен працювати в автоматичному режимі тоді вмикання або вимикання освітлення залежить від показників датчиків які є в пристрої – датчик руху та датчик освітлення.

Зі сторони користувача – при першому контакті з девайсом юзер повинен вибрати зручний для нього режим роботи. Їх є два ручний або автоматичний. Якщо користувач обрав ручний режим тоді для нього розроблений веб інтерфес на котрому за допомогою user interface він може вмикати та вимикати світло в приміщенні. В випадку коли він обрав автоматичний режим система аналізує показники з датчиків і тоді вмикає або вимикає освітлення. Датчик руху оприділяє чи є хтось в приміщенні а датчик світла вимірює дійсний рівень освітлення.


В сучасному світі сфера автоматизації набула і набуває великого прогресу. Нічого не стоїть на місці і з кожним днем розквивається. А особливо набула розвитку система «Роумний дім», оскільки вона вважється новою і корисною технологією. Ну і звичайно ж ніодна така система не обійдеться без модуля автоматизації освітлення. В даний момент на ринку представлена велика кількість систем «Розумний дім» яка включає в себе модулі для керуванням освітленням. Будь яка компанія відчуває конкуренцію і старається удосконалити та наростити свій пристрій щоб він був кращий ніж в інших. Тому зараз не обходиться простим датчиком руху який буде вмикати чи вимикати світло в залежності від присутності когось.

Найбільш схожий модуль до даного пристрою існує в компанії «NooLite». Цією системою також можна керувати віддалено. Крім цього сенсори мають можливість відсилати показник на контроллер за допомогою з’єднання по bluetooth.Мінусом такого пристрою є те що обмін інформацією в цьому пристрої відбується через bluetooth. Це впливає на якість і швидкість передачі даних від сенсорів до головного контролера а також є ризики скривлення даних через перешкоди.

ВИБІР ЗАСОБІВ ТА КОМПОНЕНТІВ ДЛЯ ПРОЕКТУВАННЯ СИСТЕМИ[edit]

Опис роботи системи можна показати вищепредставленим алгоритмом. Підключивши пристрій вам потрібно відкрити веб сторінку , і ініціалізувати свій пристрій за допомогою HTML-form. Після цього є можливість обрати один з двох режимів роботи. Якщо ви обираєте автоматичний режим , тоді система керуватиме освітлення в залежності від показників датчиків. Якщо датчик руху пришле сигнал, що в приміщенні був зафіксований якийсь рух тоді система передає керування датчику освітлення і чекає відповіного сигналу. Якщо сигнал з наступного датчика приходить негативний – тобто вказує що освітлення недостатнє тоді система подає напругу на відповідні виходи і в приміщенні вмикається освітлення , за деякий час цей алгоритм повториться для того, щоб в разі коли людина покинула приміщення система це зрозуміла і припинила подавати напругу на виходи і освітлення вимкнулось. Якщо датчик присилає позитивний сигнал це означає, що освітленняд достатньо і тоді алгорим прото повториться за деякий час по тій ж самій причині яка вказана вище. Якщо ви обераєте ручний режим керування тоді пристрій ігнорує всі показникик датчиків і считує тільки дані які знаходяться на сервері за допомогою HTTP запиту. В базі даних зберігається, вибраний попередньо вами, стан освітлення (включений / виключений). Кожен раз пристрій звертається на сервер і перевіряє цей атрибут і опираючись на нього керує світлом. Змінювати значення всіх атрибутів можливо за допомогою в веб інтерфейсу який видається сервером в вигляді HTML сторінки.

Вибір апаратних засобів реалізації[edit]

В якості елементної бази використано платформу Arduino, оскільки вона надає досить широкі можливості для реалізації найрізноманітніших пристроїв, бо по суті являється платою – конструктором. Отже Arduino - це платформа з відкритим кодом, створена для швидкої і легкої розробки різноманітних електронних пристроїв. Основними компонентами платформи є плата вводу/виводу та середовище розробки на мові С, С++, Python та інші. Arduino може використовуватися як для створення автономних інтерактивних об'єктів, так і підключатися до програмного забезпечення, яке виконується на комп'ютері (наприклад: Adobe Flash, Processing, Max/MSP, Pure Data, SuperCollider). На основі Arduino розробляють навчальні приклади, роботів, системи спостереження і безпеки, аналоги систем типу «розумний дім», гірлянду з "біжучими вогнями", цифровий кодований замок, дистанційний пульт для керування побутовими пристроями, систему для автоматичного поливання квітів і т.п. Повірте, це не складно, якщо ви скористаєтесь Arduino. Arduino складається з мікроконтролера Atmel, а також елементів обв’язки для програмування та інтеграції з іншими пристроями. На багатьох платах наявний лінійний стабілізатор напруги +5В або +3,3В. Тактування здійснюється на частоті 84, 16 або 8 МГц кварцовим резонатором. У мікроконтролер записаний завантажувач (bootloader), тому зовнішній програматор не потрібен. Усі плати програмуються через через USB, що можливо завдяки мікросхемі конвертера USB-to-Serial. У версії платформи Arduino UNO в якості конвертера використовується контролер Atmega16U2 у SMD-корпусі. Дане рішення дозволяє програмувати конвертер таким чином, щоб платформа відразу розпізнавалася, як миша, джойстик чи інший пристрій за вибором розробника зі всіма необхідними додатковими сигналами керування. У деяких варіантах, таких як Arduino Mini, для програмування потрібно підключити до контролера окремий перетворювач USB-to-Serial. Плати Arduino дозволяють використовувати значну кількість I/O виводів мікроконтролера у зовнішніх схемах. Наприклад, у платі Arduino UNO доступно 14 цифрових входів/виходів, 6 із яких можуть видавати PWM сигнал, і 6 аналогових входів. Ці сигнали доступні на платі через контактні площадки або штирьові роз’єми. Також існує багато видів зовнішніх плат розширення, які називаються "shields" ("щити"), які приєднуються до плати Arduino через штирьові роз’єми. Оригінальна Arduino Mega 2560 Rev3. Виробництво - Італія. Rev3 це остання версія мікроконтролерної плати від Arduino. Базується на потужному чіпі ATmega2560 працює на частоті 16 МГц. Має 54 цифровых входи / вихода 14 з яких можуть працювати в режимі ШІМ (PWM), 16 аналогових входів, 4 пристроїв послідовного підключення UART для зв'язку з комп'ютером та іншими пристроями, роз'єм USB, роз'єм для зовнішнього живлення, ICSP хідер і кнопка Reset. Нова версія Rev3 включає в себе Chip Atmega16U2 з програмною прошивкою конвертера "USB-послідовний порт", замість використовуваних в більш ранніх версіях FTDI мікросхем, що дозволяє підвищити швидкість передачі даних.

Arduino Mega підключений черезе USB або від зовнішнього джерела живлення - тип джерела вибирається автоматично. В якості зовнішнього джерела живлення (не USB) може використовуватися мережевий адаптер змінного струму або постійного струму або акумулятор чи батарея. Штекер адаптера (діаметр - 2,1мм, центральний контакт - позитивний) необхідно вставити у відповідний роз'єм живлення на платі. У разі потреби від акумулятора чи батареї, її провода необхідно підключити до виводів Gnd та Vin роз'єму POWER.

Інфрачервоний датчик руху для Arduino і інших мікроконтролерів. Дозволяє виявляти рух людини або домашньої тварини на відстані до 7 метрів. Має два входи живлення (+5 В і Земля) і один цифровий вихід, за яким можна знімати дані. Якщо перешкод немає - на ньому буде високий рівень (3.3В), якщо є - низький (0В). Якщо перемичка встановлена в положення H, то на виході буде високий рівень весь час, поки датчик буде вловлювати рух, якщо в стан L, то стан виходу буде переключатися з високого на низький і назад приблизно раз в секунду. Для більшості проектів положення H більш використовуваніше. Принцип роботи модуля HC-SR501 полягає у реєстрації інфрачервоного випромінювання від рухомого об'єкта. Чутливий елемент - піроелектричний датчик 500BP. Він складається з двох елементів укладеного в одному корпусі. Чутливий елемент закритий білим куполом - лінзой Френеля. Особливості лінзи Френеля такі, що інфрачервоне випромінювання від рухомого об'єкта потрапляє спочатку на один елемент датчика 500BP, потім на інший. Електроніка модуля HC-SR501 реєструє послідовний потік сигналів від двох елементів зі складу 500BP і при фіксації руху вихідний блок модуля формує логічний сигнал. Плата розширення Aduino Ethernet побудована на базі Ethernet-контролера Wiznet W5100, що дозволяє Ардуїно підключитися до мережі Інтернет. Wiznet W5100 підтримує стек мережевих протоколів (IP) і дозволяє працювати як з TCP, так і з UDP-протоколами. При цьому мікросхема може обслуговувати до чотирьох одночасно відкритих сокет-з'єднань. Для написання програм, що працюють з глобальною мережею через плату розширення, рекомендується використовувати бібліотеку Ethernet.

Для підключення платів розширення до Ардуїно передбачений спеціальний роз'єм, що представляє собою металеві виводи ("папа") з одного боку плати та гнізда ("мама") - з іншого боку. Така конструкція дозволяє підключити до Ардуїна кілька плат розширення, розмістивши їх одну над іншою. Технічна версія плати розширення підтримує технологію Power over Ethernet (PoE) і може працювати з спеціальним модулем, що дозволяє отримувати енергію через Ethernet-кабель. Інтегроване середовище розробки Arduino це багатоплатформовий додаток на Java, що включає в себе редактор коду, компілятор і модуль передачі прошивки в плату. Середовище розробки засноване на мові програмування Processing та спроектована для програмування новачками, не знайомими близько з розробкою програмного забезпечення. Мова програмування аналогічна мові Wiring. Строго кажучи, це C++, доповнений деякими бібліотеками. Програми обробляються за допомогою препроцесора, а потім компілюється за допомогою AVR-GCC. Програми Arduino пишуться на мові програмування C або C++. Середовище розробки Arduino поставляється разом із бібліотекою програм, яка називається «Wiring»

Обрана мова для імплементування серверної частини - Java[edit]

Для написання серверного додатку було обрано мову програмування Java. Ця мова є об’єтно-орієнтованою та кросплатформеною, випущена компанією SunMicrosystem але в 2009 році була викуплена корпорацією Oracle. Мова значно запозичила синтаксис із C і C++. Зокрема, взято за основу об'єктну модель С++, проте її модифіковано. Усунуто можливість появи деяких конфліктних ситуацій, що могли виникнути через помилки програміста та полегшено сам процес розробки об'єктно-орієнтованих програм. Ряд дій, які в С/C++ повинні здійснювати програмісти, доручено віртуальній машині. Передусім Java розроблялась як платформо-незалежна мова, тому вона має менше низькорівневих можливостей для роботи з апаратним забезпеченням, що в порівнянні, наприклад, з C++ зменшує швидкість роботи програм. За необхідності таких дій Java дозволяє викликати підпрограми, написані іншими мовами програмування. Кросплатформеність — властивість програмного забезпечення працювати більш ніж на одній програмній чи апаратній платформах. Забезпечується завдяки використанню високорівневих мов програмування, середовищ розробки і виконання, що підтримують умовну компіляцію, компоновку і виконання коду для різних платформ. Типовим прикладом є програмне забезпечення, призначене для роботи в операційних системах Linux і Windows одночасно. Здійснюється реалізацією одних і тих же функцій для кожної операційної системи окремо. Кросплатформеність в Java реалізована за допомогою JVM. JVM – це програмне забезпечення, засноване на поняттях і ідеї щодо уявного комп'ютера, який має логічний набір команд, і команд, що визначають операції цього комп'ютера. Це можна сказати, невелика операційна система. Вона формує необхідний рівень абстракції, де досягається незалежність від платформи, використовуваного обладнання. JVM використовує байт-код Java, який як правило, але не завжди генерується з вихідних кодів мови програмування Java; віртуальну машину також застосовують для виконання коду, згенерованого з інших мов програмування. Наприклад, вихідний код Ada можна скомпілювати у Java байт-код. Коли код виконується за допомогою JVM, то існує один спеціальний реєстр, який використовується як лічильник, вказуючи виконуються в даний час команди. Якщо необхідно, команди змінюють програму, змінюють потік виконання, інакше потік послідовний і переходить від однієї команди до іншої. Віртуальная Машина Java надає від платформи незалежний спосіб виконання коду, завдяки абстрагування від відмінностей в операційних системах і архітектурі ЦПУ. Середовища розробки Java доступна для безлічі різних комбінацій апаратного і програмного забезпечення. Програмісти можуть сконцентрувати свої зусилля на написанні ПО, і їм не потрібно переживати про те, як або де воно буде запущено. Ідея використання віртуальних машин не нова, але на сьогоднішній день віртуальна машина Java - сама використовувана. Завдяки JVM, мрія про створення програм за принципом «Напиши одного разу – запускай скрізь» (Write Once – Run Anywhere) стала реальністю. Об'єктно - орієнтоване програмування (ООП) – це модель програмування яка базується на стверджені того, що програма це сукупність об’єктів які взаємодіють між собою. Кожен об’єкт в цій моделі є незалежним, і він здатний отримувати, обробляти дані та відправляти ці дані іншим об’єктам. В ООП використано моделі успадкування, модульності, поліморфізму та інкапсуляції. Основним поняттям ООП є об'єкт. Об'єкт можна визначити як певну сукупність даних(характеристик об'єкта) та методів роботи з ними. Для класифікації об'єктів у ООП використовують класи. Клас служить зразком для створення обєкту, тобто об'єкт є нічим іншим, ніж копією класу. Кожен об'єкт має процедури і функції (те що він уміє виконувати, наприклад, завантажувати файл, відображати картинку і т.д.), які служать для роботи з даними об'єкта. Ці процедури і функції називаються методами. Існування ООП можливе завдяки трьом основним парадигмам на яких базується саме ООП: - Інкапсуляція. Також відома як приховування даних. Зміст інкапсуляції полягає у приховуванні від зовнішнього користувача деталей реалізації об'єкта, замість цього надаючи інтерфейс взаємодії з ним. - Успадкування. Це означає, що об'єкти (класи) можуть переймати деякі властивості у своїх прабатьків. Як? Це залежить від тієї мови, на якому пишеться програма. Однак у будь-якому випадку картина та ж: це призводить до повторного використання вже написаного одного разу коду. Підкласи успадковують атрибути та поведінку своїх батьківських класів, і можуть мати нові власні атрибути. Тобто утворюється ієрархія з класів, де від основного класу(так званого, предка) походять усі інші класи. Приклад такого розгалуженого "дерева" зображено на схемі. Ієрархія класів - Поліморфізм означає залежність поведінки від класу, в якому ця поведінка викликається, тобто, два або більше класів можуть реагувати по різному на однакові повідомлення. Це спричинене зміною в одного з класів якогось методу(процедури, функції), шляхом запису іншого алгоритму. Як приклад, деяка комп'ютерна програма при натисканні клавіші Esc завершить роботу, інша ж програма після натискання кнопки Esc тільки відкриє меню даної програми. Для написання коду використовувалось інтегроване середовище розробки Intelij IDEA від компанії JetBrains оскільки воно є одне з найзручніших і найпопулярніших. IntelliJ IDEA – середовище розробки програмного забезпечення, орієнтоване на продуктивність та зосередження розробника на важливих завданнях. IntelliJ IDEA здатна аналізувати написаний код, що дозволяє підібрати найбільш відповідні варіанти для автозаповнення та різні методи вирішення проблеми у разі допущеної помилки. Програма містить вбудовані редактори для більшості мов програмування. IntelliJ IDEA підтримує найпоширеніші каркаси, як Java EE, Spring, Grails, Play, Android, GWT, Vaadin тощо. Програма працює з розгорнутими базами даних користувача та сумісна з іншими системами управління версіями. Також IntelliJ IDEA містить інструменти для розробки графічного інтерфейса користувача. Основні особливості: • Потужний редактор коду • Підтримка поширених каркасів та мов програмування • Інтеграція з серверами додатків • Контроль версій • Розробка графічного інтерфейса користувача • Робота з базами даних Перша версія IntelliJ IDEA з'явилася у січні 2001 року й швидко здобула популярність, як перша Java IDE із широким набором інтегрованих інструментів для удосконаленнята аналізу коду, що дозволяла програмістам швидко реорганізовувати сирцевий код програм. Дизайн середовища орієнтовано на продуктивність праці програмістів, дозволяючи їм сконцентруватися на розробці функціональності, тоді як IntelliJ IDEA бере на себе виконання рутинних операцій.

Реляційна база даних – SQL[edit]

При проектуванні даної системи було вирішено обрати реляційну базу даних SQL. Оскільки вона покриває всі потреби цього проекту. При розробці дизайну таблиць використовувалась система керування базою даних MySQL. Для запису, вибірки та обробки даних, що зберігаються в комп'ютерній базі даних, необхідна система управління базою даних, якою і є програмне забеспечення MySQL. База даних MySQL - реляційна база даних. У реляційній базі даних дані зберігаються не всі однією кучею, а в окремих таблицях, завдяки чому досягається виграш у швидкості та гнучкості. Таблиці зв'язуються між собою за допомогою відносин, завдяки чому забезпечується можливість об'єднувати при виконанні запиту дані з декількох таблиць. SQL як частина системи MySQL можна охарактеризувати як мова структурованих запитів плюс найбільш поширений стандарт, що використовується для доступу до баз даних. СУБД MySQL є системою клієнт-сервер, яка містить багато-поточний SQL-сервер, що забезпечує підтримку різних обчислювальних машин баз даних, а також кілька різних клієнтських програм і бібліотек, засоби адміністрування і широкий спектр програмних інтерфейсів (API). Сервер MySQL постійно працює на комп'ютері. Клієнтські програми посилають серверу MySQL SQL-запити через механізм сокетів (тобто за допомогою мережевих засобів), сервер їх обробляє і запам'ятовує результат. Тобто скрипт (клієнт) вказує, яку інформацію він хоче отримати від сервера баз даних. Потім сервер баз даних посилає відповідь клієнтові . Структура MySQL трирівнева: • бази даних; • таблиці; • записи. Логічно - таблиця являє собою сукупність записів. А записи - це сукупність полів різного типу. Ім'я бази даних MySQL унікально в межах системи, а таблиці - в межах бази даних, поля – в межах таблиці. Один сервер MySQL може підтримувати відразу декілька баз даних, доступ до яких може розмежовуватися логіном і паролем. Знаючи ці логін і пароль, можна працювати з конкретною базою даних. Наприклад, можна створити або видалити в ній таблицю, додати записи і т. д. Зазвичай ім'я-ідентифікатор та пароль призначаються хостинг провайдерами, які і забезпечують підтримку MySQL для своїх користувачів. Для роботи з MySQL при створенні бази даних використовувалось середовище MySQL WorkBench. Воно є зручне для написання скрипті і динамічного створення діаграм які описують струтуру бази даних.

Вибір бібліотек та фреймворків для проектування системи[edit]

Під час програмування апаратурної частини використовувались такі бібліотеки:

• ArduinoJson.h • SPI.h • Ethernet.h Бібліотека SPI.h допомагає Arduino взаємодіяти з пристроями які підтримують SPI протокол. Arduino в такому випадку виступає як ключовий пристрій. Бібліотека ArduinoJson.h допомагає працювати з об’єктами JSON. В ній є набір функцій за допомогою яких можна витягнути значення атрибутів знаючи їхній ключ. Бібліотека Ethernet.h дозволяє Arduino вийти в Інтернет з використанням плати розширення Arduino Ethernet. При цьому Arduino може виступати як у ролі сервера, що приймає вхідні з'єднання, так і клієнта, що з'єднується з віддаленим сервером. Бібліотека підтримує до 4 одночасних зв'язків Під час програмування серверної частини використовувались такі бібліотеки та фреймворки: • Maven • Spring Core • Spring Boot • Spring MVC • Spring Data • Jackson • Apache Maven - це фреймфорк, створений для полегшення збірки Java-проектів. Maven дозволяє прописувати усі залежності проекту в окремому файлі - "pom.xml" (Project Object Model), тобто замість завантаження усіх необхідних бібліотек у каталог проекту, достатньо дописати їх у файл. Всі описані в "pom.xml" сторонні бібліотеки завантажуються під час збірки з Maven-репозитарію. Окрім опису залежностей, файл "pom.xml" також містить інформацію про проект та деталі конфігурації. o Переваги Maven: o Полегшує збірку o Створює універсальну систему збірки o Надає інформацію про характеристики проекту o Дозволяє легко додавати новий функціонал Spring Core – основна частина платформи Spring, реалізуючий інверсійний контроль. IoC - принцип об'єктно-орієнтованого програмування, який призначений для зменшення пов'язаності модулів і класів програми. Даний принцип входить в п'ятірку SOLID принципів. Якщо не вдаватися в подробиці, то в ньому говориться, що модулі верхніх рівнів не повинні залежати від модулів нижніх рівнів. Дані модулі повинні залежати від абстракцій. А якщо ще простіше, то потрібно намагатися програмувати на рівні абстракцій, а не реалізацій. Тоді, коли Ваша реалізація буде змінюватися, її зміни не торкнуться верхні рівні. Dependency injection (DI) - якраз і є однією з реалізацій IoC. Spring Framework має дуже відмінну підтримку DI. Реалізовується «Dependency injection» в Spring Framework за допогою контексту. ApplicationContext - це серце спрінга. Як правило, він створюється на самому початку роботи програми («піднімається») і керує життєвим циклом бінів. Тому його ще називають контейнером бінів Бін - об'єкт класу, що представляє собою завершений програмний елемент з певної бізнес-функцією або внутрішньою функцією Spring'а, життєвим циклом якого управляє контейнер бінів. Тобто, бін - створюваний Spring об'єкт класу, який можна впровадити в якості значення поля в інший об'єкт з того самого контейнера (ApplicationContext).

• Spring Boot - це корисний проект, метою якого є спрощення створення додатків на основі Spring. Він дозволяє найбільш простим способом створити web-додаток, вимагаючи від розробників мінімум зусиль по його настройці і написання коду. Spring Boot володіє великим функціоналом, але його найбільш значущими особливостями є: управління залежностями, автоматична конфігурація і вбудовані контейнери сервлетів. Щоб прискорити процес керування залежностями, Spring Boot неявно спаковує необхідні сторонні залежності для кожного типу додатків на основі Spring і надає їх розробнику за допомогою так званих starter-пакетів (spring-boot-starter-web, spring-boot-starter-data-jpa і т.д.) Starter-пакети становлять собою набір зручних дескрипторів залежностей, які можна включити в свій додаток. Це дозволить отримати універсальне рішення для всіх, пов'язаних зі Spring технологій, позбавляючи програміста від зайвого пошуку прикладів коду та завантаження з них необхідних дескрипторів залежностей. Наприклад, якщо ви хочете почати використовувати Spring Data JPA для доступу до бази даних, просто додайте в свій проект залежність spring-boot-starter-data-jpa і все буде готово (вам не доведеться шукати сумісні драйвери баз даних і бібліотеки Hibernate)

• Фреймворк Spring MVC забезпечує архітектуру паттерна Model - View - Controller (Модель - Відображення (далі - Вид) - Контролер) за допомогою слабо пов'язаних готових компонентів. Патерн MVC розділяє аспекти додатки (логіку введення, бізнес-логіку і логіку UI), забезпечуючи при цьому вільну зв'язок між ними.

o Model (Модель) інкапсулює (об'єднує) дані програми, в цілому вони будуть складатися з POJO («Старих добрих Java-об'єктів», або бінів). o View (Відображення, Вид) відповідає за відображення даних Моделі, - як правило, генеруючи HTML, які ми бачимо в своєму браузері. o Controller (Контролер) обробляє запит користувача, створює відповідну Модель і передає її для відображення в Вид.

• Spring Data - додатковий зручний механізм для взаємодії з сутностями бази даних, організації їх в репозиторії, вилучення, зміна, додавання, витягнення даних, в деяких випадках для цього буде достатньо оголосити інтерфейс і метод в ньому, без імплементації. Основний функціонал: o Spring Repository o Методи запитів з імені методу o Конфігурація та налаштування o Спеціальна обробка параметрів o Призначені для користувача реалізації для сховища o Призначений для користувача «Базовий Репозиторий» o Методи запитів - Query

• Jackson – набір інструментів для обробки даних, заснований на потоковому JSON-парсері і генераторі. Призначений для Java, бібліотека вміє працювати не тільки з JSON. Має найпопулярніший JSON-парсер (виходячи зі статистики використання на GitHub).

Проектування функціональної схеми пристрою системи[edit]

Отже при кожному повторенні функції loop() , першочергово перевіряється показники з датчика руху і тільки тоді якщо з датчика приходить сигнал HIGH, починається зчитувана показників з датчика освітлення , якщо він теж присилає сигнал HIGH тоді передається напруха на вихід на якому прикріплений світлодіод, якщо датчик руху передає сигнал LOW , в такому випадку показники з датчика свіла навіть не розглядаються. Наступним кроком потрібно навчити пристрій комунікувати з серверами через HTTP протокол.Class-Entity слжить нам для того щоб описати нашу таблицю. Сам клас це є відношення(таблиця), кожне поле класу описує атрибути таблиці (стовбці), об’єкти класу це є кортежі (рядки - записи). Анотація @Id говорить що поле з назвою id буде первинним ключем нашого вдіношення, @GeneratedValue говорить про те як буде генеруватись первинний ключ, а саме автоматично ,по зростанню і завжди новим значенням. Далі потрібно реалізувати паттерн DAO (Data Access Object) ,в цьому нам допоможе Spring Data. Створюється інтерфейс який наслідує інтерфейс JpaRepository. Ініціалізовуються Generic типи : перший клас який описує таблицю доступ до якої и хочемо отримати, другий тип первинного ключа .Після цього потрібно поставити анотацію @Repository, вона вказує що при запуску програми Spring Core повиннен створити бін цього типу. Бін це об’єкт який лежить в контейнері Spring і в будь який момент можна провести ін’єкцію і отратимати реалізацію там де вона потрібна. І в такому випадку реалізація інтерфейсу генерується самим Spring. В реалізації цього інтерфесу будуть реалізовані всі оголошені методи з JpaRepository.

Дослідження та аналіз які проведені під час проектування системи[edit]

Під час дослідження кіберфізичної системи багаторежимного освітлення приміщень було засфіксовано такі факти: • В пристроя такого типу є достатня кількість аналогів тобто він має велику конкуренуцію на ринку та користується попитом серед користувачів технології «Розумний дім». • Систематичні оновлення систем в конкурентів. • Було досліджено, що використаний датчик руху не доцільно використовувати в приміщеннях довжина яких є більш ніж 7 метрів. • Після того як освітлення ввімкнулось в автоматичному режимі , а переаналізація стану відбувається через ~2-3 секнди. • Також було знайдень можливість калібрування кожного з датчиків. • Можливість встановлювати зовнішні бібліотеки через інструмент «Manager library» в Arduino IDE.


Під час проектування системи було проаналізовано : • Бібліотека Ethernet.h не зовсім підходить для вимог пристрою оскільки повертає відповідь на HTTP запит з метаданими. Тому було обрано бібліотеку HttpClient.h яка повертає тільки тіло. • Віртуальна мережа AWS є більш ефективною і економічнішою ніж покупка окремих інстансів на інших ресурсах. • Аналогічні пристрої і визначені всі їхні характеристики та властивості. • Переваги та недоліки кіберфізичної системи багаторежимного освітлення приміщень.

Даний аналог може використовуватися в приміщеннях будь-якого типу. А також пристрій можна синхронізовувати з різноманітними системами розумного будинку. До функціональних можливостей даного пристрою можна віднести - вмикання / вимикання освітлення при спрацьовуванні зовнішніх сповіщувачів (наприклад, датчика руху). Ручний режим можна ввімкнути за допомогою веб-сторінки яку видає серверний додаток , на ній є функціонал для зміни режиму роботи, а також для зміни стану освітлення яким ми можемо керувати віддалено. Це реалізовано за допомогою серверної частини яка побудовна на мові Java та реляційній базі даних MySQL. Кожен запрограмований період часу пистрій звертається на сервер для того щоб проаналізувати який режим роботи був обраний користувачем. Java процес був клонований та обоє запущенні паралельно на двох інстансах для більшої надійності. Механізм розвантаження екземляра серверного додатку був реаізований за допомогою Load balancer. В результаті ми отримали кіберфізичну розподілену клієнт-серверну систему яка складається з пристроя(Arduino Mega і його агентів), що є клієнтом та Java процесів з базою даних та Load balancer в ролі сервера. Комунікація відбувається за допомогою REST архітектурного стилю який повністю підтримує HTTP протокол. Також було розроблено структурну , функціональну схеми апаратної частини і функціональну схему клієнт-серверної архітектури. І розроблено алгоритм роботи всієї розподіленої системи. Здійснене економічне обгрунтування розробленого рішення і визначено показники економічної ефективності. Було проаналізовані всі сфери діяльності в яких система може бути ефективною і визначено, що подібні модулі користуються попитом на сучасному ринку, не дивлячись на достатньо велику конкуренцію.

Інформаційні системи в оперативній поліграфії

Інформаційні технології медичного туризму

ІНФОРМАЦІЙНА ТЕХНОЛОГІЯ ВИЗНАЧЕННЯ ЕНЕРГЕТИЧНИХ ХАРАКТЕРИСТИК ПОВЕРХНЕВИХ ШАРIВ МЕТАЛІВ З ВИКОРИСТАННЯМ АЛГЕБРИ АЛГОРИТМІВ

Інформаційні технології рерайтинга в е- поліграфії.

Список використаних джерел[edit]

1. Программирование ARDUINO. Создаем практические устройства: Белов А.В. 2018 рік випуску. 2. Шилдт Г. - Java 8. Полное руководство. 9-е издание. 2015 рік випуску 3. Плата з мікроконтролером Atmega2560 [ Електронний ресурс ]. – Режим доступу - : Інтернет ресурс: https://arduino.ua/prod176-Arduino_Mega2560 4. Датчик руху для плати Arduino [ Електронний ресурс ]. – Режим доступу - : Інтернет ресурс: https://arduino.ua/prod193-IK_datchik_dvijeniya_dlya_Arduino 5. Датчик освітлення для плати Arduino[ Електронний ресурс ]. – Режим доступу - : Інтернет ресурс: https://arduino.ua/prod1213-modyl-datchika-osveshhennosti 6. Spring framework - офіційна документація[ Електронний ресурс ]. – Режим доступу - : Інтернет ресурс: https://spring.io/docs 7. Плата розширення для виходу в інтернет Ethernet[ Електронний ресурс ]. – Режим доступу - : Інтернет ресурс: https://arduino.ua/prod391-W5100_ethernet_shield 8. HTTP протокол[ Електронний ресурс ]. – Режим доступу - : Інтернет ресурс: https://www3.ntu.edu.sg/home/ehchua/programming/webprogramming/HTTP_Basics.html 9. JavaScript довідник[ Електронний ресурс ]. – Режим доступу - : Інтернет ресурс: https://learn.javascript.ru 10. Офіційна документація JQuery[ Електронний ресурс ]. – Режим доступу - : Інтернет ресурс: http://api.jquery.com 11. Офіційна документація MySQL[ Електронний ресурс ]. – Режим доступу - : Інтернет ресурс: https://dev.mysql.com/doc/

Для студентів старших років навчання. Основною метою є ознайомлення студентів з основами проведення наукових досліджень. Підготував Яремко Яромир Васильович. Огірко І.В.