构建夜灯 - 虚拟IoT硬件 在本课程的这一部分,你将向你的虚拟IoT设备添加一个光传感器。 虚拟硬件 夜灯需要一个传感器,在CounterFit应用中创建。 该传感器是一个光传感器。在物理的IoT设备中,它会是一个将光线转换为电信号的光电二极管。光传感器是模拟传感器,它们发送一个表示相对光量的整数值,这个值并不对应任何标准单位,比如勒克斯。 将传感器添加到CounterFit 要使用虚拟光传感器,你需要将其添加到CounterFit应用中。 任务 - 将传感器添加到CounterFit 将光传感器添加到CounterFit应用。 确保CounterFit网页应用正在运行(从本作业的上一部分开始)。如果没有,请启动它。
在本课程的这一部分,你将向你的虚拟IoT设备添加一个光传感器。
夜灯需要一个传感器,在CounterFit应用中创建。
该传感器是一个光传感器。在物理的IoT设备中,它会是一个将光线转换为电信号的光电二极管。光传感器是模拟传感器,它们发送一个表示相对光量的整数值,这个值并不对应任何标准单位,比如勒克斯。
要使用虚拟光传感器,你需要将其添加到CounterFit应用中。
将光传感器添加到CounterFit应用。
确保CounterFit网页应用正在运行(从本作业的上一部分开始)。如果没有,请启动它。
创建光传感器:
在“传感器”窗格中的“创建传感器”框中,下拉“传感器类型”框并选择“光”。
将“单位”保持为“无单位”
确保“引脚”设置为“0”
选择“添加”按钮以在引脚0上创建光传感器

光传感器将被创建并出现在传感器列表中。

现在可以编写代码来使用内置的光传感器。
编程设备。
打开你在本作业上一部分中创建的夜灯项目。如果有必要,重新启动终端以确保它正在使用虚拟环境运行。
打开文件app.py
在文件app.py顶部与其他import语句一起添加以下代码以导入一些必需的库:
import time from counterfit_shims_grove.grove_light_sensor_v1_2 import GroveLightSensor
import time statement imports the Python time module that will be used later in this assignment.
The from counterfit_shims_grove.grove_light_sensor_v1_2 import GroveLightSensor statement imports the GroveLightSensor 导入了CounterFit Grove插件Python库中的代码,这些代码用于与CounterFit应用中创建的光传感器进行交互。
在文件末尾添加以下代码,以创建管理光传感器的类实例:
light_sensor = GroveLightSensor(0)
这行代码 light_sensor = GroveLightSensor(0) creates an instance of the GroveLightSensor 将连接到引脚0——这是与光传感器相连的CounterFit Grove引脚。
在上面的代码之后添加一个无限循环,以轮询光传感器的值并将其打印到控制台:
while True: light = light_sensor.light print('Light level:', light)
这将使用 light property of the GroveLightSensor class. This property reads the analog value from the pin. This value is then printed to the console.
Add a small sleep of one second at the end of the while 循环读取当前的光级,因为不需要连续检查光级。休眠可以减少设备的功耗。
time.sleep(1)
从VS Code终端运行以下命令以运行你的Python应用程序:
python3 app.py
光值将输出到控制台。最初这个值将是0。
从CounterFit应用中,更改应用程序将读取的光传感器的值。你可以通过以下两种方式之一完成此操作:
在光传感器的“值”框中输入一个数字,然后选择“设置”按钮。你输入的数字将成为传感器返回的值。
勾选“随机”复选框,并输入“最小”和“最大”值,然后选择“设置”按钮。每次传感器读取值时,它都会读取介于“最小”和“最大”之间的随机数。
你设置的值将输出到控制台。更改“值”或“随机”设置以使值发生变化。
(.venv) ➜ GroveTest python3 app.py Light level: 143 Light level: 244 Light level: 246 Light level: 253
你可以在code-sensor/virtual-device文件夹中找到此代码。
你的夜灯程序成功了!
声明:
本文件灏天文库团队进行了翻译。尽管我们力求准确,但请注意,翻译可能包含错误或不准确之处。原文档以其原始语言为准。我们不对因使用此翻译而产生的任何误解或误译负责。