测量土壤湿度 - 虚拟物联网硬件 在本课程的这一部分中,您将向您的虚拟物联网设备添加一个电容式土壤湿度传感器,并读取其值。 虚拟硬件 虚拟物联网设备将使用模拟的Grove电容式土壤湿度传感器。这使得实验室与使用带有物理Grove电容式土壤湿度传感器的Raspberry Pi保持一致。 在实际的物联网设备中,土壤湿度传感器是一个电容式传感器,通过检测土壤的电容来测量土壤湿度,该属性会随着土壤湿度的变化而变化。随着土壤湿度的增加,电压会降低。 这是一个模拟传感器,因此它使用一个模拟的10位ADC来报告从1到1023之间的值。 将土壤湿度传感器添加到CounterFit 要使用虚拟土壤湿度传感器,您需要将其添加到CounterFit应用中。
在本课程的这一部分中,您将向您的虚拟物联网设备添加一个电容式土壤湿度传感器,并读取其值。
虚拟物联网设备将使用模拟的Grove电容式土壤湿度传感器。这使得实验室与使用带有物理Grove电容式土壤湿度传感器的Raspberry Pi保持一致。
在实际的物联网设备中,土壤湿度传感器是一个电容式传感器,通过检测土壤的电容来测量土壤湿度,该属性会随着土壤湿度的变化而变化。随着土壤湿度的增加,电压会降低。
这是一个模拟传感器,因此它使用一个模拟的10位ADC来报告从1到1023之间的值。
要使用虚拟土壤湿度传感器,您需要将其添加到CounterFit应用中。
将土壤湿度传感器添加到CounterFit应用中。
在计算机上创建一个名为soil-moisture-sensor的新Python应用,并在其中创建一个名为app.py的单个文件和一个Python虚拟环境,并添加CounterFit pip包。
⚠️ 如果需要,您可以参考第1课中创建和设置CounterFit Python项目的说明。
确保CounterFit Web应用正在运行。
创建一个土壤湿度传感器:
在“传感器”面板中的“创建传感器”框中,下拉“传感器类型”框并选择“土壤湿度”。
将“单位”保留为“无单位”。
确保“引脚”设置为“0”。
选择“添加”按钮以在引脚0上创建“土壤湿度”传感器。

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

现在可以使用CounterFit传感器编程土壤湿度传感器应用了。
编程土壤湿度传感器应用。
确保soil-moisture-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_grove.adc import ADC
import time statement imports the time module that will be used later in this assignment.
The from counterfit_shims_grove.adc import ADC statement imports the ADC class to interact with a virtual analog to digital converter that can connect to a CounterFit sensor.
Add the following code below this to create an instance of the ADC 类:
adc = ADC()
添加一个无限循环,从引脚0上的ADC读取数据并将结果写入控制台。然后让此循环在每次读取之间休眠10秒。
while True: soil_moisture = adc.read(0) print("Soil moisture:", soil_moisture) time.sleep(10)
使用CounterFit应用更改将由应用读取的土壤湿度传感器的值。您可以使用两种方法之一:
在土壤湿度传感器的“值”框中输入数字,然后选择“设置”按钮。输入的数字将成为传感器返回的值。
勾选“随机”复选框,并输入“最小值”和“最大值”,然后选择“设置”按钮。每次传感器读取值时,它都会读取介于“最小值”和“最大值”之间的随机数。
运行Python应用。您将在控制台上看到土壤湿度测量值。更改“值”或“随机”设置以查看值的变化。
(.venv) ➜ soil-moisture-sensor $ python app.py Soil moisture: 615 Soil moisture: 612 Soil moisture: 498 Soil moisture: 493 Soil moisture: 490 Soil Moisture: 388
您可以在code/virtual-device文件夹中找到此代码。
您的土壤湿度传感器程序成功了!
声明:
本文件灏天文库团队进行了翻译。尽管我们力求准确,但请注意,翻译可能包含错误或不准确之处。原文档以其原始语言为准。我们不对因使用此翻译而产生的任何误解或误译负责。