控制继电器 - 虚拟物联网硬件 在这节课的这一部分,你将向你的虚拟物联网设备添加一个继电器,并根据土壤湿度水平控制它。 虚拟硬件 虚拟物联网设备将使用模拟的Grove继电器。这使得这个实验与使用带有物理Grove继电器的树莓派相同。 在实际的物联网设备中,继电器将是常开型(这意味着没有信号发送到继电器时,输出电路是断开的)。这种继电器可以处理高达250V和10A的输出电路。 向CounterFit添加继电器 要使用虚拟继电器,你需要将其添加到CounterFit应用程序中。 任务 将继电器添加到CounterFit应用程序中。 如果尚未打开,请在VS Code中打开上一课中的 soil-moisture-sensor 项目。你将在该项目中进行添加操作。
在这节课的这一部分,你将向你的虚拟物联网设备添加一个继电器,并根据土壤湿度水平控制它。
虚拟物联网设备将使用模拟的Grove继电器。这使得这个实验与使用带有物理Grove继电器的树莓派相同。
在实际的物联网设备中,继电器将是常开型(这意味着没有信号发送到继电器时,输出电路是断开的)。这种继电器可以处理高达250V和10A的输出电路。
要使用虚拟继电器,你需要将其添加到CounterFit应用程序中。
将继电器添加到CounterFit应用程序中。
如果尚未打开,请在VS Code中打开上一课中的soil-moisture-sensor项目。你将在该项目中进行添加操作。
确保CounterFit Web应用程序正在运行。
创建一个继电器:
在“执行器”窗格的“创建执行器”框中,展开“执行器类型”框并选择“继电器”。
将“引脚”设置为“5”。
选择“添加”按钮,在引脚5上创建继电器。

继电器将被创建并出现在执行器列表中。

现在可以编写代码来使用虚拟继电器。
编程虚拟设备。
如果尚未打开,请在VS Code中打开上一课中的soil-moisture-sensor项目。你将在该项目中进行添加操作。
在app.py文件中,添加以下代码到现有的导入语句下方:
from counterfit_shims_grove.grove_relay import GroveRelay
这段代码导入了GroveRelay from the Grove Python shim libraries to interact with the virtual Grove relay.
Add the following code below the declaration of the ADC class to create a GroveRelay实例:
relay = GroveRelay(5)
这行代码使用引脚5创建了一个继电器,这是你连接继电器的引脚。
为了测试继电器是否正常工作,可以在while True:循环中添加以下代码:
relay.on() time.sleep(.5) relay.off()
这段代码会开启继电器,等待0.5秒,然后关闭继电器。
运行Python应用程序。继电器每10秒会开启和关闭一次,每次开启和关闭之间有0.5秒的延迟。你会看到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应用程序。你会看到继电器根据土壤湿度水平开启或关闭。更改土壤湿度传感器的“值”或“随机”设置,可以看到值的变化。
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文件夹中找到这段代码。
你的虚拟土壤湿度传感器控制继电器程序成功运行!
声明:
本文件灏天文库团队进行了翻译。尽管我们力求准确,但请注意,翻译可能包含错误或不准确之处。原文档以其原始语言为准。我们不对因使用此翻译而产生的任何误解或误译负责。