5.5 KiB
Mål jordfuktighet - Virtuell IoT-maskinvare
I denne delen av leksjonen skal du legge til en kapasitansbasert jordfuktighetssensor til din virtuelle IoT-enhet og lese verdier fra den.
Virtuell maskinvare
Den virtuelle IoT-enheten vil bruke en simulert Grove kapasitansbasert jordfuktighetssensor. Dette holder denne øvelsen lik som å bruke en Raspberry Pi med en fysisk Grove kapasitansbasert jordfuktighetssensor.
I en fysisk IoT-enhet ville jordfuktighetssensoren vært en kapasitanssensor som måler jordfuktighet ved å oppdage jordens kapasitans, en egenskap som endres når jordfuktigheten endres. Når jordfuktigheten øker, synker spenningen.
Dette er en analog sensor, så den bruker en simulert 10-bits ADC for å rapportere en verdi fra 1-1 023.
Legg til jordfuktighetssensoren i CounterFit
For å bruke en virtuell jordfuktighetssensor må du legge den til i CounterFit-appen.
Oppgave - Legg til jordfuktighetssensoren i CounterFit
Legg til jordfuktighetssensoren i CounterFit-appen.
-
Opprett en ny Python-app på datamaskinen din i en mappe kalt
soil-moisture-sensor
med en enkelt fil kaltapp.py
og et Python-virtuelt miljø, og legg til CounterFit-pip-pakkene.⚠️ Du kan referere til instruksjonene for å opprette og sette opp et CounterFit Python-prosjekt i leksjon 1 hvis nødvendig.
-
Sørg for at CounterFit-nettappen kjører.
-
Opprett en jordfuktighetssensor:
-
I boksen Create sensor i Sensors-panelet, åpne rullegardinmenyen Sensor type og velg Soil Moisture.
-
La Units stå som NoUnits.
-
Sørg for at Pin er satt til 0.
-
Velg Add-knappen for å opprette Soil Moisture-sensoren på Pin 0.
Jordfuktighetssensoren vil bli opprettet og vises i sensorlisten.
-
Programmer appen for jordfuktighetssensoren
Appen for jordfuktighetssensoren kan nå programmeres ved hjelp av CounterFit-sensorene.
Oppgave - Programmer appen for jordfuktighetssensoren
Programmer appen for jordfuktighetssensoren.
-
Sørg for at
soil-moisture-sensor
-appen er åpen i VS Code. -
Åpne filen
app.py
. -
Legg til følgende kode øverst i
app.py
for å koble appen til CounterFit:from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000)
-
Legg til følgende kode i
app.py
-filen for å importere noen nødvendige biblioteker:import time from counterfit_shims_grove.adc import ADC
import time
-setningen importerertime
-modulen som vil bli brukt senere i denne oppgaven.from counterfit_shims_grove.adc import ADC
-setningen importererADC
-klassen for å samhandle med en virtuell analog-til-digital-omformer som kan kobles til en CounterFit-sensor. -
Legg til følgende kode under dette for å opprette en instans av
ADC
-klassen:adc = ADC()
-
Legg til en uendelig løkke som leser fra denne ADC-en på pin 0 og skriver resultatet til konsollen. Denne løkken kan deretter sove i 10 sekunder mellom hver lesing.
while True: soil_moisture = adc.read(0) print("Soil moisture:", soil_moisture) time.sleep(10)
-
Fra CounterFit-appen, endre verdien til jordfuktighetssensoren som vil bli lest av appen. Du kan gjøre dette på to måter:
-
Skriv inn et tall i Value-boksen for jordfuktighetssensoren, og velg deretter Set-knappen. Tallet du skriver inn vil være verdien som sensoren returnerer.
-
Merk av i Random-avkrysningsboksen, og skriv inn en Min- og Max-verdi, og velg deretter Set-knappen. Hver gang sensoren leser en verdi, vil den lese et tilfeldig tall mellom Min og Max.
-
-
Kjør Python-appen. Du vil se målingene av jordfuktighet skrevet til konsollen. Endre Value eller Random-innstillingene for å se verdien endre seg.
(.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
💁 Du finner denne koden i code/virtual-device-mappen.
😀 Programmet for jordfuktighetssensoren din var en suksess!
Ansvarsfraskrivelse:
Dette dokumentet er oversatt ved hjelp av AI-oversettelsestjenesten Co-op Translator. Selv om vi streber etter nøyaktighet, vær oppmerksom på at automatiserte oversettelser kan inneholde feil eller unøyaktigheter. Det originale dokumentet på sitt opprinnelige språk bør anses som den autoritative kilden. For kritisk informasjon anbefales profesjonell menneskelig oversettelse. Vi er ikke ansvarlige for eventuelle misforståelser eller feiltolkninger som oppstår ved bruk av denne oversettelsen.