5.5 KiB
Mål jordfugtighed - Virtuel IoT-hardware
I denne del af lektionen vil du tilføje en kapacitiv jordfugtighedssensor til din virtuelle IoT-enhed og læse værdier fra den.
Virtuel hardware
Den virtuelle IoT-enhed vil bruge en simuleret Grove kapacitiv jordfugtighedssensor. Dette gør denne øvelse identisk med at bruge en Raspberry Pi med en fysisk Grove kapacitiv jordfugtighedssensor.
På en fysisk IoT-enhed ville jordfugtighedssensoren være en kapacitiv sensor, der måler jordfugtighed ved at registrere jordens kapacitans, en egenskab der ændrer sig, når jordens fugtighed ændrer sig. Når jordfugtigheden stiger, falder spændingen.
Dette er en analog sensor, så den bruger en simuleret 10-bit ADC til at rapportere en værdi fra 1-1.023.
Tilføj jordfugtighedssensoren til CounterFit
For at bruge en virtuel jordfugtighedssensor skal du tilføje den til CounterFit-appen.
Opgave - Tilføj jordfugtighedssensoren til CounterFit
Tilføj jordfugtighedssensoren til CounterFit-appen.
-
Opret en ny Python-app på din computer i en mappe kaldet
soil-moisture-sensor
med en enkelt fil kaldetapp.py
og et Python-virtuelt miljø, og tilføj CounterFit pip-pakkerne.⚠️ Du kan henvise til instruktionerne for at oprette og opsætte et CounterFit Python-projekt i lektion 1, hvis det er nødvendigt.
-
Sørg for, at CounterFit-webappen kører.
-
Opret en jordfugtighedssensor:
-
I Create sensor-boksen i Sensors-panelet, rul ned i Sensor type-boksen og vælg Soil Moisture.
-
Lad Units være indstillet til NoUnits.
-
Sørg for, at Pin er indstillet til 0.
-
Vælg knappen Add for at oprette Soil Moisture-sensoren på Pin 0.
Jordfugtighedssensoren vil blive oprettet og vises i sensorlisten.
-
Programmer jordfugtighedssensor-appen
Jordfugtighedssensor-appen kan nu programmeres ved hjælp af CounterFit-sensorer.
Opgave - Programmer jordfugtighedssensor-appen
Programmer jordfugtighedssensor-appen.
-
Sørg for, at
soil-moisture-sensor
-appen er åben i VS Code. -
Åbn filen
app.py
. -
Tilføj følgende kode øverst i
app.py
for at forbinde appen til CounterFit:from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000)
-
Tilføj følgende kode til filen
app.py
for at importere nogle nødvendige biblioteker:import time from counterfit_shims_grove.adc import ADC
import time
-sætningen importerertime
-modulet, som vil blive brugt senere i denne opgave.from counterfit_shims_grove.adc import ADC
-sætningen importererADC
-klassen for at interagere med en virtuel analog-til-digital-konverter, der kan forbindes til en CounterFit-sensor. -
Tilføj følgende kode nedenfor for at oprette en instans af
ADC
-klassen:adc = ADC()
-
Tilføj en uendelig løkke, der læser fra denne ADC på pin 0 og skriver resultatet til konsollen. Denne løkke kan derefter sove i 10 sekunder mellem aflæsninger.
while True: soil_moisture = adc.read(0) print("Soil moisture:", soil_moisture) time.sleep(10)
-
Fra CounterFit-appen skal du ændre værdien af jordfugtighedssensoren, som vil blive læst af appen. Du kan gøre dette på to måder:
-
Indtast et tal i Value-boksen for jordfugtighedssensoren, og vælg derefter knappen Set. Det tal, du indtaster, vil være den værdi, sensoren returnerer.
-
Marker Random-afkrydsningsfeltet, og indtast en Min- og Max-værdi, og vælg derefter knappen Set. Hver gang sensoren læser en værdi, vil den læse et tilfældigt tal mellem Min og Max.
-
-
Kør Python-appen. Du vil se jordfugtighedsmålingerne skrevet til konsollen. Ændr Value- eller Random-indstillingerne for at se værdien ændre sig.
(.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 kan finde denne kode i code/virtual-device-mappen.
😀 Dit jordfugtighedssensorprogram var en succes!
Ansvarsfraskrivelse:
Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten Co-op Translator. Selvom vi bestræber os på nøjagtighed, skal du være opmærksom på, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det originale dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi er ikke ansvarlige for eventuelle misforståelser eller fejltolkninger, der måtte opstå som følge af brugen af denne oversættelse.