Система повинна забезпечувати дистанційне сканування температури людей в приміщенні з веденням журналу та формування повідомлень.
Система повинна передбачати виконання наступних функцій:
- неперервне вимірювання температури людей (в градусах Цельсія) з періодичністю не більше ніж 1 секунда
- індикація температури через інтенсивність світіння світлодіоду
- відображення плинного значення температури об'єкту на локальному WEB-інтерфейсі та віддалено за допомогою Телеграм-бота та мобільного застосунку:
- на локальному WEB-інтерфейсі та мобільному застосунку періодично, 1 раз/сек у вигляді кругової діаграми і числового значення в сантиметрах;
- у Телеграм-боті передбачити режими: відображення по запиту плинного значення; включення/відключення періодичного оповіщення 1 раз/5 секунд за командою;
- архівування значень температури об'єкту в локальну базу даних середнє за останні 10 секунд
- відображення температури об'єкту у вигляді графіку за останні 60 секунд на:
- локальному ВЕБ-інтерфейсі
- мобільному застосунку
- Google Worksheet
- оповіщення через Телеграм-бот та пошту, якщо температура менше заданої уставки
- формування звітів на Веб-сайті раз/годину або за запитом з відображенням:
- у табличному та графічному вигляді відстань за останню годину
- показники мінімальної/максимальної та середньої температури об'єкту
Необхідно використання наступних засобів:
- Raspberry PI3 (або RPI4), або аналогічний
- датчики температури від -50 °С до +330 °С
- наявне підключення RPI до мережі Internet через мережу WiFi або Ethernet
- смартфон або планшет з Android > V5
- прототип буде знаходитися у кімнатних умовах
Необхідне використання наступних програмних засобів:
- Node-RED як база для розробки ПЗ + dashboard для локального веб-інтерфейсу
- система керування базами даних, розгорнута на RPI (MariaDB)
- хмарний застосунок Google Sheets для аналітики
- веб-сайт для онлайн доступу для звітів на базі Google Sites
- Telegram-бот для віддаленого контролю та керування
IoT MQTT Panel
для віддаленого контролю та керування
Технічна структура системи показана на рисунку.
рис.1
Принципова схема підключення датчиків та виконавчих механізмів до RPI3 показана на рисунку.
рис.2
Монтажна схема підключення плати з прототипом показана на рисунку.
рис.3
Таб.1
Найменування | Кількість | Примітка |
---|---|---|
Raspberry PI | 1 | У комплекті з корпусом, блоком живлення та картою пам'яті |
Макетна плата 170 | 1 | |
LM35 Temperature Sensor | 1 | |
Світлодіод | 1 | |
Резистор 1 кОм | 1 | |
Провід dupont (мама-тато) | 5 | 2 білі, зелений, оранжевий і сірий |
Програмне забезпечення включає наступні частини:
- операційна система: Raspbian
- VNC Server
- СКБД MariaDB
- середовище Node.JS
- середовище Node-RED
- модулі Node-RED: ...
- Google Sites
- Telegram
- Google Sheet
IoT MQTT Panel
- будь-який браузер
- Телеграм-клієнт
Методика перевірки Edge-рівня передбачає окрему перевірку функцій:
- функцій вводу/виводу
- функцій відображення та керування на локальному Веб-інтерфейсі
- функцій архівування в локальну базу даних
- функцій взаємодії з зовнішніми сервісами за застосунками
Перевірка функцій архівування описана в наступному підрозділі. Перевірка функцій взаємодії з зовнішніми сервісами за застосунками проводиться разом з перевіркою відповідних функцій.
- використовуючи вивід в налагоджувач перевіряється, що при зміні положення об'єкту у вікні Node-RED відображається коректні значення з періодичністю 1 секунда
- використовуючи вузол
inject
задаючи необхідну потужність перевіряється чи змінюється інтенсивність світіння індикаторного світлодіоду
- використовуючи вузол
inject
задаючи необхідне значення відстані, воно повинно відображатися у полі - повинна бути передбачена окрема закладка у локальному Веб-інтерфейсі для налагодження:
- перемикач імітація/реальний об'єкт для можливості вибору джерела даних (з датчиків або імітоване)
- повзунками для імітації значення наближення, або задаванням значення в полі, необхідно задати імітоване значення, яке повинно відобразитися на полі відображення відстані
- при зміні значення уставки мінімального значення наближення нижче дійсного повинно з'явитися повідомлення "Об'єкт надто близько!", при поверненні в норму, напис повинен щезнути
- імітуючи зміну значення наближення проконтролювати що графік (тренд реального часу) правильно показує цю зміну
функцій збереження даних в базу даних
ПЗ розроблено в середовищі Node-RED, яке запускається автоматично з запуском Raspberry PI.
Застосунок включає кілька потоків (Flow
):
IO
для обробки значень входів та керування виходамиprocess
для обробки і імітації зміннихHistory
для роботи з локальною базою даних для збереження данихAlarm
для роботи з тривогамиUI
для роботи з локальним ВЕБ-інтерфейсомBot
для роботи з чат-ботом TelegramReport
для формування звітів та взаємодії зGoogle Sheet
Система передбачає взаємодію через глобальні контексти Noe-RED. Передбачено наступні глобальні контексти:
RTDB
- для збереження конфігураційних та плинних даних вимірювання та керування та трендів на останню хвилинуALM
- для збереження конфігураційних даних для налаштування тривог та стану тривогRPRT
- для збереження буферу для формування звітів
- Налаштування Google Sheet
- Налаштування Telegram
- зовнішній вигляд локального WEB-інтерфейсу
- опис потоку
UI
- зовнішній вигляд та опис інтерфейсу глобального Веб-інтерфейсу
Серія LM35 це прецизійні інтегральні датчики температури, у яких вихідна напруга пропорційна температурі за шкалою Цельсія. Це одна з переваг над датчиками з вихідною напругою за шкалою Кельвіна. Не потрібно вичитати високостабільну напругу з вихідної напруги для переводу в шкалу за Цельсієм.
LM35 забезпечує вимір температури з точністю ± 0.5 °C в повному діапазоні робочих температур -55 ... +150 °C, без зовнішньої калібрування або підгонки вихідної напруги.
Підтримуваний графічний інтерфейс :
- OpenGL ES 3.x
Датчик TMP35 має три виводи (три ноги) - земля, живлення та вихідний сигнал. Датчик аналоговий, що значить на його виході ми маємо не 0 або 1, а напруга в діапазоні від 0 до 5 вольт.
До особливостей можна віднести : низьку вартість, гарантовану точність 0,5°С, широкий діапазон напруги (від 4 до 30В), струм менш 60мА, малий рівень власного розігріву (до 0,1), вихідний опір 0,1 Ом при струмі 1 мА.
Корпуси датчиків повинні бути приклеєні або притиснуті до контрольованої поверхні. Тоді температура датчиків буде в межах 0.01 °C від температури поверхні. Передбачається, що температура навколишнього повітря дорівнює температурі поверхні. В іншому випадку фактична температура датчика LM35 буде середньою між температурами поверхні і повітря. Особливо, це має значення для пластикових корпусів TO-92, в яких мідні висновки відводять значну кількість тепла. В цьому випадку реальна температура датчика може бути навіть ближче до температури навколишнього повітря, а не до температури поверхні. Щоб мінімізувати цю проблему, намагайтеся проводити висновки підключення датчиків так, щоб їх температура дорівнювала температурі поверхні, на якій встановлений датчик. Один із способів - покрити ділянку поверхні з висновками LM35 компаундом. Це вирівняє температуру висновків датчика і поверхні, і зменшить вплив навколишнього повітря.
Приклад схеми підключення