7.4 KiB
Mål temperatur - Virtuell IoT-maskinvare
I denne delen av leksjonen skal du legge til en temperatursensor på din virtuelle IoT-enhet.
Virtuell maskinvare
Den virtuelle IoT-enheten vil bruke en simulert Grove Digital Humidity and Temperature-sensor. Dette gjør at denne labben forblir lik som å bruke en Raspberry Pi med en fysisk Grove DHT11-sensor.
Sensoren kombinerer en temperatursensor med en fuktighetssensor, men i denne labben er du kun interessert i temperatursensoren. På en fysisk IoT-enhet ville temperatursensoren vært en termistor som måler temperatur ved å registrere endringer i motstand når temperaturen endres. Temperatursensorer er vanligvis digitale sensorer som internt konverterer den målte motstanden til en temperatur i grader Celsius (eller Kelvin, eller Fahrenheit).
Legg til sensorer i CounterFit
For å bruke en virtuell fuktighets- og temperatursensor, må du legge til de to sensorene i CounterFit-appen.
Oppgave - legg til sensorer i CounterFit
Legg til fuktighets- og temperatursensorene i CounterFit-appen.
-
Opprett en ny Python-app på datamaskinen din i en mappe kalt
temperature-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.
-
Installer en ekstra Pip-pakke for å installere en CounterFit shim for DHT11-sensoren. Sørg for at du installerer dette fra en terminal med det virtuelle miljøet aktivert.
pip install counterfit-shims-seeed-python-dht
-
Sørg for at CounterFit-nettappen kjører.
-
Opprett en fuktighetssensor:
-
I Create sensor-boksen i Sensors-panelet, åpne rullegardinmenyen Sensor type og velg Humidity.
-
La Units være satt til Percentage.
-
Sørg for at Pin er satt til 5.
-
Velg Add-knappen for å opprette fuktighetssensoren på Pin 5.
Fuktighetssensoren vil bli opprettet og vises i sensorlisten.
-
-
Opprett en temperatursensor:
-
I Create sensor-boksen i Sensors-panelet, åpne rullegardinmenyen Sensor type og velg Temperature.
-
La Units være satt til Celsius.
-
Sørg for at Pin er satt til 6.
-
Velg Add-knappen for å opprette temperatursensoren på Pin 6.
Temperatursensoren vil bli opprettet og vises i sensorlisten.
-
Programmer temperatursensor-appen
Temperatursensor-appen kan nå programmeres ved hjelp av CounterFit-sensorene.
Oppgave - programmer temperatursensor-appen
Programmer temperatursensor-appen.
-
Sørg for at
temperature-sensor
-appen er åpen i VS Code. -
Åpne
app.py
-filen. -
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 de nødvendige bibliotekene:import time from counterfit_shims_seeed_python_dht import DHT
from seeed_dht import DHT
-setningen importererDHT
-sensor-klassen for å interagere med en virtuell Grove-temperatursensor ved hjelp av en shim fracounterfit_shims_seeed_python_dht
-modulen. -
Legg til følgende kode etter koden ovenfor for å opprette en instans av klassen som administrerer den virtuelle fuktighets- og temperatursensoren:
sensor = DHT("11", 5)
Dette erklærer en instans av
DHT
-klassen som administrerer den virtuelle Digital Humidity og Temperature-sensoren. Den første parameteren forteller koden at sensoren som brukes er en virtuell DHT11-sensor. Den andre parameteren forteller koden at sensoren er koblet til port5
.💁 CounterFit simulerer denne kombinerte fuktighets- og temperatursensoren ved å koble til 2 sensorer, en fuktighetssensor på pinnen som er angitt når
DHT
-klassen opprettes, og en temperatursensor som kjører på neste pin. Hvis fuktighetssensoren er på pin 5, forventer shimmen at temperatursensoren er på pin 6. -
Legg til en uendelig løkke etter koden ovenfor for å hente verdien fra temperatursensoren og skrive den ut til konsollen:
while True: _, temp = sensor.read() print(f'Temperature {temp}°C')
Kallet til
sensor.read()
returnerer en tuple med fuktighet og temperatur. Du trenger bare temperaturverdien, så fuktigheten ignoreres. Temperaturverdien skrives deretter ut til konsollen. -
Legg til en liten pause på ti sekunder på slutten av løkken, da temperaturverdiene ikke trenger å sjekkes kontinuerlig. En pause reduserer strømforbruket til enheten.
time.sleep(10)
-
Fra VS Code-terminalen med et aktivert virtuelt miljø, kjør følgende for å kjøre Python-appen din:
python app.py
-
Fra CounterFit-appen, endre verdien til temperatursensoren som vil bli lest av appen. Du kan gjøre dette på to måter:
-
Skriv inn et tall i Value-boksen for temperatursensoren, og velg deretter Set-knappen. Tallet du skriver inn vil være verdien som returneres av sensoren.
-
Merk av i Random-boksen, 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.
Du bør se verdiene du angir vises i konsollen. Endre Value eller Random-innstillingene for å se verdien endre seg.
(.venv) ➜ temperature-sensor python app.py Temperature 28.25°C Temperature 30.71°C Temperature 25.17°C
-
💁 Du finner denne koden i code-temperature/virtual-device-mappen.
😀 Programmet for temperatursensoren 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 misforståelser eller feiltolkninger som oppstår ved bruk av denne oversettelsen.