Система повинна забезпечувати відображення в реальному часі, архівування та звітування про стан температури, вологості, тиску, наявність дощу
Система повинна передбачати виконання натупних функцій:
- Вимірюваня температури, вологості, тиску, наявність дощу з періодичністю не більше 5 секунд.
- Відображення значень показників на локальному WEB-інтерфейсі та віддалено за допомогою Телеграм-бота.
- Архівування значень показників в локальну базу даних.
- Відображення значень показників у вигляді трендів за останні 60 хвилин на: локальному ВЕБ-ітерфейсі, Google Worksheet.
Вимоги до апаратного забезпечення
Необхідно використання наступних засобів:
- Raspberry PI3, або аналогічний, що має вбудований бездротовий зв’язок, або модуль WI-FI.
- Датчик тиску, температури та вологості.
- Цифровий тепловий зонд.
- Датчик дощу
- Два резистори потужністю 4,7 КОм.
- Деякі гвинтові клемні колодки з кріпленням на друковану плату на 5мм
- Макет, кілька проводів перемичок
- Інтегральна схема аналого-цифрового перетворювача
- Водонепроникні корпуси
- Смартфон з Android >V5
- Джерело живлення 12 чи 220v
Програмні засоби та Інтернет-сервіси
Необхідне використання наступних програмних засобів:
- Node-RED як база для розробки ПЗ + dashboard для локального веб-інтерфейсу
- Git та GitHub: як основа для проектування, розробки ПЗ та документації
- Веб-сайт для онлайн доступу для звітів на базі Google Sites
Технічна структура системи показана на рисунку.
Принципова схема підключення датчиків та виконавчих механізмів до RPI3 показана на рисунку.
Схема підключення та вигляд датчика дощу FC-37.
Схема підключення та вигляд високо-точного барометра BMP-388
Схема підключення та вигляд датчика температури й вологості DHT-22
Таб.1
Найменування | Кількість | Примітка |
---|---|---|
Raspberry PI | 1 | У комплекті з корпусом, блоком живлення та картою пам'яті |
Макетна плата 170 | 1 | - |
Датчик дощу FC-37 | 1 | https://miniboard.com.ua/sensors/70-modul-datchika-dozhdya-fc-37.html |
Високоточний Барометр BMP-388 | 1 | https://miniboard.com.ua/sensors/846-vysokotochnyj-barometr-bmp388-waveshare.html |
Датчик вологості і температури DHT-22 | 1 | https://miniboard.com.ua/sensors/433-modul-datchika-dht-22-waveshare.html |
Світлодіод | 1 | - |
Резистор 1 кОм | 1 | - |
Провід dupont (мама-тато) | 17 | 5 чорних, 7 червоних, 5 зелених |
Програмне забезпечення включає наступні частини:
ПЗ Raspberry PI
- операційна система: Raspbian
- середовище Node.JS
- середовище Node-RED
- модулі Node-RED: node-red-dashboard
Хмарні застосунки та сервіси
- Telegram
- Google Sheet
ПЗ для Android
- будь-який браузер
- Телеграм-клієнт
Методика перевірки Edge-рівня передбачає окрему перевірку функцій:
- функцій відображення на локальному Веб-інтерфейсі
- функцій взаємодії з зовнішніми сервісами за застосунками
Перевірка функцій відображенняна локальному Веб-інтерфейсі
Використовуючи вузол inject
в потоці Charts
перевіряється чи з'являються нові значення показників в Node-RED Dashboard.
Перевірка функцій взаємодії з зовнішніми сервісами за застосунками
- Використовуючи вузол
inject
в потоціGoogle Sheets
перевіряється чи з'являються нові значення показників в Google Sheet - використовуючи вивід в
Debug messages
перевіряється робота телеграм бота
Методика перевірки функцій архівування передбачає перевірку функцій збереження даних в базу даних.
Перевірка функцій збереження даних в базу даних
Таблиця зберігає останні 60 результатів вимірювання.
Методика перевірки діалогових сервісів передбачає перевірку:
- функцій роботи Телеграм бота
- функцій роботи сайта
Перевірка функцій роботи Телеграм бота
- За допомогою команди
/start
бот починає роботу та виводить список доступних команд - За допомогою команди
/weather
можна перевірити погоду на даний момент часу - За допомогою команди
/tempunits
можна змінити одиниці вимірювання температури - За допомогою команди
/pressunits
можна змінити одиниці вимірювання атмосферного тиску
Перевірка функцій роботи сайта
- Використовуючи кнопку
Виміряти
перевіряється вивід результатів вимірювання на панель параметрів - За допомогою
Таблиці результатів
можна перевірити результати вимірювання - Використовуючи поле пошуку
Пошук погоди за містом
можна перевірити погоду у будь-якому населеному пункті
ПЗ розроблено в середовищі Node-RED, яке запускається автоматично з запуском Raspberry PI.
Застосунок включає кілька потоків (Flow
):
Bot
для роботи з чат-ботом TelegramParameters
для встановлення параметрів для Телеграм ботаGoogle Sheets
для формування звітів та взаємодії з Google SheetCharts
для формування звітів та взаємодії з локальним ВЕБ-інтерфейсом
Як тимчасовий хост для глобального ВЕБ-інтерфейсу використовується сервіс Heroku: Cloud Application Platform.
Зовнішній вигляд локального WEB-інтерфейсу
Локальний ВЕБ-інтерфейс являє собою графік "Параметри", який знаходиться в Node-RED Dashboard і в якому відображені значення показників.
Опис потоку Charts
Потік Charts
складається з одного вузла inject
, чотирьох вузлів function
та вузла chart
. Вузол inject
приводить в дію вузли function
, які виводять на Dashboard значення температури,вологості повітря, атмосферного тиску, ймовірності опадів.
Зовнішній вигляд та опис інтерфейсу глобального Веб-інтерфейсу
Глобальний ВЕБ-інтерфейс являє собою сайт, на якому знаходяться:
- годинник
- панель, в якій відображаються погодні значення, виміряні в момент входу на сайт, і за допомогою якої можна виміряти погодні значення в даний момент часу
- таблиця результатів вимірювання, дані для якої беруться з Google Sheet
- панель ,яка відображає значення погоди в Києві, Лондоні, Амстердамі, Пекіні, Берліні та Нью-Йорку (дані беруться з сайту)
- поле пошуку погоди за містом (назва міста, про стан погоди в якому хоче дізнатися користувач не повинна співпадати із назвами міст, які знаходяться на пинелі вище)
- панель, яка відображає сонячний цикл в даний момент часу
Деякі елементи для сайту були запозичені з цього сайту та з цього сайту