**Технології індустрії 4.0. Лабораторний практикум. ** Автор і лектор: Олександр Пупена
<- до лаборних робіт | на основну сторінку курсу |
---|---|
У цій лабораторній роботі необхідно забезпечити інтегрування Node-RED з хмарним застосунком Google Sheet
(Електронна таблиця) та сервісом Telegram
. Це дасть можливість забезпечити передачу даних з RaspberryPI на хмару для аналізу та взаємодію з віддаленим користувачем. Node-RED можна запускати як на ПК так і на RPI.
рис.3.1.Структура системи з використанням хмарних застосунків.
Якщо у Вас немає облікового запису Google - створіть його на сайті. Це безкоштовно, потребується тільки поштова скринька і номер телефону.
рис.3.2. Прийняття умов користування
рис.3.3. Створення проекту
рис.3.4. Створення проекту (назва)
рис.3.5. Створення сервісного акаунту
рис.3.6. Створення сервісного акаунту (назва)
рис.3.7. Створення ключа сервісного акаунту
рис.3.8. Активація доступу до сервісів Гугл
G Suite
Google Sheets
рис.3.9. Вибір хмарного сервісу
рис.3.10. Включення активації сервісу
У даній частині лабораторної роботи необхідно забезпечити запис значень з Node-RED в електронну таблицю, що обслуговується хмарним електронним застосунком Google Sheet
.
запустіть Node-RED
встановіть бібліотеку node-red-contrib-google-sheets
Google Sheet
Google Sheet
- це хмарний застосунок від Google для роботи з електронними таблицями. За функціональністю і принципами роботи він схожий на Microsoft Excel
. Усі створені таблиці зберігаються на Гугл Диску (Google Drive
)
Google Sheet
(Таблиці
)рис.3.11. Створення таблиці Google Sheet
Альтернативно можна відразу перейти на сторінку
У новому вікні натисніть кнопку “+” (створити) щоб створити нову електронну таблицю
Змініть назву документу на якусь більш прийнятну, наприклад RPIData
У даному пункті необхідно створити фрагмент, який буде вміщувати буфер останніх 60-ти значень імітованих змінних rad
та val
а також дати та часу їх зміни. Такий буфер можна організувати різним чином, однак для спрощення були використані властивості масивів в JavaSript як черг та стеків. Кожне нове обчислення записується на верх масиву. Таким чином, спочатку “буфер-масив” буде наповнюватися аж до 60-го елементу. Коли елементів стане більше ніж 60 (тобто 61), нижні елементи виймаються, і масив “зсувається” вниз. І так кожного разу при виклику функції. Для збереження даних масиву між викликами використовується контекст потоку.
Про всяк випадок, зроблена також перевірка на переповнення масиву: коли кількість елементів повинна бути 60, а вона все одно більша - масив обрізається до 60-ти елементів. Така ситуація не повинна відбуватися, але бажано передбачати такі випадки.
clouds
.рис.3.12. Фрагмент програми для запису даних в масив
let now = new Date ();//сьогодні
//trend - 2-мірний масив 3x60, на 60 останніх значень
//читання з контексту потоку або ініціалізація масиву-буферу
let trend = flow.get ("trend") || [[now.toLocaleString()],[0],[0]];
let l = trend[0].length; //довжина мавису
//з кожним викликом збільшуємо градуси в радіанах
let rad = trend[1][l-1] + Math.PI/5;
if (rad>=Math.PI*2) rad=0;//обнуляємо після повного кола
let val = Math.sin (rad); //вираховуємо синус
//на "верх" масиву добавляємо елементи
trend[0].push (now.toLocaleString());//дата час
trend[1].push (rad); //радіани
trend[2].push (val); //значення синусу
//якщо масив заповнився до 60
if (trend[0].length >60){
trend[0].shift ();//вилучаємо перший (найстаріший) елемент
trend[1].shift ();
trend[2].shift ();
//після цього масиви повинні зменшитися на 1 елемент (60)
//і зсунутися вниз
//у випадку, якщо раптом елементів більше 60
//наприклад були добавлені випадково стороннім кодом
//зробити кількість елементів =60
trend[0].length = 60;//
trend[1].length = 60;
trend[2].length = 60;
}
flow.set ("trend", trend);//записати в контекст потоку
return msg;
зробіть розгортання потоку
проаналізуйте контекст потоку, як він наповнюється з кожною секундою, він повинен мати вигляд як на рис.3.12 (не забудьте натискати кнопку оновлення)
Користуючись рекомендаціями щодо роботи з базовими функціями читання та запису Google Sheet :
надайте доступ до Гугл таблиці створеному раніше сервісному аккаунту
добавте наступний фрагмент потоку.
рис.3.13. Фрагмент запису в електронну таблицю значень буферу
рис.3.14. Таблиця з записаними даними
рис.3.15. Відображення діаграми за записаними в Google Sheet даними
Назвіть основні причини, чому стандарти кібербезпеки в сфері ІТ не підходять для систем АСКТП.
Дайте визначення поняттю “кібератака”.
Яка мета та причини кібератак?
Розкажіть про внутрішні та зовнішні загрози кібератак.
Що таке вектор атак. Назвіть приклади векторів атак?
Наведіть приклади вразливостей для кібератак в системі.
Навіщо потрібні політики безпеки?
Наведіть приклади вхідних вразливих точок для підприємства з інтегрованою системою керування, що має впроваджений зв’язок з Інтернет.
Що передбачає ідентифікація та контроль активів і персоналу?
Що передбачають архітектурні підходи до захисту?
Що таке зона безпеки і тракт?
Що таке демілітаризована зона?
Що передбачає захист фізичного доступу?
Назвіть мережні захисні компоненти.
Що передбачає керування доступом?
Що таке зміцнення конфігурацій?
Що дає шифрування повідомлень?
Розкажіть про стратегію захисту вглибину.
Прокоментуйте “13 хороших практик” для кіберзахисту АСКТП.