You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/bg/4-manufacturing/lessons/4-trigger-fruit-detector/README.md

32 KiB

Задействане на откриване на качеството на плодовете чрез сензор

Скица на урока

Скица от Nitya Narasimhan. Кликнете върху изображението за по-голяма версия.

Тест преди лекцията

Тест преди лекцията

Въведение

IoT приложението не е просто едно устройство, което събира данни и ги изпраща в облака. По-често това са множество устройства, които работят заедно, за да събират данни от физическия свят чрез сензори, да вземат решения въз основа на тези данни и да взаимодействат обратно с физическия свят чрез изпълнителни механизми или визуализации.

В този урок ще научите повече за проектирането на сложни IoT приложения, включващи множество сензори, различни облачни услуги за анализ и съхранение на данни, както и показване на отговор чрез изпълнителен механизъм. Ще научите как да проектирате прототип на система за контрол на качеството на плодовете, включително използването на сензори за близост за задействане на IoT приложението и каква би била архитектурата на този прототип.

В този урок ще разгледаме:

🗑 Това е последният урок в този проект, така че след като завършите урока и задачата, не забравяйте да изчистите облачните си услуги. Ще ви трябват услугите, за да завършите задачата, така че се уверете, че първо сте я завършили.

Вижте ръководството за изчистване на проекта, ако е необходимо, за инструкции как да направите това.

Проектиране на сложни IoT приложения

IoT приложенията се състоят от много компоненти. Това включва различни устройства и интернет услуги.

IoT приложенията могат да бъдат описани като устройства (неща), които изпращат данни, генериращи прозрения. Тези прозрения водят до действия, които подобряват бизнес или процес. Пример за това е двигател (устройството), който изпраща данни за температурата. Тези данни се използват за оценка дали двигателят работи според очакванията (прозрението). Прозрението се използва за проактивно приоритизиране на графика за поддръжка на двигателя (действието).

  • Различни устройства събират различни данни.
  • IoT услугите предоставят прозрения върху тези данни, понякога допълвайки ги с данни от допълнителни източници.
  • Тези прозрения водят до действия, включително управление на изпълнителни механизми в устройствата или визуализиране на данни.

Референтна IoT архитектура

Референтна IoT архитектура

Горната диаграма показва референтна IoT архитектура.

🎓 Референтна архитектура е примерна архитектура, която можете да използвате като отправна точка при проектирането на нови системи. В този случай, ако изграждате нова IoT система, можете да следвате референтната архитектура, като замените устройствата и услугите със свои собствени, където е подходящо.

  • Устройства са тези, които събират данни от сензори, може би взаимодействат с edge услуги за интерпретация на тези данни, като например класификатори на изображения. Данните от устройствата се изпращат към IoT услуга.
  • Прозрения идват от serverless приложения или от анализи, извършени върху съхранени данни.
  • Действия могат да бъдат команди, изпратени към устройства, или визуализация на данни, позволяваща на хората да вземат решения.

Референтна 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 устройство със сензор за близост открива пристигането на плодове. Това изпраща съобщение в облака, че плод е открит.
  • Serverless приложение в облака изпраща команда към друго устройство за фотографиране и класифициране на изображението.
  • IoT устройство с камера прави снимка и я изпраща към класификатор на изображения, работещ на edge устройство. Резултатите се изпращат в облака.
  • Serverless приложение в облака съхранява тази информация за по-късен анализ, за да се види какъв процент от плодовете са неузрели. Ако плодът е неузрял, се изпраща команда към друго IoT устройство за известяване на работниците чрез LED.

💁 Цялото това IoT приложение може да бъде реализирано като едно устройство, с вградена логика за стартиране на класификацията и управление на LED. То може да използва IoT Hub само за проследяване на броя на неузрелите плодове и конфигуриране на устройството. В този урок то е разширено, за да демонстрира концепциите за мащабни IoT приложения.

За прототипа ще реализирате всичко това на едно устройство. Ако използвате микроконтролер, ще използвате отделно edge устройство за изпълнение на класификатора.

Задействане на проверка на качеството на плодовете чрез сензор

IoT устройството се нуждае от някакъв тригер, за да покаже кога плодът е готов за класификация. Един такъв тригер може да бъде измерване на разстоянието до сензор, за да се определи дали плодът е на правилното място на конвейерната лента.

Сензори за близост изпращат лазерни лъчи към обекти като банани и измерват времето за връщане на лъча

Сензорите за близост могат да се използват за измерване на разстоянието от сензора до обект. Те обикновено излъчват лъч от електромагнитна радиация, като лазерен лъч или инфрачервена светлина, след което откриват радиацията, отразена от обекта. Времето между изпращането на лъча и връщането на сигнала може да се използва за изчисляване на разстоянието до сензора.

