7.5 KiB
Mål temperatur - Virtuel IoT-hardware
I denne del af lektionen vil du tilføje en temperatursensor til din virtuelle IoT-enhed.
Virtuel hardware
Den virtuelle IoT-enhed vil bruge en simuleret Grove Digital Humidity and Temperature-sensor. Dette gør denne øvelse identisk med at bruge en Raspberry Pi med en fysisk Grove DHT11-sensor.
Sensoren kombinerer en temperatursensor med en fugtighedssensor, men i denne øvelse er du kun interesseret i temperatursensor-komponenten. På en fysisk IoT-enhed ville temperatursensoren være en termistor, der måler temperatur ved at registrere ændringer i modstand, når temperaturen ændrer sig. Temperatursensorer er normalt digitale sensorer, der internt konverterer den målte modstand til en temperatur i grader Celsius (eller Kelvin, eller Fahrenheit).
Tilføj sensorerne til CounterFit
For at bruge en virtuel fugtigheds- og temperatursensor skal du tilføje de to sensorer til CounterFit-appen.
Opgave - tilføj sensorerne til CounterFit
Tilføj fugtigheds- og temperatursensorerne til CounterFit-appen.
-
Opret en ny Python-app på din computer i en mappe kaldet
temperature-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 nødvendigt.
-
Installer en ekstra Pip-pakke for at installere en CounterFit shim til DHT11-sensoren. Sørg for, at du installerer dette fra en terminal med det virtuelle miljø aktiveret.
pip install counterfit-shims-seeed-python-dht
-
Sørg for, at CounterFit-webappen kører.
-
Opret en fugtighedssensor:
-
I boksen Create sensor i panelet Sensors, vælg Sensor type og vælg Humidity.
-
Lad Units være indstillet til Percentage.
-
Sørg for, at Pin er indstillet til 5.
-
Vælg knappen Add for at oprette fugtighedssensoren på Pin 5.
Fugtighedssensoren vil blive oprettet og vises i sensorlisten.
-
-
Opret en temperatursensor:
-
I boksen Create sensor i panelet Sensors, vælg Sensor type og vælg Temperature.
-
Lad Units være indstillet til Celsius.
-
Sørg for, at Pin er indstillet til 6.
-
Vælg knappen Add for at oprette temperatursensoren på Pin 6.
Temperatursensoren vil blive oprettet og vises i sensorlisten.
-
Programmer temperatursensor-appen
Temperatursensor-appen kan nu programmeres ved hjælp af CounterFit-sensorerne.
Opgave - programmer temperatursensor-appen
Programmer temperatursensor-appen.
-
Sørg for, at
temperature-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
app.py
for at importere de nødvendige biblioteker:import time from counterfit_shims_seeed_python_dht import DHT
from seeed_dht import DHT
-sætningen importererDHT
-sensor-klassen for at interagere med en virtuel Grove-temperatursensor ved hjælp af en shim fra moduletcounterfit_shims_seeed_python_dht
. -
Tilføj følgende kode efter ovenstående for at oprette en instans af klassen, der styrer den virtuelle fugtigheds- og temperatursensor:
sensor = DHT("11", 5)
Dette erklærer en instans af
DHT
-klassen, der styrer den virtuelle Digitale Humidity og Temperature-sensor. Den første parameter fortæller koden, at sensoren, der bruges, er en virtuel DHT11-sensor. Den anden parameter fortæller koden, at sensoren er tilsluttet port5
.💁 CounterFit simulerer denne kombinerede fugtigheds- og temperatursensor ved at forbinde til 2 sensorer: en fugtighedssensor på den pin, der gives, når
DHT
-klassen oprettes, og en temperatursensor, der kører på den næste pin. Hvis fugtighedssensoren er på pin 5, forventer shimmen, at temperatursensoren er på pin 6. -
Tilføj en uendelig løkke efter ovenstående kode for at aflæse temperatursensorens værdi og udskrive den til konsollen:
while True: _, temp = sensor.read() print(f'Temperature {temp}°C')
Kaldet til
sensor.read()
returnerer en tuple med fugtighed og temperatur. Du har kun brug for temperaturværdien, så fugtigheden ignoreres. Temperaturværdien udskrives derefter til konsollen. -
Tilføj en kort pause på ti sekunder i slutningen af
loop
, da temperaturværdierne ikke behøver at blive kontrolleret kontinuerligt. En pause reducerer enhedens strømforbrug.time.sleep(10)
-
Fra VS Code-terminalen med et aktiveret virtuelt miljø, kør følgende for at køre din Python-app:
python app.py
-
Fra CounterFit-appen skal du ændre værdien af temperatursensoren, der vil blive aflæst af appen. Du kan gøre dette på to måder:
-
Indtast et tal i Value-boksen for temperatursensoren, og vælg derefter knappen Set. Det tal, du indtaster, vil være den værdi, sensoren returnerer.
-
Marker afkrydsningsfeltet Random, og indtast en Min- og Max-værdi, og vælg derefter knappen Set. Hver gang sensoren aflæser en værdi, vil den aflæse et tilfældigt tal mellem Min og Max.
Du bør se de værdier, du har indstillet, vises i konsollen. Ændr Value eller Random-indstillingerne for at se værdien ændre sig.
(.venv) ➜ temperature-sensor python app.py Temperature 28.25°C Temperature 30.71°C Temperature 25.17°C
-
💁 Du kan finde denne kode i mappen code-temperature/virtual-device.
😀 Dit temperatursensorprogram 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 det bemærkes, 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 påtager os intet ansvar for misforståelser eller fejltolkninger, der måtte opstå som følge af brugen af denne oversættelse.