|
4 weeks ago | |
---|---|---|
.. | ||
README.md | 4 weeks ago | |
assignment.md | 4 weeks ago | |
pi-proximity.md | 4 weeks ago | |
virtual-device-proximity.md | 4 weeks ago | |
wio-terminal-proximity.md | 4 weeks ago |
README.md
Запуск виявлення якості фруктів за допомогою сенсора
Скетчнот від Nitya Narasimhan. Натисніть на зображення, щоб переглянути у більшому розмірі.
Тест перед лекцією
Вступ
IoT-додаток — це не просто один пристрій, який збирає дані та відправляє їх у хмару. Найчастіше це кілька пристроїв, які працюють разом, щоб збирати дані з фізичного світу за допомогою сенсорів, приймати рішення на основі цих даних і взаємодіяти з фізичним світом через актуатори або візуалізації.
У цьому уроці ви дізнаєтеся більше про архітектуру складних IoT-додатків, інтеграцію кількох сенсорів, використання хмарних сервісів для аналізу та зберігання даних, а також про демонстрацію реакції через актуатор. Ви навчитеся проектувати прототип системи контролю якості фруктів, зокрема використовувати сенсори наближення для запуску IoT-додатка, а також ознайомитеся з архітектурою цього прототипу.
У цьому уроці ми розглянемо:
- Архітектуру складних IoT-додатків
- Проектування системи контролю якості фруктів
- Запуск перевірки якості фруктів за допомогою сенсора
- Дані, що використовуються для детектора якості фруктів
- Використання пристроїв розробника для симуляції кількох IoT-пристроїв
- Перехід до виробництва
🗑 Це останній урок у цьому проєкті, тому після завершення уроку та завдання не забудьте очистити ваші хмарні сервіси. Вам знадобляться ці сервіси для виконання завдання, тому спочатку переконайтеся, що завдання завершено.
За потреби зверніться до інструкції з очищення проєкту.
Архітектура складних IoT-додатків
IoT-додатки складаються з багатьох компонентів. Це включає різноманітні пристрої та інтернет-сервіси.
IoT-додатки можна описати як речі (пристрої), що надсилають дані, які генерують інсайти. Ці інсайти створюють дії, спрямовані на покращення бізнесу або процесу. Наприклад, двигун (річ) надсилає дані про температуру. Ці дані використовуються для оцінки, чи працює двигун належним чином (інсайт). Інсайт використовується для пріоритизації графіка технічного обслуговування двигуна (дія).
- Різні пристрої збирають різні дані.
- IoT-сервіси надають інсайти на основі цих даних, іноді доповнюючи їх даними з інших джерел.
- Ці інсайти спрямовують дії, включаючи керування актуаторами в пристроях або візуалізацію даних.
Референсна архітектура IoT
На діаграмі вище показано референсну архітектуру IoT.
🎓 Референсна архітектура — це приклад архітектури, яку можна використовувати як зразок при проєктуванні нових систем. У цьому випадку, якщо ви створюєте нову IoT-систему, ви можете слідувати референсній архітектурі, замінюючи пристрої та сервіси на відповідні.
- Речі — це пристрої, які збирають дані з сенсорів, можливо, взаємодіючи з edge-сервісами для інтерпретації цих даних, наприклад, класифікаторами зображень. Дані з пристроїв надсилаються до IoT-сервісу.
- Інсайти отримуються з безсерверних додатків або аналітики, що виконується на збережених даних.
- Дії можуть бути командами, надісланими пристроям, або візуалізацією даних, що дозволяє людям приймати рішення.
На діаграмі вище показано деякі з компонентів і сервісів, розглянутих у цих уроках, і те, як вони пов'язані між собою в референсній архітектурі IoT.
- Речі — ви писали код для пристроїв, щоб збирати дані з сенсорів і аналізувати зображення за допомогою Custom Vision, що працює як у хмарі, так і на edge-пристрої. Ці дані надсилалися до IoT Hub.
- Інсайти — ви використовували Azure Functions для обробки повідомлень, надісланих до IoT Hub, і зберігали дані для подальшого аналізу в Azure Storage.
- Дії — ви керували актуаторами на основі рішень, прийнятих у хмарі, і команд, надісланих пристроям, а також візуалізували дані за допомогою Azure Maps.
✅ Подумайте про інші IoT-пристрої, які ви використовували, наприклад, розумні домашні прилади. Які речі, інсайти та дії задіяні в цих пристроях і їхньому програмному забезпеченні?
Ця модель може бути масштабована як у більший, так і в менший бік, додаючи більше пристроїв і сервісів.
Дані та безпека
Під час визначення архітектури вашої системи потрібно постійно враховувати дані та безпеку.
- Які дані ваш пристрій надсилає та отримує?
- Як ці дані мають бути захищені?
- Як має контролюватися доступ до пристрою та хмарного сервісу?
✅ Подумайте про безпеку даних будь-яких IoT-пристроїв, які ви маєте. Скільки з цих даних є особистими і мають залишатися конфіденційними як під час передачі, так і при зберіганні? Які дані не слід зберігати?
Проектування системи контролю якості фруктів
Тепер застосуємо ідею речей, інсайтів і дій до нашого детектора якості фруктів, щоб спроєктувати більший додаток від початку до кінця.
Уявіть, що вам доручили створити детектор якості фруктів для використання на переробному заводі. Фрукти рухаються по конвеєрній стрічці, де наразі працівники вручну перевіряють їх і видаляють незрілі плоди. Щоб зменшити витрати, власник заводу хоче автоматизовану систему.
✅ Одна з тенденцій із розвитком IoT (і технологій загалом) полягає в тому, що ручна праця замінюється машинами. Проведіть дослідження: скільки робочих місць, за оцінками, буде втрачено через IoT? Скільки нових робочих місць буде створено для розробки IoT-пристроїв?
Вам потрібно створити систему, де фрукти виявляються, коли вони прибувають на конвеєрну стрічку, їх фотографують і перевіряють за допомогою AI-моделі, що працює на edge-пристрої. Результати надсилаються в хмару для зберігання, і якщо фрукт незрілий, надсилається сповіщення, щоб його можна було видалити.
Речі | Детектор для виявлення фруктів на конвеєрі Камера для фотографування та класифікації фруктів Edge-пристрій для запуску класифікатора Пристрій для сповіщення про незрілі фрукти |
Інсайти | Прийняття рішення про перевірку стиглості фруктів Збереження результатів класифікації стиглості Визначення необхідності сповіщення про незрілі фрукти |
Дії | Надсилання команди пристрою для фотографування фруктів і перевірки їх за допомогою класифікатора зображень Надсилання команди пристрою для сповіщення про незрілі фрукти |
Прототипування вашого додатка
На діаграмі вище показано референсну архітектуру для цього прототипу.
- IoT-пристрій із сенсором наближення виявляє прибуття фруктів. Він надсилає повідомлення в хмару про те, що фрукт виявлено.
- Безсерверний додаток у хмарі надсилає команду іншому пристрою для фотографування та класифікації зображення.
- IoT-пристрій із камерою робить знімок і надсилає його до класифікатора зображень, що працює на edge-пристрої. Результати надсилаються в хмару.
- Безсерверний додаток у хмарі зберігає цю інформацію для подальшого аналізу, щоб визначити відсоток незрілих фруктів. Якщо фрукт незрілий, він надсилає команду іншому IoT-пристрою для сповіщення працівників заводу через LED.
💁 Увесь цей IoT-додаток можна реалізувати як один пристрій, з усією логікою для запуску класифікації зображень і керування LED, вбудованою в нього. Він може використовувати IoT Hub лише для відстеження кількості виявлених незрілих фруктів і налаштування пристрою. У цьому уроці він розширений для демонстрації концепцій для масштабних IoT-додатків.
Для прототипу ви реалізуєте все це на одному пристрої. Якщо ви використовуєте мікроконтролер, то для запуску класифікатора зображень вам знадобиться окремий edge-пристрій. Ви вже вивчили більшість речей, які вам знадобляться для створення цього.
Запуск перевірки якості фруктів за допомогою сенсора
IoT-пристрій потребує певного тригера, щоб вказати, коли фрукт готовий до класифікації. Одним із тригерів може бути вимірювання, коли фрукт знаходиться в потрібному місці на конвеєрі, за допомогою сенсора відстані.
Сенсори наближення можна використовувати для вимірювання відстані від сенсора до об'єкта. Вони зазвичай випромінюють промінь електромагнітного випромінювання, такого як лазерний промінь або інфрачервоне світло, а потім виявляють випромінювання, що відбивається від об'єкта. Час між відправленням лазерного променя та сигналом, що відбивається назад, можна використовувати для розрахунку відстані до сенсора.
💁 Ви, ймовірно, використовували сенсори наближення, навіть не знаючи про це. Більшість смартфонів вимикають екран, коли ви підносите їх до вуха, щоб випадково не завершити дзвінок вухом. Це працює за допомогою сенсора наближення, який виявляє об'єкт поблизу екрана під час дзвінка і відключає сенсорний екран, поки телефон не буде на певній відстані.
Завдання — запуск перевірки якості фруктів за допомогою сенсора відстані
Виконайте відповідний посібник, щоб використовувати сенсор наближення для виявлення об'єкта за допомогою вашого IoT-пристрою:
- Arduino - Wio Terminal
- Одноплатний комп'ютер - Raspberry Pi
- Одноплатний комп'ютер - Віртуальний пристрій
Дані, що використовуються для детектора якості фруктів
Прототип детектора фруктів має кілька компонентів, які взаємодіють один з одним.
- Сенсор наближення вимірює відстань до фрукта і надсилає ці дані до IoT Hub.
- Команда для керування камерою надходить із IoT Hub до пристрою з камерою.
- Результати класифікації зображень надсилаються до IoT Hub.
- Команда для керування LED для сповіщення про незрілий фрукт надходить із IoT Hub до пристрою з LED.
Добре визначити структуру цих повідомлень заздалегідь, перед тим як будувати додаток.
💁 Майже кожен досвідчений розробник у певний момент своєї кар'єри витрачав години, дні або навіть тижні на пошук помилок, викликаних розбіжностями між даними, що надсилаються, і тим, що очікується.
Наприклад, якщо ви надсилаєте інформацію про температуру, як би ви визначили JSON? Ви могли б мати поле під назвою temperature
, або використовувати загальноприйняте скорочення temp
.
{
"temperature": 20.7
}
порівняно з:
{
"temp": 20.7
}
Вам також потрібно враховувати одиниці вимірювання — температура в °C чи °F? Якщо ви вимірюєте температуру за допомогою споживчого пристрою, і користувач змінює одиниці відображення, вам потрібно переконатися, що одиниці, які надсилаються в хмару, залишаються послідовними.
✅ Проведіть дослідження: Як проблеми з одиницями вимірювання спричинили аварію Mars Climate Orbiter вартістю $125 мільйонів?
Подумайте про дані, що надсилаються для детектора якості фруктів. Як би ви визначили кожне повідомлення? Де б ви аналізували дані і приймали рішення про те, які дані надсилати?
Наприклад, запуск класифікації зображень за допомогою сенсора наближення. IoT-пристрій вимірює відстань, але де приймається рішення? Чи пристрій вирішує, що фрукт достатньо близько, і надсилає повідомлення до IoT Hub для запуску класифікації? Або він надсилає вимірювання відстані, і IoT Hub приймає рішення?
Відповідь на такі питання — це залежить. Кожен випадок використання унікальний, тому як розробник IoT ви повинні розуміти систему, яку будуєте, як вона використовується і які дані виявляються.
- Якщо рішення приймається IoT Hub, вам потрібно надсилати кілька вимірювань відстані.
- Якщо ви надсилаєте занадто багато повідомлень, це збільшує вартість IoT Hub і обсяг пропускної здатності, необхідної для ваших IoT-пристроїв (особливо на заводі з мільйонами пристроїв). Це також може уповільнити ваш пристрій.
- Якщо ви приймаєте рішення на пристрої, вам потрібно забезпечити спосіб налаштування пристрою для точного налаштування машини.
Використання пристроїв розробника для симуляції кількох IoT-пристроїв
Щоб створити ваш прототип, вам знадобиться ваш IoT-набір розробника, який діятиме як кіль 💁 Зверніть увагу, що деяке обладнання може не працювати, якщо до нього одночасно звертаються кілька програм.
Симуляція кількох пристроїв на мікроконтролері
Мікроконтролери складніше використовувати для симуляції кількох пристроїв. На відміну від одноплатних комп’ютерів, ви не можете запускати кілька додатків одночасно, тому потрібно включити всю логіку для всіх окремих IoT-пристроїв у єдиний додаток.
Деякі поради, які можуть полегшити цей процес:
- Створіть один або кілька класів для кожного IoT-пристрою — наприклад, класи з назвами
DistanceSensor
,ClassifierCamera
,LEDController
. Кожен з них може мати свої методиsetup
іloop
, які викликаються основними функціямиsetup
іloop
. - Обробляйте команди в одному місці та перенаправляйте їх до відповідного класу пристрою за потреби.
- У головній функції
loop
вам потрібно враховувати час для кожного пристрою. Наприклад, якщо у вас є один клас пристрою, який потрібно обробляти кожні 10 секунд, і інший, який потрібно обробляти кожну секунду, то в основній функціїloop
використовуйте затримку в 1 секунду. Кожен викликloop
запускає відповідний код для пристрою, який потрібно обробляти щосекунди, і використовуйте лічильник для підрахунку кожного циклу, обробляючи інший пристрій, коли лічильник досягає 10 (після чого скидайте лічильник).
Перехід до виробництва
Прототип стане основою для фінальної виробничої системи. Деякі відмінності при переході до виробництва можуть бути такими:
- Зміцнені компоненти — використання апаратного забезпечення, розробленого для витримування шуму, тепла, вібрацій і навантажень у виробничих умовах.
- Використання внутрішніх комунікацій — деякі компоненти будуть спілкуватися безпосередньо, уникаючи передачі через хмару, і надсилатимуть дані до хмари лише для зберігання. Як це реалізується, залежить від налаштування фабрики: або через прямі комунікації, або через запуск частини IoT-сервісу на периферії за допомогою шлюзового пристрою.
- Опції конфігурації — кожна фабрика та випадок використання є унікальними, тому апаратне забезпечення має бути налаштованим. Наприклад, датчик наближення може потребувати виявлення різних фруктів на різних відстанях. Замість того, щоб жорстко кодувати відстань для запуску класифікації, ви захочете зробити це налаштовуваним через хмару, наприклад, використовуючи "device twin".
- Автоматизоване видалення фруктів — замість світлодіода, який сигналізує про те, що фрукт незрілий, автоматизовані пристрої видалятимуть його.
✅ Проведіть дослідження: Якими ще способами виробничі пристрої відрізняються від розробницьких комплектів?
🚀 Виклик
У цьому уроці ви дізналися деякі концепції, які потрібно знати для архітектури IoT-системи. Згадайте попередні проєкти. Як вони вписуються в референсну архітектуру, показану вище?
Виберіть один із проєктів, виконаних раніше, і подумайте про дизайн складнішого рішення, яке об’єднує кілька можливостей, що виходять за рамки розглянутого в проєктах. Намалюйте архітектуру та подумайте про всі пристрої та сервіси, які вам знадобляться.
Наприклад — пристрій відстеження транспортного засобу, який поєднує GPS із датчиками для моніторингу таких параметрів, як температура в рефрижераторі, часи ввімкнення та вимкнення двигуна, а також ідентифікація водія. Які пристрої задіяні, які сервіси використовуються, які дані передаються, а також які міркування щодо безпеки та конфіденційності?
Післялекційний тест
Огляд і самостійне навчання
- Дізнайтеся більше про архітектуру IoT у документації з референсної архітектури Azure IoT на Microsoft Docs
- Дізнайтеся більше про "device twins" у документації з розуміння та використання device twins в IoT Hub на Microsoft Docs
- Прочитайте про OPC-UA, протокол машинного спілкування, який використовується в промисловій автоматизації, на сторінці OPC-UA у Вікіпедії
Завдання
Створіть детектор якості фруктів
Відмова від відповідальності:
Цей документ був перекладений за допомогою сервісу автоматичного перекладу Co-op Translator. Хоча ми прагнемо до точності, звертаємо вашу увагу, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ на його рідній мові слід вважати авторитетним джерелом. Для критично важливої інформації рекомендується професійний людський переклад. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, що виникли внаслідок використання цього перекладу.