# Мерење влаге у земљишту - Виртуелни IoT хардвер У овом делу лекције, додаћете капацитивни сензор влаге земљишта вашем виртуелном IoT уређају и читати вредности са њега. ## Виртуелни хардвер Виртуелни IoT уређај ће користити симулирани Grove капацитивни сензор влаге земљишта. Ово омогућава да овај лабораторијски рад буде идентичан коришћењу Raspberry Pi уређаја са физичким Grove капацитивним сензором влаге земљишта. У физичком IoT уређају, сензор влаге земљишта би био капацитивни сензор који мери влагу земљишта детектовањем капацитивности земљишта, својства које се мења са променом влаге земљишта. Како се влага земљишта повећава, напон опада. Ово је аналогни сензор, па користи симулирани 10-битни ADC за извештавање вредности од 1 до 1,023. ### Додавање сензора влаге земљишта у CounterFit Да бисте користили виртуелни сензор влаге земљишта, потребно је да га додате у CounterFit апликацију. #### Задатак - Додавање сензора влаге земљишта у CounterFit Додајте сензор влаге земљишта у CounterFit апликацију. 1. Направите нову Python апликацију на вашем рачунару у фасцикли названој `soil-moisture-sensor` са једним фајлом названим `app.py` и Python виртуелним окружењем, и додајте CounterFit pip пакете. > ⚠️ Можете се позвати на [упутства за креирање и подешавање CounterFit Python пројекта у лекцији 1 ако је потребно](../../../1-getting-started/lessons/1-introduction-to-iot/virtual-device.md). 1. Уверите се да је CounterFit веб апликација покренута. 1. Направите сензор влаге земљишта: 1. У оквиру *Create sensor* у панелу *Sensors*, кликните на падајући мени *Sensor type* и изаберите *Soil Moisture*. 1. Оставите *Units* подешено на *NoUnits*. 1. Уверите се да је *Pin* подешен на *0*. 1. Изаберите дугме **Add** да бисте креирали *Soil Moisture* сензор на пину 0. ![Подешавања сензора влаге земљишта](../../../../../translated_images/counterfit-create-soil-moisture-sensor.35266135a5e0ae68b29a684d7db0d2933a8098b2307d197f7c71577b724603aa.sr.png) Сензор влаге земљишта ће бити креиран и појавиће се на листи сензора. ![Креирани сензор влаге земљишта](../../../../../translated_images/counterfit-soil-moisture-sensor.81742b2de0e9de60a3b3b9a2ff8ecc686d428eb6d71820f27a693be26e5aceee.sr.png) ## Програмирање апликације за сензор влаге земљишта Сада можете програмирати апликацију за сензор влаге земљишта користећи CounterFit сензоре. ### Задатак - Програмирање апликације за сензор влаге земљишта Програмирајте апликацију за сензор влаге земљишта. 1. Уверите се да је апликација `soil-moisture-sensor` отворена у VS Code. 1. Отворите фајл `app.py`. 1. Додајте следећи код на врх `app.py` да бисте повезали апликацију са CounterFit: ```python from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000) ``` 1. Додајте следећи код у фајл `app.py` да бисте увезли потребне библиотеке: ```python import time from counterfit_shims_grove.adc import ADC ``` Изјава `import time` увози модул `time` који ће се касније користити у овом задатку. Изјава `from counterfit_shims_grove.adc import ADC` увози класу `ADC` за интеракцију са виртуелним аналогно-дигиталним конвертором који може бити повезан са CounterFit сензором. 1. Додајте следећи код испод овога да бисте креирали инстанцу класе `ADC`: ```python adc = ADC() ``` 1. Додајте бесконачну петљу која чита вредности са овог ADC-а на пину 0 и пише резултат у конзолу. Ова петља може да паузира 10 секунди између читања. ```python while True: soil_moisture = adc.read(0) print("Soil moisture:", soil_moisture) time.sleep(10) ``` 1. У CounterFit апликацији, промените вредност сензора влаге земљишта коју ће апликација читати. То можете урадити на два начина: * Унесите број у оквир *Value* за сензор влаге земљишта, а затим изаберите дугме **Set**. Број који унесете биће вредност коју сензор враћа. * Означите поље *Random* и унесите *Min* и *Max* вредности, а затим изаберите дугме **Set**. Сваки пут када сензор чита вредност, читаће насумичан број између *Min* и *Max*. 1. Покрените Python апликацију. Видећете мерења влаге земљишта написана у конзоли. Промените *Value* или подешавања *Random* да бисте видели промену вредности. ```output (.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 ``` > 💁 Овај код можете пронаћи у фасцикли [code/virtual-device](../../../../../2-farm/lessons/2-detect-soil-moisture/code/virtual-device). 😀 Ваша апликација за сензор влаге земљишта је успешно завршена! --- **Одрицање од одговорности**: Овај документ је преведен коришћењем услуге за превођење помоћу вештачке интелигенције [Co-op Translator](https://github.com/Azure/co-op-translator). Иако се трудимо да обезбедимо тачност, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на његовом изворном језику треба сматрати ауторитативним извором. За критичне информације препоручује се професионални превод од стране људи. Не преузимамо одговорност за било каква погрешна тумачења или неспоразуме који могу настати услед коришћења овог превода.