5.6 KiB
Merjenje vlažnosti tal - Virtualna IoT strojna oprema
V tem delu lekcije boste svoji virtualni IoT napravi dodali kapacitivni senzor za merjenje vlažnosti tal in prebrali vrednosti iz njega.
Virtualna strojna oprema
Virtualna IoT naprava bo uporabljala simuliran Grove kapacitivni senzor za merjenje vlažnosti tal. To omogoča, da je ta laboratorijska vaja enaka kot uporaba Raspberry Pi z dejanskim Grove kapacitivnim senzorjem za merjenje vlažnosti tal.
Pri fizični IoT napravi bi bil senzor za merjenje vlažnosti tal kapacitivni senzor, ki meri vlažnost tal z zaznavanjem kapacitivnosti tal, lastnosti, ki se spreminja glede na vlažnost tal. Ko se vlažnost tal poveča, se napetost zmanjša.
To je analogni senzor, zato uporablja simuliran 10-bitni ADC za poročanje vrednosti od 1 do 1.023.
Dodajanje senzorja za merjenje vlažnosti tal v CounterFit
Za uporabo virtualnega senzorja za merjenje vlažnosti tal ga morate dodati v aplikacijo CounterFit.
Naloga - Dodajanje senzorja za merjenje vlažnosti tal v CounterFit
Dodajte senzor za merjenje vlažnosti tal v aplikacijo CounterFit.
-
Na svojem računalniku ustvarite novo Python aplikacijo v mapi
soil-moisture-sensor
z eno datoteko z imenomapp.py
in Python virtualnim okoljem ter dodajte CounterFit pip pakete.⚠️ Če potrebujete, si lahko ogledate navodila za ustvarjanje in nastavitev CounterFit Python projekta v lekciji 1.
-
Prepričajte se, da je CounterFit spletna aplikacija zagnana.
-
Ustvarite senzor za merjenje vlažnosti tal:
-
V polju Create sensor v podoknu Sensors izberite Sensor type in izberite Soil Moisture.
-
Pustite Units nastavljene na NoUnits.
-
Prepričajte se, da je Pin nastavljen na 0.
-
Kliknite gumb Add, da ustvarite senzor Soil Moisture na pinu 0.
Senzor za merjenje vlažnosti tal bo ustvarjen in se bo pojavil na seznamu senzorjev.
-
Programiranje aplikacije za senzor vlažnosti tal
Zdaj lahko programirate aplikacijo za senzor vlažnosti tal z uporabo senzorjev CounterFit.
Naloga - Programiranje aplikacije za senzor vlažnosti tal
Programirajte aplikacijo za senzor vlažnosti tal.
-
Prepričajte se, da je aplikacija
soil-moisture-sensor
odprta v VS Code. -
Odprite datoteko
app.py
. -
Dodajte naslednjo kodo na vrh datoteke
app.py
, da povežete aplikacijo s CounterFit:from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000)
-
Dodajte naslednjo kodo v datoteko
app.py
za uvoz potrebnih knjižnic:import time from counterfit_shims_grove.adc import ADC
Ukaz
import time
uvozi modultime
, ki bo uporabljen kasneje v tej nalogi.Ukaz
from counterfit_shims_grove.adc import ADC
uvozi razredADC
za interakcijo s simuliranim analognim-digitalnim pretvornikom, ki se lahko poveže s senzorjem CounterFit. -
Dodajte naslednjo kodo pod to, da ustvarite instanco razreda
ADC
:adc = ADC()
-
Dodajte neskončno zanko, ki bere vrednosti iz tega ADC na pinu 0 in jih zapisuje v konzolo. Ta zanka lahko nato spi 10 sekund med branji.
while True: soil_moisture = adc.read(0) print("Soil moisture:", soil_moisture) time.sleep(10)
-
V aplikaciji CounterFit spremenite vrednost senzorja za merjenje vlažnosti tal, ki jo bo aplikacija prebrala. To lahko storite na dva načina:
-
Vnesite številko v polje Value za senzor vlažnosti tal in nato kliknite gumb Set. Številka, ki jo vnesete, bo vrednost, ki jo senzor vrne.
-
Označite polje Random in vnesite vrednosti Min in Max, nato kliknite gumb Set. Vsakič, ko senzor prebere vrednost, bo prebral naključno številko med Min in Max.
-
-
Zaženite Python aplikacijo. Videli boste meritve vlažnosti tal, zapisane v konzolo. Spremenite Value ali nastavitve Random, da vidite, kako se vrednost spreminja.
(.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
💁 To kodo lahko najdete v mapi code/virtual-device.
😀 Vaš program za senzor vlažnosti tal je bil uspešen!
Omejitev odgovornosti:
Ta dokument je bil preveden z uporabo storitve za prevajanje z umetno inteligenco Co-op Translator. Čeprav si prizadevamo za natančnost, vas prosimo, da upoštevate, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Izvirni dokument v njegovem maternem jeziku je treba obravnavati kot avtoritativni vir. Za ključne informacije priporočamo profesionalni človeški prevod. Ne prevzemamo odgovornosti za morebitna nesporazumevanja ali napačne razlage, ki bi nastale zaradi uporabe tega prevoda.