34 KiB
Взаимодействие с физическия свят чрез сензори и изпълнителни устройства
Скица от Nitya Narasimhan. Кликнете върху изображението за по-голяма версия.
Този урок е част от Hello IoT серията на Microsoft Reactor. Урокът е представен в 2 видеа - едночасов урок и едночасова сесия за въпроси и отговори, в която се разглеждат по-задълбочено части от урока.
🎥 Кликнете върху изображенията по-горе, за да гледате видеата
Предварителен тест
Въведение
Този урок представя две от основните концепции за вашето IoT устройство - сензори и изпълнителни устройства. Ще имате възможност да работите с тях, като добавите светлинен сензор към вашия IoT проект и след това добавите LED, който се контролира от нивата на светлина, ефективно създавайки нощна лампа.
В този урок ще разгледаме:
- Какво представляват сензорите?
- Използване на сензор
- Видове сензори
- Какво представляват изпълнителните устройства?
- Използване на изпълнително устройство
- Видове изпълнителни устройства
Какво представляват сензорите?
Сензорите са хардуерни устройства, които усещат физическия свят - тоест измерват едно или повече свойства около тях и изпращат информацията към IoT устройство. Съществува огромно разнообразие от сензори, тъй като има толкова много неща, които могат да бъдат измерени - от природни свойства като температура на въздуха до физически взаимодействия като движение.
Някои често срещани сензори включват:
- Температурни сензори - измерват температурата на въздуха или на обекта, в който са потопени. За любители и разработчици те често са комбинирани с датчици за налягане и влажност в един сензор.
- Бутони - засичат кога са натиснати.
- Светлинни сензори - откриват нива на светлина и могат да бъдат за специфични цветове, UV светлина, IR светлина или общо видима светлина.
- Камери - заснемат визуално представяне на света чрез снимка или видео поток.
- Акселерометри - засичат движение в различни посоки.
- Микрофони - засичат звук, било то общи нива на звук или насочен звук.
✅ Направете проучване. Какви сензори има вашият телефон?
Всички сензори имат едно общо нещо - те преобразуват това, което засичат, в електрически сигнал, който може да бъде интерпретиран от IoT устройство. Как този електрически сигнал се интерпретира зависи от сензора, както и от комуникационния протокол, използван за връзка с IoT устройството.
Използване на сензор
Следвайте съответното ръководство по-долу, за да добавите сензор към вашето IoT устройство:
- Arduino - Wio Terminal
- Едноплатков компютър - Raspberry Pi
- Едноплатков компютър - Виртуално устройство
Видове сензори
Сензорите могат да бъдат аналогови или цифрови.
Аналогови сензори
Някои от най-основните сензори са аналогови. Тези сензори получават напрежение от IoT устройството, компонентите на сензора променят това напрежение, а напрежението, което се връща от сензора, се измерва, за да се получи стойността на сензора.
🎓 Напрежението е мярка за това колко силно се "бутат" електроните от едно място на друго, например от положителния към отрицателния полюс на батерия. Например, стандартна AA батерия е 1.5V (V е символът за волтове) и може да "бутне" електричество със сила от 1.5V. Различните електрически устройства изискват различни напрежения, за да работят. Например, LED може да свети с напрежение между 2-3V, но 100W крушка с нажежаема жичка би изисквала 240V. Можете да прочетете повече за напрежението на страницата за напрежение в Wikipedia.
Един пример за това е потенциометърът. Това е въртящ се диск, който може да се регулира между две позиции, а сензорът измерва въртенето.
IoT устройството изпраща електрически сигнал към потенциометъра с определено напрежение, например 5 волта (5V). Когато потенциометърът се регулира, той променя напрежението, което излиза от другата страна. Представете си, че имате потенциометър, обозначен като диск, който се върти от 0 до 11, като копче за сила на звука на усилвател. Когато потенциометърът е в изключено положение (0), излизат 0V (0 волта). Когато е в напълно включено положение (11), излизат 5V (5 волта).
🎓 Това е опростено обяснение. Можете да прочетете повече за потенциометрите и променливите резистори на страницата за потенциометри в Wikipedia.
Напрежението, което излиза от сензора, се чете от IoT устройството и устройството може да реагира на него. В зависимост от сензора, това напрежение може да бъде произволна стойност или да съответства на стандартна единица. Например, аналогов температурен сензор, базиран на термистор, променя съпротивлението си в зависимост от температурата. Изходното напрежение може да бъде преобразувано в температура в Келвини, а съответно и в °C или °F, чрез изчисления в кода.
✅ Какво мислите, че ще се случи, ако сензорът върне по-високо напрежение от изпратеното (например идващо от външен източник на захранване)? ⛔️ НЕ тествайте това.
Аналогово-цифрово преобразуване
IoT устройствата са цифрови - те не могат да работят с аналогови стойности, а само с 0 и 1. Това означава, че стойностите от аналоговите сензори трябва да бъдат преобразувани в цифров сигнал, преди да могат да бъдат обработени. Много IoT устройства имат аналогово-цифрови преобразуватели (ADC), които преобразуват аналоговите входове в цифрови представяния на техните стойности. Сензорите също могат да работят с ADC чрез свързваща платка. Например, в екосистемата Seeed Grove с Raspberry Pi, аналоговите сензори се свързват към специфични портове на "шапка", която се поставя върху Pi и е свързана към GPIO пиновете на Pi. Тази "шапка" има ADC, който преобразува напрежението в цифров сигнал, който може да бъде изпратен от GPIO пиновете на Pi.
Представете си, че имате аналогов светлинен сензор, свързан към IoT устройство, което използва 3.3V и връща стойност от 1V. Тези 1V нямат смисъл в цифровия свят, затова трябва да бъдат преобразувани. Напрежението ще бъде преобразувано в аналогова стойност, използвайки скала, която зависи от устройството и сензора. Например, светлинният сензор Seeed Grove връща стойности от 0 до 1,023. За този сензор, работещ на 3.3V, изход от 1V би бил стойност от 300. IoT устройството не може да обработи 300 като аналогова стойност, затова стойността ще бъде преобразувана в 0000000100101100
, двоичното представяне на 300 от "шапката" Grove. Това след това ще бъде обработено от IoT устройството.
✅ Ако не знаете какво е двоична система, направете кратко проучване, за да научите как числата се представят чрез 0 и 1. Въведението в двоичната система на BBC Bitesize е чудесно място за начало.
От гледна точка на програмирането, всичко това обикновено се обработва от библиотеки, които идват със сензорите, така че не е необходимо сами да се занимавате с това преобразуване. За светлинния сензор Grove бихте използвали библиотеката за Python и извикали свойството light
, или бихте използвали библиотеката за Arduino и извикали analogRead
, за да получите стойност от 300.
Цифрови сензори
Цифровите сензори, подобно на аналоговите, засичат света около тях чрез промени в електрическото напрежение. Разликата е, че те връщат цифров сигнал, като измерват само две състояния или използват вграден ADC. Цифровите сензори стават все по-често срещани, за да се избегне необходимостта от използване на ADC в свързваща платка или в самото IoT устройство.
Най-простият цифров сензор е бутон или превключвател. Това е сензор с две състояния - включено или изключено.
Пиновете на IoT устройства, като GPIO пинове, могат директно да измерват този сигнал като 0 или 1. Ако напрежението, което се изпраща, е същото като напрежението, което се връща, стойността е 1, в противен случай стойността е 0. Няма нужда от преобразуване на сигнала, той може да бъде само 1 или 0.
💁 Напреженията никога не са напълно точни, особено тъй като компонентите в сензора имат известно съпротивление, затова обикновено има толеранс. Например, GPIO пиновете на Raspberry Pi работят на 3.3V и четат сигнал над 1.8V като 1, а под 1.8V като 0.
- 3.3V се изпращат към бутона. Бутонът е изключен, така че излизат 0V, което дава стойност 0.
- 3.3V се изпращат към бутона. Бутонът е включен, така че излизат 3.3V, което дава стойност 1.
По-сложните цифрови сензори измерват аналогови стойности и след това ги преобразуват чрез вградени ADC в цифрови сигнали. Например, цифров температурен сензор все още използва термодвойка по същия начин като аналогов сензор и все още измерва промяната в напрежението, причинена от съпротивлението на термодвойката при текущата температура. Вместо да връща аналогова стойност и да разчита на устройството или свързващата платка за преобразуване в цифров сигнал, ADC, вграден в сензора, преобразува стойността и я изпраща като поредица от 0 и 1 към IoT устройството. Тези 0 и 1 се изпращат по същия начин като цифровия сигнал за бутон, като 1 е пълно напрежение, а 0 е 0V.
Изпращането на цифрови данни позволява сензорите да станат по-сложни и да изпращат по-подробни данни, дори криптирани данни за сигурни сензори. Един пример е камерата. Това е сензор, който заснема изображение и го изпраща като цифрови данни, съдържащи това изображение, обикновено в компресиран формат като JPEG, за да бъде прочетено от IoT устройството. Тя може дори да предава видео, като заснема изображения и изпраща или цялото изображение кадър по кадър, или компресиран видео поток.
Какво представляват изпълнителните устройства?
Изпълнителните устройства са противоположността на сензорите - те преобразуват електрически сигнал от вашето IoT устройство в взаимодействие с физическия свят, като излъчване на светлина или звук, или задвижване на мотор.
Някои често срещани изпълнителни устройства включват:
- LED - излъчват светлина, когато са включени.
- Високоговорител - излъчва звук въз основа на изпратения сигнал, от основен зумер до аудио високоговорител, който може да възпроизвежда музика.
- Стъпков мотор - преобразува сигнал в определено количество въртене, например завъртане на диск на 90°.
- Реле - превключватели, които могат да бъдат включени или изключени чрез електрически сигнал. Те позволяват малко напрежение от IoT устройство да включи по-големи напрежения.
- Екрани - по-сложни изпълнителни устройства, които показват информация на многосегментен дисплей. Екраните варират от прости LED дисплеи до високорезолюционни видео монитори.
✅ Направете проучване. Какви изпълнителни устройства има вашият телефон?
Използване на изпълнително устройство
Следвайте съответното ръководство по-долу, за да добавите изпълнително устройство към вашето IoT устройство, контролирано от сензора, за да създадете IoT нощна лампа. Тя ще събира нива на светлина от светлинния сензор и ще използва изпълнително устройство под формата на LED, за да излъчва светлина, когато засеченото ниво на светлина е твърде ниско.
- Arduino - Wio Terminal
- Едноплатков компютър - Raspberry Pi
- Едноплатков компютър - Виртуално устройство
Видове изпълнителни устройства
Подобно на сензорите, изпълнителните устройства могат да бъдат аналогови или цифрови.
Аналогови изпълнителни устройства
Аналоговите изпълнителни устройства приемат аналогов сигнал и го преобразуват в някакъв вид взаимодействие, при което взаимодействието се променя в зависимост от подаденото напрежение.
Един пример е димируема светлина, като тези, които може да имате у дома. Количеството напрежение, подадено към свет
Както при сензорите, реалното IoT устройство работи с цифрови сигнали, а не с аналогови. Това означава, че за да изпрати аналогов сигнал, IoT устройството се нуждае от цифрово-аналогов преобразувател (DAC), който може да бъде вграден директно в устройството или да се намира на свързваща платка. Този преобразувател превръща 0 и 1 от IoT устройството в аналогово напрежение, което изпълнителният механизъм може да използва.
✅ Какво мислите, че ще се случи, ако IoT устройството изпрати напрежение, по-високо от това, което изпълнителният механизъм може да понесе?
⛔️ НЕ тествайте това.
Широчинно-импулсна модулация (PWM)
Друга възможност за преобразуване на цифрови сигнали от IoT устройство в аналогов сигнал е широчинно-импулсната модулация (PWM). Това включва изпращане на множество кратки цифрови импулси, които действат като аналогов сигнал.
Например, можете да използвате PWM, за да контролирате скоростта на мотор.
Представете си, че контролирате мотор с 5V захранване. Изпращате кратък импулс към мотора, като превключвате напрежението на високо (5V) за две стотни от секундата (0.02s). През това време моторът може да направи една десета от оборот, или 36°. След това сигналът спира за две стотни от секундата (0.02s), изпращайки нисък сигнал (0V). Всеки цикъл на включване и изключване трае 0.04s. Цикълът се повтаря.
Това означава, че за една секунда имате 25 импулса от 5V с продължителност 0.02s, които въртят мотора, всеки последван от пауза от 0.02s с 0V, когато моторът не се върти. Всеки импулс завърта мотора с една десета от оборот, което означава, че моторът прави 2.5 оборота в секунда. Използвали сте цифров сигнал, за да завъртите мотора с 2.5 оборота в секунда, или 150 оборота в минута (нестандартна мярка за скорост на въртене).
25 pulses per second x 0.1 rotations per pulse = 2.5 rotations per second
2.5 rotations per second x 60 seconds in a minute = 150rpm
🎓 Когато PWM сигналът е включен за половината от времето и изключен за другата половина, това се нарича 50% работен цикъл. Работните цикли се измерват като процент от времето, през което сигналът е в състояние "включен" спрямо "изключен".
Можете да промените скоростта на мотора, като промените размера на импулсите. Например, със същия мотор можете да запазите същото време на цикъла от 0.04s, като намалите импулса на включване наполовина до 0.01s, а импулса на изключване увеличите до 0.03s. Имате същия брой импулси в секунда (25), но всеки импулс на включване е с половин дължина. Импулс с половин дължина завърта мотора с една двадесета от оборот, а при 25 импулса в секунда моторът ще направи 1.25 оборота в секунда или 75 оборота в минута. Чрез промяна на скоростта на импулсите на цифровия сигнал сте намалили наполовина скоростта на аналоговия мотор.
25 pulses per second x 0.05 rotations per pulse = 1.25 rotations per second
1.25 rotations per second x 60 seconds in a minute = 75rpm
✅ Как бихте запазили въртенето на мотора плавно, особено при ниски скорости? Бихте ли използвали малък брой дълги импулси с дълги паузи или много кратки импулси с много кратки паузи?
💁 Някои сензори също използват PWM, за да преобразуват аналогови сигнали в цифрови.
🎓 Можете да прочетете повече за широчинно-импулсната модулация на страницата за PWM в Wikipedia.
Цифрови изпълнителни механизми
Цифровите изпълнителни механизми, подобно на цифровите сензори, или имат две състояния, контролирани от високо или ниско напрежение, или имат вграден DAC, който може да преобразува цифров сигнал в аналогов.
Един прост цифров изпълнителен механизъм е LED. Когато устройството изпрати цифров сигнал 1, се изпраща високо напрежение, което включва LED. Когато се изпрати цифров сигнал 0, напрежението пада до 0V и LED се изключва.
✅ Какви други прости изпълнителни механизми с две състояния можете да измислите? Един пример е соленоид, който е електромагнит, който може да се активира, за да извършва действия като преместване на болт за заключване/отключване на врата.
По-сложни цифрови изпълнителни механизми, като екрани, изискват цифровите данни да се изпращат в определени формати. Те обикновено идват с библиотеки, които улесняват изпращането на правилните данни за тяхното управление.
🚀 Предизвикателство
Предизвикателството от последните два урока беше да изброите колкото се може повече IoT устройства, които се намират във вашия дом, училище или работно място, и да решите дали са изградени около микроконтролери или едноплаткови компютри, или дори комбинация от двете.
За всяко устройство, което изброихте, какви сензори и изпълнителни механизми са свързани с него? Каква е целта на всеки сензор и изпълнителен механизъм, свързани с тези устройства?
Тест след лекцията
Преглед и самостоятелно обучение
- Прочетете за електричеството и електрическите вериги на ThingLearn.
- Прочетете за различните видове температурни сензори в ръководството за температурни сензори на Seeed Studios.
- Прочетете за LED на страницата за LED в Wikipedia.
Задание
Проучете сензори и изпълнителни механизми
Отказ от отговорност:
Този документ е преведен с помощта на AI услуга за превод Co-op Translator. Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за недоразумения или погрешни интерпретации, произтичащи от използването на този превод.