8.1 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, за да създадете релето на Pin 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 се затваря и отваря, когато релето се включва и изключва.
Управление на релето според влажността на почвата
Сега, когато релето работи, то може да бъде управлявано в отговор на показанията за влажност на почвата.
Задача
Управлявайте релето.
-
Изтрийте трите реда код, които добавихте за тестване на релето. Заменете ги със следния код на тяхно място:
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.
😀 Вашата програма за виртуален сензор за влажност на почвата, която управлява реле, беше успешна!
Отказ от отговорност:
Този документ е преведен с помощта на AI услуга за превод Co-op Translator. Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за недоразумения или погрешни интерпретации, произтичащи от използването на този превод.