5.5 KiB
Mjerenje vlažnosti tla - Virtualni IoT hardver
U ovom dijelu lekcije, dodat ćete kapacitivni senzor vlažnosti tla svom virtualnom IoT uređaju i očitati vrijednosti s njega.
Virtualni hardver
Virtualni IoT uređaj koristit će simulirani Grove kapacitivni senzor vlažnosti tla. Ovo omogućuje da laboratorij ostane isti kao korištenje Raspberry Pi uređaja s fizičkim Grove kapacitivnim senzorom vlažnosti tla.
Na fizičkom IoT uređaju, senzor vlažnosti tla bio bi kapacitivni senzor koji mjeri vlažnost tla detektiranjem kapaciteta tla, svojstva koje se mijenja ovisno o vlažnosti tla. Kako se vlažnost tla povećava, napon se smanjuje.
Ovo je analogni senzor, pa koristi simulirani 10-bitni ADC za prijavu vrijednosti od 1 do 1.023.
Dodavanje senzora vlažnosti tla u CounterFit
Za korištenje virtualnog senzora vlažnosti tla, potrebno ga je dodati u CounterFit aplikaciju.
Zadatak - Dodavanje senzora vlažnosti tla u CounterFit
Dodajte senzor vlažnosti tla u CounterFit aplikaciju.
-
Kreirajte novu Python aplikaciju na svom računalu u mapi nazvanoj
soil-moisture-sensor
s jednim datotekama nazvanimapp.py
i Python virtualnim okruženjem, te dodajte CounterFit pip pakete.⚠️ Možete se referirati na upute za kreiranje i postavljanje CounterFit Python projekta u lekciji 1 ako je potrebno.
-
Provjerite je li CounterFit web aplikacija pokrenuta.
-
Kreirajte senzor vlažnosti tla:
-
U okviru Create sensor u Sensors panelu, otvorite padajući izbornik Sensor type i odaberite Soil Moisture.
-
Ostavite Units postavljen na NoUnits.
-
Provjerite je li Pin postavljen na 0.
-
Kliknite gumb Add za kreiranje senzora Soil Moisture na pinu 0.
Senzor vlažnosti tla bit će kreiran i pojavit će se na popisu senzora.
-
Programiranje aplikacije za senzor vlažnosti tla
Aplikacija za senzor vlažnosti tla sada se može programirati koristeći CounterFit senzore.
Zadatak - Programiranje aplikacije za senzor vlažnosti tla
Programirajte aplikaciju za senzor vlažnosti tla.
-
Provjerite je li aplikacija
soil-moisture-sensor
otvorena u VS Code. -
Otvorite datoteku
app.py
. -
Dodajte sljedeći kod na vrh datoteke
app.py
za povezivanje aplikacije s CounterFit:from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000)
-
Dodajte sljedeći kod u datoteku
app.py
za uvoz potrebnih biblioteka:import time from counterfit_shims_grove.adc import ADC
Izjava
import time
uvozi modultime
koji će se kasnije koristiti u ovom zadatku.Izjava
from counterfit_shims_grove.adc import ADC
uvozi klasuADC
za interakciju s virtualnim analogno-digitalnim pretvaračem koji se može povezati s CounterFit senzorom. -
Dodajte sljedeći kod ispod ovoga za kreiranje instance klase
ADC
:adc = ADC()
-
Dodajte beskonačnu petlju koja čita vrijednosti s ovog ADC-a na pinu 0 i zapisuje rezultat u konzolu. Ova petlja može zatim pauzirati 10 sekundi između očitanja.
while True: soil_moisture = adc.read(0) print("Soil moisture:", soil_moisture) time.sleep(10)
-
U CounterFit aplikaciji, promijenite vrijednost senzora vlažnosti tla koju će aplikacija očitati. To možete učiniti na dva načina:
-
Unesite broj u okvir Value za senzor vlažnosti tla, zatim kliknite gumb Set. Broj koji unesete bit će vrijednost koju senzor vraća.
-
Označite kućicu Random i unesite Min i Max vrijednosti, zatim kliknite gumb Set. Svaki put kada senzor očita vrijednost, očitat će nasumični broj između Min i Max.
-
-
Pokrenite Python aplikaciju. Vidjet ćete mjerenja vlažnosti tla zapisana u konzolu. Promijenite Value ili postavke Random kako biste vidjeli promjenu vrijednosti.
(.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
💁 Ovaj kod možete pronaći u mapi code/virtual-device.
😀 Vaša aplikacija za senzor vlažnosti tla bila je uspješna!
Odricanje od odgovornosti:
Ovaj dokument je preveden pomoću AI usluge za prevođenje Co-op Translator. Iako nastojimo osigurati točnost, imajte na umu da automatski prijevodi mogu sadržavati pogreške ili netočnosti. Izvorni dokument na izvornom jeziku treba smatrati autoritativnim izvorom. Za kritične informacije preporučuje se profesionalni prijevod od strane čovjeka. Ne preuzimamo odgovornost za bilo kakva nesporazuma ili pogrešna tumačenja koja proizlaze iz korištenja ovog prijevoda.