You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/sr/2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md

11 KiB

Мерење температуре - Виртуелни IoT хардвер

У овом делу лекције, додаћете сензор за температуру вашем виртуелном IoT уређају.

Виртуелни хардвер

Виртуелни IoT уређај ће користити симулирани Grove дигитални сензор за влажност и температуру. Ово омогућава да ова лабораторија остане иста као када се користи Raspberry Pi са физичким Grove DHT11 сензором.

Сензор комбинује сензор за температуру са сензором за влажност, али у овој лабораторији вас занима само компонента сензора за температуру. У физичком IoT уређају, сензор за температуру би био термистор који мери температуру детектујући промену отпора у зависности од промене температуре. Сензори за температуру су обично дигитални сензори који интерно конвертују измерени отпор у температуру у степенима Целзијуса (или Келвина, или Фаренхајта).

Додавање сензора у CounterFit

Да бисте користили виртуелни сензор за влажност и температуру, потребно је да додате ова два сензора у CounterFit апликацију.

Задатак - додавање сензора у CounterFit

Додајте сензоре за влажност и температуру у CounterFit апликацију.

  1. Направите нову Python апликацију на вашем рачунару у фасцикли под називом temperature-sensor са једним фајлом под називом app.py и Python виртуелним окружењем, и додајте CounterFit pip пакете.

    ⚠️ Можете се позвати на упутства за креирање и подешавање CounterFit Python пројекта у лекцији 1 ако је потребно.

  2. Инсталирајте додатни Pip пакет за инсталацију CounterFit shim-а за DHT11 сензор. Уверите се да ово радите из терминала са активираним виртуелним окружењем.

    pip install counterfit-shims-seeed-python-dht
    
  3. Уверите се да је CounterFit веб апликација покренута.

  4. Направите сензор за влажност:

    1. У оквиру Create sensor у панелу Sensors, из падајућег менија Sensor type изаберите Humidity.

    2. Оставите Units подешено на Percentage.

    3. Уверите се да је Pin подешен на 5.

    4. Изаберите дугме Add да бисте креирали сензор за влажност на пину 5.

    Подешавања сензора за влажност

    Сензор за влажност ће бити креиран и појавиће се на листи сензора.

    Креирани сензор за влажност

  5. Направите сензор за температуру:

    1. У оквиру Create sensor у панелу Sensors, из падајућег менија Sensor type изаберите Temperature.

    2. Оставите Units подешено на Celsius.

    3. Уверите се да је Pin подешен на 6.

    4. Изаберите дугме Add да бисте креирали сензор за температуру на пину 6.

    Подешавања сензора за температуру

    Сензор за температуру ће бити креиран и појавиће се на листи сензора.

    Креирани сензор за температуру

Програмирање апликације за сензор температуре

Сада можете програмирати апликацију за сензор температуре користећи CounterFit сензоре.

Задатак - програмирање апликације за сензор температуре

Програмирајте апликацију за сензор температуре.

  1. Уверите се да је апликација temperature-sensor отворена у VS Code-у.

  2. Отворите фајл app.py.

  3. Додајте следећи код на врх app.py да бисте повезали апликацију са CounterFit-ом:

    from counterfit_connection import CounterFitConnection
    CounterFitConnection.init('127.0.0.1', 5000)
    
  4. Додајте следећи код у фајл 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.

  5. Додајте следећи код након претходног да бисте креирали инстанцу класе која управља виртуелним сензором за влажност и температуру:

    sensor = DHT("11", 5)
    

    Овим се декларише инстанца класе DHT која управља виртуелним Digital Humidity и Temperature сензором. Први параметар говори коду да се користи виртуелни DHT11 сензор. Други параметар говори коду да је сензор повезан на порт 5.

    💁 CounterFit симулира овај комбиновани сензор за влажност и температуру повезивањем на 2 сензора: сензор за влажност на пину који је дат приликом креирања класе DHT, и сензор за температуру који ради на следећем пину. Ако је сензор за влажност на пину 5, shim очекује да је сензор за температуру на пину 6.

  6. Додајте бесконачну петљу након претходног кода да бисте очитавали вредност сензора температуре и исписивали је у конзолу:

    while True:
        _, temp = sensor.read()
        print(f'Temperature {temp}°C')
    

    Позив sensor.read() враћа тјупл са вредностима влажности и температуре. Потребна вам је само вредност температуре, па се вредност влажности игнорише. Вредност температуре се затим исписује у конзолу.

  7. Додајте мало кашњење од десет секунди на крају loop-а, јер није потребно континуирано проверавати нивое температуре. Кашњење смањује потрошњу енергије уређаја.

    time.sleep(10)
    
  8. Из терминала у VS Code-у са активираним виртуелним окружењем, покрените следеће да бисте покренули вашу Python апликацију:

    python app.py
    
  9. У 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. Иако се трудимо да обезбедимо тачност, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на његовом изворном језику треба сматрати меродавним извором. За критичне информације, препоручује се професионални превод од стране људи. Не преузимамо одговорност за било каква погрешна тумачења или неспоразуме који могу настати услед коришћења овог превода.