11 KiB
Мерење температуре - Виртуелни IoT хардвер
У овом делу лекције, додаћете сензор за температуру вашем виртуелном IoT уређају.
Виртуелни хардвер
Виртуелни IoT уређај ће користити симулирани Grove дигитални сензор за влажност и температуру. Ово омогућава да ова лабораторија остане иста као када се користи Raspberry Pi са физичким Grove DHT11 сензором.
Сензор комбинује сензор за температуру са сензором за влажност, али у овој лабораторији вас занима само компонента сензора за температуру. У физичком IoT уређају, сензор за температуру би био термистор који мери температуру детектујући промену отпора у зависности од промене температуре. Сензори за температуру су обично дигитални сензори који интерно конвертују измерени отпор у температуру у степенима Целзијуса (или Келвина, или Фаренхајта).
Додавање сензора у CounterFit
Да бисте користили виртуелни сензор за влажност и температуру, потребно је да додате ова два сензора у CounterFit апликацију.
Задатак - додавање сензора у CounterFit
Додајте сензоре за влажност и температуру у CounterFit апликацију.
-
Направите нову Python апликацију на вашем рачунару у фасцикли под називом
temperature-sensor
са једним фајлом под називомapp.py
и Python виртуелним окружењем, и додајте CounterFit pip пакете.⚠️ Можете се позвати на упутства за креирање и подешавање CounterFit Python пројекта у лекцији 1 ако је потребно.
-
Инсталирајте додатни Pip пакет за инсталацију CounterFit shim-а за DHT11 сензор. Уверите се да ово радите из терминала са активираним виртуелним окружењем.
pip install counterfit-shims-seeed-python-dht
-
Уверите се да је CounterFit веб апликација покренута.
-
Направите сензор за влажност:
-
У оквиру Create sensor у панелу Sensors, из падајућег менија Sensor type изаберите Humidity.
-
Оставите Units подешено на Percentage.
-
Уверите се да је Pin подешен на 5.
-
Изаберите дугме Add да бисте креирали сензор за влажност на пину 5.
Сензор за влажност ће бити креиран и појавиће се на листи сензора.
-
-
Направите сензор за температуру:
-
У оквиру Create sensor у панелу Sensors, из падајућег менија Sensor type изаберите Temperature.
-
Оставите Units подешено на Celsius.
-
Уверите се да је Pin подешен на 6.
-
Изаберите дугме Add да бисте креирали сензор за температуру на пину 6.
Сензор за температуру ће бити креиран и појавиће се на листи сензора.
-
Програмирање апликације за сензор температуре
Сада можете програмирати апликацију за сензор температуре користећи CounterFit сензоре.
Задатак - програмирање апликације за сензор температуре
Програмирајте апликацију за сензор температуре.
-
Уверите се да је апликација
temperature-sensor
отворена у VS Code-у. -
Отворите фајл
app.py
. -
Додајте следећи код на врх
app.py
да бисте повезали апликацију са CounterFit-ом:from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000)
-
Додајте следећи код у фајл
app.py
да бисте увезли потребне библиотеке:import time from counterfit_shims_seeed_python_dht import DHT
Изјава
from seeed_dht import DHT
увози класуDHT
за интеракцију са виртуелним Grove сензором температуре користећи shim из модулаcounterfit_shims_seeed_python_dht
. -
Додајте следећи код након претходног да бисте креирали инстанцу класе која управља виртуелним сензором за влажност и температуру:
sensor = DHT("11", 5)
Овим се декларише инстанца класе
DHT
која управља виртуелним Digital Humidity и Temperature сензором. Први параметар говори коду да се користи виртуелни DHT11 сензор. Други параметар говори коду да је сензор повезан на порт5
.💁 CounterFit симулира овај комбиновани сензор за влажност и температуру повезивањем на 2 сензора: сензор за влажност на пину који је дат приликом креирања класе
DHT
, и сензор за температуру који ради на следећем пину. Ако је сензор за влажност на пину 5, shim очекује да је сензор за температуру на пину 6. -
Додајте бесконачну петљу након претходног кода да бисте очитавали вредност сензора температуре и исписивали је у конзолу:
while True: _, temp = sensor.read() print(f'Temperature {temp}°C')
Позив
sensor.read()
враћа тјупл са вредностима влажности и температуре. Потребна вам је само вредност температуре, па се вредност влажности игнорише. Вредност температуре се затим исписује у конзолу. -
Додајте мало кашњење од десет секунди на крају
loop
-а, јер није потребно континуирано проверавати нивое температуре. Кашњење смањује потрошњу енергије уређаја.time.sleep(10)
-
Из терминала у VS Code-у са активираним виртуелним окружењем, покрените следеће да бисте покренули вашу Python апликацију:
python app.py
-
У CounterFit апликацији, промените вредност сензора температуре коју ће апликација очитавати. Ово можете урадити на два начина:
-
Унесите број у поље Value за сензор температуре, а затим изаберите дугме Set. Број који унесете биће вредност коју сензор враћа.
-
Означите поље Random, унесите Min и Max вредности, а затим изаберите дугме Set. Сваки пут када сензор очита вредност, она ће бити насумичан број између Min и Max.
Требало би да видите вредности које сте подесили како се појављују у конзоли. Промените Value или подешавања Random да бисте видели промену вредности.
(.venv) ➜ temperature-sensor python app.py Temperature 28.25°C Temperature 30.71°C Temperature 25.17°C
-
💁 Овај код можете пронаћи у фасцикли code-temperature/virtual-device.
😀 Ваша апликација за сензор температуре је успешно завршена!
Одрицање од одговорности:
Овај документ је преведен коришћењем услуге за превођење помоћу вештачке интелигенције Co-op Translator. Иако се трудимо да обезбедимо тачност, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на његовом изворном језику треба сматрати меродавним извором. За критичне информације, препоручује се професионални превод од стране људи. Не преузимамо одговорност за било каква погрешна тумачења или неспоразуме који могу настати услед коришћења овог превода.