5.6 KiB
Měření vlhkosti půdy - Virtuální IoT hardware
V této části lekce přidáte kapacitní senzor vlhkosti půdy k vašemu virtuálnímu IoT zařízení a budete z něj číst hodnoty.
Virtuální hardware
Virtuální IoT zařízení bude používat simulovaný kapacitní senzor vlhkosti půdy Grove. Tento přístup udržuje tento lab stejný jako při použití Raspberry Pi s fyzickým kapacitním senzorem vlhkosti půdy Grove.
U fyzického IoT zařízení by senzor vlhkosti půdy byl kapacitní senzor, který měří vlhkost půdy detekcí kapacity půdy, což je vlastnost, která se mění s vlhkostí půdy. Jak vlhkost půdy roste, napětí klesá.
Jedná se o analogový senzor, který používá simulovaný 10bitový ADC k reportování hodnoty v rozmezí 1–1 023.
Přidání senzoru vlhkosti půdy do CounterFit
Pro použití virtuálního senzoru vlhkosti půdy je třeba jej přidat do aplikace CounterFit.
Úkol - Přidání senzoru vlhkosti půdy do CounterFit
Přidejte senzor vlhkosti půdy do aplikace CounterFit.
-
Vytvořte novou Python aplikaci na svém počítači ve složce
soil-moisture-sensor
s jediným souboremapp.py
a Python virtuálním prostředím, a přidejte CounterFit pip balíčky.⚠️ Můžete se odkázat na instrukce pro vytvoření a nastavení CounterFit Python projektu v lekci 1, pokud je to potřeba.
-
Ujistěte se, že webová aplikace CounterFit běží.
-
Vytvořte senzor vlhkosti půdy:
-
V poli Create sensor v panelu Sensors rozbalte pole Sensor type a vyberte Soil Moisture.
-
Nechte Units nastavené na NoUnits.
-
Ujistěte se, že Pin je nastaven na 0.
-
Klikněte na tlačítko Add pro vytvoření senzoru Soil Moisture na pinu 0.
Senzor vlhkosti půdy bude vytvořen a objeví se v seznamu senzorů.
-
Naprogramování aplikace senzoru vlhkosti půdy
Aplikace senzoru vlhkosti půdy nyní může být naprogramována pomocí senzorů CounterFit.
Úkol - Naprogramování aplikace senzoru vlhkosti půdy
Naprogramujte aplikaci senzoru vlhkosti půdy.
-
Ujistěte se, že aplikace
soil-moisture-sensor
je otevřená ve VS Code. -
Otevřete soubor
app.py
. -
Přidejte následující kód na začátek souboru
app.py
pro připojení aplikace k CounterFit:from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000)
-
Přidejte následující kód do souboru
app.py
pro import potřebných knihoven:import time from counterfit_shims_grove.adc import ADC
Příkaz
import time
importuje modultime
, který bude použit později v tomto úkolu.Příkaz
from counterfit_shims_grove.adc import ADC
importuje tříduADC
pro interakci se simulovaným analogově-digitálním převodníkem, který se může připojit k senzoru CounterFit. -
Přidejte následující kód pod tento blok pro vytvoření instance třídy
ADC
:adc = ADC()
-
Přidejte nekonečnou smyčku, která čte hodnoty z ADC na pinu 0 a zapisuje výsledek do konzole. Tato smyčka pak může mezi čteními spát po dobu 10 sekund.
while True: soil_moisture = adc.read(0) print("Soil moisture:", soil_moisture) time.sleep(10)
-
V aplikaci CounterFit změňte hodnotu senzoru vlhkosti půdy, kterou bude aplikace číst. Můžete to udělat jedním ze dvou způsobů:
-
Zadejte číslo do pole Value senzoru vlhkosti půdy a poté klikněte na tlačítko Set. Číslo, které zadáte, bude hodnota vrácená senzorem.
-
Zaškrtněte políčko Random a zadejte hodnoty Min a Max, poté klikněte na tlačítko Set. Při každém čtení hodnoty senzoru se přečte náhodné číslo mezi Min a Max.
-
-
Spusťte Python aplikaci. Uvidíte měření vlhkosti půdy zapsaná do konzole. Změňte hodnotu Value nebo nastavení Random, abyste viděli změnu hodnoty.
(.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
💁 Tento kód najdete ve složce code/virtual-device.
😀 Program senzoru vlhkosti půdy byl úspěšný!
Prohlášení:
Tento dokument byl přeložen pomocí služby pro automatický překlad Co-op Translator. Ačkoli se snažíme o přesnost, mějte prosím na paměti, že automatické překlady mohou obsahovat chyby nebo nepřesnosti. Původní dokument v jeho původním jazyce by měl být považován za autoritativní zdroj. Pro důležité informace doporučujeme profesionální lidský překlad. Neodpovídáme za žádné nedorozumění nebo nesprávné interpretace vyplývající z použití tohoto překladu.