7.8 KiB
Контрола релеја - Виртуелни IoT хардвер
У овом делу лекције, додаћете релеј свом виртуелном IoT уређају поред сензора за влажност земљишта и контролисати га на основу нивоа влажности земљишта.
Виртуелни хардвер
Виртуелни IoT уређај ће користити симулирани Grove релеј. Ово лабораторијско искуство остаје исто као када се користи Raspberry Pi са физичким Grove релејем.
Код физичког IoT уређаја, релеј би био релеј који је нормално отворен (што значи да је излазни круг отворен или прекинут када нема сигнала послатог релеју). Овакви релеји могу да поднесу излазне кругове до 250V и 10A.
Додавање релеја у CounterFit
Да бисте користили виртуелни релеј, потребно је да га додате у CounterFit апликацију.
Задатак
Додајте релеј у CounterFit апликацију.
-
Отворите пројекат
soil-moisture-sensor
из претходне лекције у VS Code-у ако већ није отворен. Додаћете у овај пројекат. -
Уверите се да је CounterFit веб апликација покренута.
-
Креирајте релеј:
-
У оквиру Create actuator у панелу Actuators, кликните на падајући мени Actuator type и изаберите Relay.
-
Поставите Pin на 5.
-
Изаберите дугме Add да бисте креирали релеј на пину 5.
Релеј ће бити креиран и појавиће се на листи актуатора.
-
Програмирање релеја
Апликација за сензор влажности земљишта сада може бити програмирана да користи виртуелни релеј.
Задатак
Програмирајте виртуелни уређај.
-
Отворите пројекат
soil-moisture-sensor
из претходне лекције у VS Code-у ако већ није отворен. Додаћете у овај пројекат. -
Додајте следећи код у датотеку
app.py
испод постојећих увоза:from counterfit_shims_grove.grove_relay import GroveRelay
Ова изјава увози
GroveRelay
из Grove Python shim библиотека за интеракцију са виртуелним Grove релејем. -
Додајте следећи код испод декларације класе
ADC
да бисте креирали инстанцуGroveRelay
:relay = GroveRelay(5)
Ово креира релеј користећи пин 5, пин на који сте повезали релеј.
-
Да бисте тестирали да ли релеј ради, додајте следеће у
while True:
петљу:relay.on() time.sleep(.5) relay.off()
Код укључује релеј, чека 0.5 секунди, а затим искључује релеј.
-
Покрените Python апликацију. Релеј ће се укључивати и искључивати сваких 10 секунди, са паузом од пола секунде између укључивања и искључивања. Видећете како се виртуелни релеј у CounterFit апликацији затвара и отвара док се релеј укључује и искључује.
Контрола релеја на основу влажности земљишта
Сада када релеј ради, може се контролисати у зависности од очитавања влажности земљишта.
Задатак
Контролишите релеј.
-
Обришите 3 линије кода које сте додали за тестирање релеја. Замените их следећим кодом:
if soil_moisture > 450: print("Soil Moisture is too low, turning relay on.") relay.on() else: print("Soil Moisture is ok, turning relay off.") relay.off()
Овај код проверава ниво влажности земљишта из сензора за влажност земљишта. Ако је изнад 450, укључује релеј, а искључује га ако падне испод 450.
💁 Запамтите, капацитивни сензор за влажност земљишта очитава: што је нижи ниво влажности земљишта, то је више влаге у земљишту и обрнуто.
-
Покрените Python апликацију. Видећете како се релеј укључује или искључује у зависности од нивоа влажности земљишта. Промените Value или Random подешавања за сензор влажности земљишта да бисте видели промену вредности.
Soil Moisture: 638 Soil Moisture is too low, turning relay on. Soil Moisture: 452 Soil Moisture is too low, turning relay on. Soil Moisture: 347 Soil Moisture is ok, turning relay off.
💁 Овај код можете пронаћи у фасцикли code-relay/virtual-device.
😀 Ваш програм за контролу релеја на основу виртуелног сензора за влажност земљишта је успешно завршен!
Одрицање од одговорности:
Овај документ је преведен помоћу услуге за превођење уз помоћ вештачке интелигенције Co-op Translator. Иако настојимо да обезбедимо тачност, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на његовом изворном језику треба сматрати меродавним извором. За критичне информације препоручује се професионални превод од стране људског преводиоца. Не преузимамо одговорност за било каква погрешна тумачења или неспоразуме који могу настати услед коришћења овог превода.