# Контрола релеја - Raspberry Pi У овом делу лекције, додаћете релеј вашем Raspberry Pi-ју поред сензора за влажност земљишта и контролисати га на основу нивоа влажности земљишта. ## Хардвер Raspberry Pi захтева релеј. Релеј који ћете користити је [Grove релеј](https://www.seeedstudio.com/Grove-Relay.html), релеј који је нормално отворен (што значи да је излазни круг отворен или искључен када нема сигнала послатог релеју) и може да обрађује излазне кругове до 250V и 10A. Ово је дигитални актуатор, па се повезује на дигитални пин на Grove Base Hat-у. ### Повежите релеј Grove релеј може се повезати са Raspberry Pi-јем. #### Задатак Повежите релеј. ![Grove релеј](../../../../../translated_images/grove-relay.d426958ca210fbd0fb7983d7edc069d46c73a8b0a099d94797bd756f7b6bb6be.sr.png) 1. Уметните један крај Grove кабла у утичницу на релеју. Кабл ће ући само у једном смеру. 1. Са искљученим Raspberry Pi-јем, повежите други крај Grove кабла са дигиталном утичницом означеном **D5** на Grove Base Hat-у који је прикључен на Pi. Ова утичница је друга с лева, у реду утичница поред GPIO пинова. Оставите сензор за влажност земљишта повезан на утичницу **A0**. ![Grove релеј повезан на утичницу D5, а сензор за влажност земљишта повезан на утичницу A0](../../../../../translated_images/pi-relay-and-soil-moisture-sensor.02f3198975b8c53e69ec716cd2719ce117700bd1fc933eaf93476c103c57939b.sr.png) 1. Уметните сензор за влажност земљишта у земљу, ако већ није из претходне лекције. ## Програмирање релеја Raspberry Pi сада може бити програмиран да користи прикључени релеј. ### Задатак Програмирајте уређај. 1. Укључите Pi и сачекајте да се покрене. 1. Отворите пројекат `soil-moisture-sensor` из претходне лекције у VS Code-у ако већ није отворен. Додаћете код овом пројекту. 1. Додајте следећи код у датотеку `app.py` испод постојећих увоза: ```python from grove.grove_relay import GroveRelay ``` Ова изјава увози `GroveRelay` из Grove Python библиотека за интеракцију са Grove релејем. 1. Додајте следећи код испод декларације класе `ADC` да бисте креирали инстанцу `GroveRelay`: ```python relay = GroveRelay(5) ``` Ово креира релеј користећи пин **D5**, дигитални пин на који сте повезали релеј. 1. Да бисте тестирали да ли релеј ради, додајте следеће у `while True:` петљу: ```python relay.on() time.sleep(.5) relay.off() ``` Код укључује релеј, чека 0.5 секунди, а затим искључује релеј. 1. Покрените Python апликацију. Релеј ће се укључивати и искључивати сваких 10 секунди, са паузом од пола секунде између укључивања и искључивања. Чућете како релеј кликне када се укључи, а затим поново када се искључи. LED на Grove плочи ће светлети када је релеј укључен, а угасити се када је искључен. ![Релеј се укључује и искључује](../../../../../images/relay-turn-on-off.gif) ## Контрола релеја на основу влажности земљишта Сада када релеј ради, може се контролисати у зависности од очитавања влажности земљишта. ### Задатак Контролишите релеј. 1. Обришите 3 линије кода које сте додали за тестирање релеја. Замените их следећим кодом: ```python if soil_moisture > 450: print("Soil Moisture is too low, turning relay on.") relay.on() else: print("Soil Moisture is ok, turning relay off.") relay.off() ``` Овај код проверава ниво влажности земљишта из сензора за влажност земљишта. Ако је изнад 450, укључује релеј, а искључује га када падне испод 450. > 💁 Запамтите, капацитивни сензор за влажност земљишта очитава: што је нижи ниво влажности земљишта, то је више влаге у земљишту и обрнуто. 1. Покрените Python апликацију. Видећете како се релеј укључује или искључује у зависности од нивоа влажности земљишта. Пробајте у сувом земљишту, а затим додајте воду. ```output Soil Moisture: 638 Soil Moisture is too low, turning relay on. Soil Moisture: 452 Soil Moisture is too low, turning relay on. Soil Moisture: 347 Soil Moisture is ok, turning relay off. ``` > 💁 Овај код можете пронаћи у [code-relay/pi](../../../../../2-farm/lessons/3-automated-plant-watering/code-relay/pi) фасцикли. 😀 Ваш програм за контролу релеја на основу сензора за влажност земљишта је успешно завршен! --- **Одрицање од одговорности**: Овај документ је преведен коришћењем услуге за превођење помоћу вештачке интелигенције [Co-op Translator](https://github.com/Azure/co-op-translator). Иако настојимо да обезбедимо тачност, молимо вас да имате у виду да аутоматизовани преводи могу садржати грешке или нетачности. Оригинални документ на изворном језику треба сматрати ауторитативним извором. За критичне информације препоручује се професионални превод од стране људи. Не сносимо одговорност за било каква погрешна тумачења или неспоразуме који могу произаћи из коришћења овог превода.