💁 Вероятно сте използвали сензори за близост, без дори да знаете. Повечето смартфони изключват екрана, когато ги доближите до ухото си, за да предотвратят случайно прекъсване на разговора с ушната мида. Това работи чрез сензор за близост, който открива обект близо до екрана по време на разговор и деактивира сензорния екран, докато телефонът не бъде на определено разстояние.

Задача - задействане на проверка на качеството на плодовете чрез сензор за разстояние

Изпълнете съответното ръководство, за да използвате сензор за близост за откриване на обект с вашето IoT устройство:

Данни, използвани за детектор на качеството на плодовете

Прототипният детектор на плодове има множество компоненти, които комуникират помежду си.

Компонентите, които комуникират помежду си

  • Сензор за близост, който измерва разстоянието до плод и изпраща това към 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 устройства на Raspberry Pi или виртуален IoT хардуер

Когато използвате едноплатков компютър като Raspberry Pi, можете да стартирате множество приложения едновременно. Това означава, че можете да симулирате множество IoT устройства, като създадете множество приложения, по едно за всяко 'IoT устройство'. Например, можете да реализирате всяко устройство като отделен Python файл и да ги стартирате в различни терминални сесии.

💁 Имайте предвид, че някои хардуерни устройства няма да работят, ако се използват едновременно от няколко приложения.

Симулиране на множество устройства върху микроконтролер

Микроконтролерите са по-сложни за симулиране на множество устройства. За разлика от едноплатковите компютри, не можете да стартирате няколко приложения едновременно трябва да включите цялата логика за всички отделни IoT устройства в едно приложение.

Някои предложения за улесняване на този процес са:

  • Създайте един или повече класове за всяко IoT устройство например класове, наречени DistanceSensor, ClassifierCamera, LEDController. Всеки от тях може да има свои собствени методи setup и loop, които се извикват от основните функции setup и loop.
  • Обработвайте командите на едно място и ги насочвайте към съответния клас на устройството, когато е необходимо.
  • В основната функция loop ще трябва да обмислите времето за всяко различно устройство. Например, ако имате един клас устройство, който трябва да се обработва на всеки 10 секунди, и друг, който трябва да се обработва на всяка 1 секунда, тогава в основната функция loop използвайте закъснение от 1 секунда. Всяко извикване на loop задейства съответния код за устройството, което трябва да се обработва всяка секунда, и използвайте брояч, за да броите всяка итерация, обработвайки другото устройство, когато броячът достигне 10 (след което нулирайте брояча).

Преминаване към производство

Прототипът ще формира основата на финалната производствена система. Някои от разликите при преминаване към производство биха били:

  • Устойчиви компоненти използване на хардуер, проектиран да издържа на шум, топлина, вибрации и напрежение в заводска среда.
  • Използване на вътрешни комуникации някои от компонентите ще комуникират директно, избягвайки преминаването през облака, като изпращат данни към облака само за съхранение. Как това се осъществява зависи от конфигурацията на завода чрез директни комуникации или чрез изпълнение на част от IoT услугата на ръба с помощта на гейтуей устройство.
  • Опции за конфигурация всеки завод и случай на употреба са различни, така че хардуерът трябва да бъде конфигурируем. Например, сензорът за близост може да се наложи да открива различни плодове на различни разстояния. Вместо да задавате твърдо разстоянието за задействане на класификацията, бихте искали това да бъде конфигурируемо чрез облака, например с помощта на device twin.
  • Автоматизирано премахване на плодове вместо LED, който сигнализира, че плодът не е узрял, автоматизирани устройства биха го премахвали.

Направете проучване: По какви други начини производствените устройства се различават от разработчиците на комплекти?


🚀 Предизвикателство

В този урок научихте някои от концепциите, които трябва да знаете за това как да проектирате IoT система. Спомнете си предишните проекти. Как те се вписват в референтната архитектура, показана по-горе?

Изберете един от проектите досега и помислете за дизайна на по-сложно решение, което обединява множество възможности извън обхвата на проектите. Начертайте архитектурата и помислете за всички устройства и услуги, от които ще се нуждаете.

Например устройство за проследяване на превозни средства, което комбинира GPS със сензори за наблюдение на неща като температури в хладилен камион, времето за включване и изключване на двигателя и идентичността на водача. Какви са участващите устройства, услугите, данните, които се предават, и съображенията за сигурност и поверителност?

Тест след лекцията

Тест след лекцията

Преглед и самостоятелно обучение

Задача

Създайте детектор за качество на плодове


Отказ от отговорност:
Този документ е преведен с помощта на AI услуга за превод Co-op Translator. Въпреки че се стремим към точност, моля, имайте предвид, че автоматичните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия изходен език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален превод от човек. Ние не носим отговорност за каквито и да било недоразумения или погрешни интерпретации, произтичащи от използването на този превод.