测量温度 - 虚拟物联网硬件
在本节课程中,您将为虚拟物联网设备添加一个温度传感器。
虚拟硬件
虚拟物联网设备将使用模拟的 Grove 数字湿度和温度传感器。这使得本实验与使用带有物理 Grove DHT11 传感器的树莓派保持一致。
该传感器结合了一个温度传感器和一个湿度传感器,但在本实验中,您只需关注温度传感器部分。在物理物联网设备中,温度传感器通常是一个热敏电阻,通过感知电阻随温度变化而变化来测量温度。温度传感器通常是数字传感器,它会在内部将测得的电阻转换为摄氏度(或开尔文、华氏度)的温度。
将传感器添加到 CounterFit
要使用虚拟湿度和温度传感器,您需要将这两个传感器添加到 CounterFit 应用中。
任务 - 将传感器添加到 CounterFit
将湿度和温度传感器添加到 CounterFit 应用中。
在您的计算机上创建一个名为
temperature-sensor的文件夹,并在其中创建一个名为app.py的单文件 Python 应用,同时创建一个 Python 虚拟环境,并添加 CounterFit 的 pip 包。⚠️ 如果需要,您可以参考第 1 课中创建和设置 CounterFit Python 项目的说明。
安装一个额外的 Pip 包,用于安装 DHT11 传感器的 CounterFit shim。确保您是在激活虚拟环境的终端中安装的。
shpip install counterfit-shims-seeed-python-dht确保 CounterFit Web 应用正在运行。
创建一个湿度传感器:
在 Sensors 面板的 Create sensor 框中,点击 Sensor type 下拉框并选择 Humidity。
将 Units 保持为 Percentage。
确保 Pin 设置为 5。
点击 Add 按钮,在 Pin 5 上创建湿度传感器。

湿度传感器将被创建并显示在传感器列表中。

创建一个温度传感器:
在 Sensors 面板的 Create sensor 框中,点击 Sensor type 下拉框并选择 Temperature。
将 Units 保持为 Celsius。
确保 Pin 设置为 6。
点击 Add 按钮,在 Pin 6 上创建温度传感器。

温度传感器将被创建并显示在传感器列表中。

编写温度传感器应用程序
现在可以使用 CounterFit 传感器编写温度传感器应用程序。
任务 - 编写温度传感器应用程序
编写温度传感器应用程序。
确保在 VS Code 中打开了
temperature-sensor应用。打开
app.py文件。在
app.py文件顶部添加以下代码,将应用程序连接到 CounterFit:pythonfrom counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000)在
app.py文件中添加以下代码以导入所需的库:pythonimport time from counterfit_shims_seeed_python_dht import DHTfrom seeed_dht import DHT语句导入了DHT传感器类,用于通过counterfit_shims_seeed_python_dht模块的 shim 与虚拟 Grove 温度传感器交互。在上述代码之后添加以下代码,以创建管理虚拟湿度和温度传感器的类实例:
pythonsensor = DHT("11", 5)这声明了一个
DHT类的实例,用于管理虚拟的数字湿度和温度传感器。第一个参数告诉代码使用的是虚拟 DHT11 传感器。第二个参数告诉代码传感器连接到端口5。💁 CounterFit 通过连接两个传感器来模拟这个组合的湿度和温度传感器,一个湿度传感器连接到创建
DHT类时给定的引脚,另一个温度传感器运行在下一个引脚上。如果湿度传感器在引脚 5 上,shim 会期望温度传感器在引脚 6 上。在上述代码之后添加一个无限循环,以轮询温度传感器的值并将其打印到控制台:
pythonwhile True: _, temp = sensor.read() print(f'Temperature {temp}°C')调用
sensor.read()会返回一个包含湿度和温度的元组。您只需要温度值,因此可以忽略湿度值。然后将温度值打印到控制台。在循环末尾添加一个 10 秒的小延迟,因为温度水平不需要连续检查。延迟可以减少设备的功耗。
pythontime.sleep(10)在 VS Code 的终端中,激活虚拟环境后运行以下命令以运行您的 Python 应用程序:
shpython app.py在 CounterFit 应用中更改温度传感器的值,以便应用读取该值。您可以通过以下两种方式之一进行更改:
在温度传感器的 Value 框中输入一个数字,然后点击 Set 按钮。您输入的数字将是传感器返回的值。
勾选 Random 复选框,并输入 Min 和 Max 值,然后点击 Set 按钮。每次传感器读取值时,它将读取一个介于 Min 和 Max 之间的随机数。
您应该会在控制台中看到您设置的值。更改 Value 或 Random 设置以查看值的变化。
text(.venv) ➜ temperature-sensor python app.py Temperature 28.25°C Temperature 30.71°C Temperature 25.17°C
💁 您可以在 code-temperature/virtual-device 文件夹中找到此代码。
😀 您的温度传感器程序运行成功!