测量温度 - 虚拟物联网硬件 在本课程的这一部分,你将为你的虚拟物联网设备添加一个温度传感器。 虚拟硬件 虚拟物联网设备将使用模拟的Grove数字湿度和温度传感器。这样可以保持实验室与使用带有物理Grove DHT11传感器的Raspberry Pi相同。 该传感器结合了温度传感器和湿度传感器,但在本实验室中,你只对温度传感器组件感兴趣。在实际的物联网设备中,温度传感器通常是一个热敏电阻,通过感应温度变化引起的电阻变化来测量温度。温度传感器通常是数字传感器,内部将测得的电阻转换成摄氏度(或开尔文、华氏度)的温度。 将传感器添加到CounterFit 要使用虚拟湿度和温度传感器,你需要将两个传感器添加到CounterFit应用程序中。
在本课程的这一部分,你将为你的虚拟物联网设备添加一个温度传感器。
虚拟物联网设备将使用模拟的Grove数字湿度和温度传感器。这样可以保持实验室与使用带有物理Grove DHT11传感器的Raspberry Pi相同。
该传感器结合了温度传感器和湿度传感器,但在本实验室中,你只对温度传感器组件感兴趣。在实际的物联网设备中,温度传感器通常是一个热敏电阻,通过感应温度变化引起的电阻变化来测量温度。温度传感器通常是数字传感器,内部将测得的电阻转换成摄氏度(或开尔文、华氏度)的温度。
要使用虚拟湿度和温度传感器,你需要将两个传感器添加到CounterFit应用程序中。
将湿度和温度传感器添加到CounterFit应用程序。
在你的计算机上创建一个名为temperature-sensor的新Python项目,并在其中创建一个名为app.py的文件和一个Python虚拟环境,并添加CounterFit pip包。
⚠️ 如果需要,你可以参考第1课中关于创建和设置CounterFit Python项目的说明。
安装一个额外的Pip包以安装DHT11传感器的CounterFit适配器。确保在激活虚拟环境的终端中安装此包。
pip install counterfit-shims-seeed-python-dht
确保CounterFit Web应用程序正在运行。
创建湿度传感器:
在“传感器”窗格中的“创建传感器”框中,从“传感器类型”下拉列表中选择“湿度”。
将“单位”保持为“百分比”。
确保“引脚”设置为“5”。
选择“添加”按钮,在引脚5上创建湿度传感器。

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

创建温度传感器:
在“传感器”窗格中的“创建传感器”框中,从“传感器类型”下拉列表中选择“温度”。
将“单位”保持为“摄氏度”。
确保“引脚”设置为“6”。
选择“添加”按钮,在引脚6上创建温度传感器。

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

现在可以使用CounterFit传感器编程温度传感器应用。
编程温度传感器应用。
确保temperature-sensor应用在VS Code中打开。
打开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 statement imports the DHT sensor class to interact with a virtual Grove temperature sensor using a shim from the counterfit_shims_seeed_python_dht模块。
在上述代码之后添加以下代码以创建管理虚拟湿度和温度传感器的类的一个实例:
sensor = DHT("11", 5)
这声明了一个DHT class that manages the virtual Digital Humidity and Temperature sensor. The first parameter tells the code the sensor being used is a virtual DHT11 sensor. The second parameter tells the code the sensor is connected to port 5.
CounterFit simulates this combined humidity and temperature sensor by connecting to 2 sensors, a humidity sensor on the pin given when the
DHT类的实例,并且一个温度传感器运行在下一个引脚上。如果湿度传感器在引脚5上,适配器期望温度传感器在引脚6上。
在上述代码之后添加一个无限循环以轮询温度传感器值并将其打印到控制台:
while True: _, temp = sensor.read() print(f'Temperature {temp}°C')
对于sensor.read() returns a tuple of humidity and temperature. You only need the temperature value, so the humidity is ignored. The temperature value is then printed to the console.
Add a small sleep of ten seconds at the end of the loop调用,因为温度水平不需要连续检查。休眠会降低设备的功耗。
time.sleep(10)
从VS Code终端中,使用激活的虚拟环境运行以下命令以运行你的Python应用:
python app.py
从CounterFit应用中,更改应用将读取的温度传感器的值。你可以通过两种方式之一完成此操作:
在温度传感器的“值”框中输入一个数字,然后选择“设置”按钮。你输入的数字将成为传感器返回的值。
勾选“随机”复选框,并输入“最小值”和“最大值”,然后选择“设置”按钮。每次传感器读取一个值时,它都会读取介于“最小值”和“最大值”之间的随机数。
你应该看到设置的值出现在控制台中。更改“值”或“随机”设置以查看值变化。
(.venv) ➜ temperature-sensor python app.py Temperature 28.25°C Temperature 30.71°C Temperature 25.17°C
你可以在code-temperature/virtual-device文件夹中找到此代码。
你的温度传感器程序成功了!
声明:
本文件灏天文库团队进行了翻译。尽管我们力求准确,但请注意,翻译可能包含错误或不准确之处。原文档以其原始语言为准。我们不对因使用此翻译而产生的任何误解或误译负责。