6.8 KiB
测量温度 - 虚拟物联网硬件
在本节课程中,您将为虚拟物联网设备添加一个温度传感器。
虚拟硬件
虚拟物联网设备将使用模拟的 Grove 数字湿度和温度传感器。这使得本实验与使用带有物理 Grove DHT11 传感器的树莓派保持一致。
该传感器结合了一个温度传感器和一个湿度传感器,但在本实验中,您只需关注温度传感器部分。在物理物联网设备中,温度传感器通常是一个热敏电阻,通过感知电阻随温度变化而变化来测量温度。温度传感器通常是数字传感器,它会在内部将测得的电阻转换为摄氏度(或开尔文、华氏度)的温度。
将传感器添加到 CounterFit
要使用虚拟湿度和温度传感器,您需要将这两个传感器添加到 CounterFit 应用中。
任务 - 将传感器添加到 CounterFit
将湿度和温度传感器添加到 CounterFit 应用中。
-
在您的计算机上创建一个名为
temperature-sensor
的文件夹,并在其中创建一个名为app.py
的单文件 Python 应用,同时创建一个 Python 虚拟环境,并添加 CounterFit 的 pip 包。⚠️ 如果需要,您可以参考第 1 课中创建和设置 CounterFit Python 项目的说明。
-
安装一个额外的 Pip 包,用于安装 DHT11 传感器的 CounterFit shim。确保您是在激活虚拟环境的终端中安装的。
pip 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:from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000)
-
在
app.py
文件中添加以下代码以导入所需的库:import time from counterfit_shims_seeed_python_dht import DHT
from seeed_dht import DHT
语句导入了DHT
传感器类,用于通过counterfit_shims_seeed_python_dht
模块的 shim 与虚拟 Grove 温度传感器交互。 -
在上述代码之后添加以下代码,以创建管理虚拟湿度和温度传感器的类实例:
sensor = DHT("11", 5)
这声明了一个
DHT
类的实例,用于管理虚拟的数字湿度和温度传感器。第一个参数告诉代码使用的是虚拟 DHT11 传感器。第二个参数告诉代码传感器连接到端口5
。💁 CounterFit 通过连接两个传感器来模拟这个组合的湿度和温度传感器,一个湿度传感器连接到创建
DHT
类时给定的引脚,另一个温度传感器运行在下一个引脚上。如果湿度传感器在引脚 5 上,shim 会期望温度传感器在引脚 6 上。 -
在上述代码之后添加一个无限循环,以轮询温度传感器的值并将其打印到控制台:
while True: _, temp = sensor.read() print(f'Temperature {temp}°C')
调用
sensor.read()
会返回一个包含湿度和温度的元组。您只需要温度值,因此可以忽略湿度值。然后将温度值打印到控制台。 -
在循环末尾添加一个 10 秒的小延迟,因为温度水平不需要连续检查。延迟可以减少设备的功耗。
time.sleep(10)
-
在 VS Code 的终端中,激活虚拟环境后运行以下命令以运行您的 Python 应用程序:
python app.py
-
在 CounterFit 应用中更改温度传感器的值,以便应用读取该值。您可以通过以下两种方式之一进行更改:
-
在温度传感器的 Value 框中输入一个数字,然后点击 Set 按钮。您输入的数字将是传感器返回的值。
-
勾选 Random 复选框,并输入 Min 和 Max 值,然后点击 Set 按钮。每次传感器读取值时,它将读取一个介于 Min 和 Max 之间的随机数。
您应该会在控制台中看到您设置的值。更改 Value 或 Random 设置以查看值的变化。
(.venv) ➜ temperature-sensor python app.py Temperature 28.25°C Temperature 30.71°C Temperature 25.17°C
-
💁 您可以在 code-temperature/virtual-device 文件夹中找到此代码。
😀 您的温度传感器程序运行成功!
免责声明:
本文档使用AI翻译服务Co-op Translator进行翻译。尽管我们努力确保翻译的准确性,但请注意,自动翻译可能包含错误或不准确之处。应以原始语言的文档作为权威来源。对于关键信息,建议使用专业人工翻译。因使用本翻译而引起的任何误解或误读,我们概不负责。