|
|
<!--
|
|
|
CO_OP_TRANSLATOR_METADATA:
|
|
|
{
|
|
|
"original_hash": "4fb20273d299dc8d07a8f06c9cd0cdd9",
|
|
|
"translation_date": "2025-08-28T14:35:27+00:00",
|
|
|
"source_file": "2-farm/lessons/2-detect-soil-moisture/README.md",
|
|
|
"language_code": "sr"
|
|
|
}
|
|
|
-->
|
|
|
C, изговара се као *И-скверд-Си*, је протокол са више контролера и више периферних уређаја, где сваки повезани уређај може деловати као контролер или периферни уређај који комуницира преко I²C магистрале (назив за систем комуникације који преноси податке). Подаци се шаљу у облику адресираних пакета, при чему сваки пакет садржи адресу повезаног уређаја за који је намењен.
|
|
|
|
|
|
> 💁 Овај модел се раније називао мастер/слејв, али се ова терминологија напушта због њене повезаности са ропством. [Open Source Hardware Association је усвојила термин контролер/периферија](https://www.oshwa.org/a-resolution-to-redefine-spi-signal-names/), али можда ћете и даље наићи на референце старе терминологије.
|
|
|
|
|
|
Уређаји имају адресу која се користи када се повезују на I²C магистралу и обично је унапред подешена на уређају. На пример, сваки тип Grove сензора од Seeed-а има исту адресу, тако да сви сензори светлости имају исту адресу, сви тастери имају исту адресу која се разликује од адресе сензора светлости. Неки уређаји имају могућност промене адресе, променом подешавања џампера или лемљењем пинова.
|
|
|
|
|
|
I²C има магистралу састављену од 2 главне жице, заједно са 2 жице за напајање:
|
|
|
|
|
|
| Жица | Назив | Опис |
|
|
|
| ---- | --------- | ----------- |
|
|
|
| SDA | Серијски подаци | Ова жица служи за слање података између уређаја. |
|
|
|
| SCL | Серијски сат | Ова жица шаље сигнал сата брзином коју подешава контролер. |
|
|
|
| VCC | Напонски заједнички колектор | Напајање за уређаје. Ово је повезано са SDA и SCL жицама како би им обезбедило напајање преко pull-up отпорника који искључује сигнал када ниједан уређај није контролер. |
|
|
|
| GND | Земља | Ово обезбеђује заједничку земљу за електрично коло. |
|
|
|
|
|
|

|
|
|
|
|
|
Да би послао податке, један уређај ће издати стартни услов како би показао да је спреман за слање података. Он ће тада постати контролер. Контролер затим шаље адресу уређаја са којим жели да комуницира, заједно са информацијом да ли жели да чита или пише податке. Након што су подаци пренети, контролер шаље стоп услов како би означио да је завршио. Након тога, други уређај може постати контролер и слати или примати податке.
|
|
|
|
|
|
I<sup>2</sup>C има ограничења брзине, са три различита режима који раде на фиксним брзинама. Најбржи је режим велике брзине са максималном брзином од 3.4Mbps (мегабита у секунди), мада веома мало уређаја подржава ту брзину. На пример, Raspberry Pi је ограничен на брзи режим од 400Kbps (килобита у секунди). Стандардни режим ради на 100Kbps.
|
|
|
|
|
|
> 💁 Ако користите Raspberry Pi са Grove Base hat као свој IoT хардвер, моћи ћете да видите бројне I<sup>2</sup>C прикључке на плочи које можете користити за комуникацију са I<sup>2</sup>C сензорима. Аналогни Grove сензори такође користе I<sup>2</sup>C са ADC-ом за слање аналогних вредности као дигиталних података, тако да је светлосни сензор који сте користили симулирао аналогни пин, са вредношћу која је послата преко I<sup>2</sup>C јер Raspberry Pi подржава само дигиталне пинове.
|
|
|
|
|
|
### Универзални асинхрони пријемник-предајник (UART)
|
|
|
|
|
|
UART укључује физичке кола која омогућавају комуникацију између два уређаја. Сваки уређај има 2 комуникациона пина - предајни (Tx) и пријемни (Rx), при чему је Tx пин првог уређаја повезан са Rx пином другог, а Tx пин другог уређаја повезан са Rx пином првог. Ово омогућава слање података у оба смера.
|
|
|
|
|
|
* Уређај 1 шаље податке са свог Tx пина, које прима уређај 2 на његовом Rx пину
|
|
|
* Уређај 1 прима податке на свом Rx пину које шаље уређај 2 са свог Tx пина
|
|
|
|
|
|

|
|
|
|
|
|
> 🎓 Подаци се шаљу један бит по један, и ово је познато као *серијска* комуникација. Већина оперативних система и микроконтролера има *серијске портове*, односно везе које могу слати и примати серијске податке доступне вашем коду.
|
|
|
|
|
|
UART уређаји имају [baud rate](https://wikipedia.org/wiki/Symbol_rate) (такође познат као симболска брзина), што је брзина којом ће подаци бити послати и примљени у битовима у секунди. Уобичајена baud rate вредност је 9,600, што значи да се 9,600 битова (0 и 1) података шаље сваке секунде.
|
|
|
|
|
|
UART користи старт и стоп битове - то јест, шаље старт бит да означи да ће послати бајт (8 битова) података, а затим стоп бит након што пошаље 8 битова.
|
|
|
|
|
|
Брзина UART-а зависи од хардвера, али чак и најбрже имплементације не прелазе 6.5 Mbps (мегабита у секунди, или милиона битова, 0 или 1, послатих у секунди).
|
|
|
|
|
|
Можете користити UART преко GPIO пинова - можете поставити један пин као Tx, а други као Rx, а затим их повезати са другим уређајем.
|
|
|
|
|
|
> 💁 Ако користите Raspberry Pi са Grove Base hat као свој IoT хардвер, моћи ћете да видите UART прикључак на плочи који можете користити за комуникацију са сензорима који користе UART протокол.
|
|
|
|
|
|
### Серијски периферни интерфејс (SPI)
|
|
|
|
|
|
SPI је дизајниран за комуникацију на кратким растојањима, као што је на микроконтролеру за комуникацију са уређајем за складиштење као што је флеш меморија. Заснован је на моделу контролера/периферије са једним контролером (обично процесором IoT уређаја) који комуницира са више периферија. Контролер контролише све тако што бира периферију и шаље или захтева податке.
|
|
|
|
|
|
> 💁 Као и код I<sup>2</sup>C, термини контролер и периферија су недавне промене, тако да можете видети да се и даље користе старији термини.
|
|
|
|
|
|
SPI контролери користе 3 жице, уз 1 додатну жицу по периферији. Периферије користе 4 жице. Ове жице су:
|
|
|
|
|
|
| Жица | Назив | Опис |
|
|
|
| ---- | --------- | ----------- |
|
|
|
| COPI | Излаз контролера, улаз периферије | Ова жица служи за слање података од контролера до периферије. |
|
|
|
| CIPO | Улаз контролера, излаз периферије | Ова жица служи за слање података од периферије до контролера. |
|
|
|
| SCLK | Серијски сат | Ова жица шаље сигнал сата брзином коју поставља контролер. |
|
|
|
| CS | Избор чипа | Контролер има више жица, једну по периферији, и свака жица се повезује са CS жицом на одговарајућој периферији. |
|
|
|
|
|
|

|
|
|
|
|
|
CS жица се користи за активирање једне периферије у исто време, комуницирајући преко COPI и CIPO жица. Када контролер треба да промени периферију, деактивира CS жицу повезану са тренутно активном периферијом, а затим активира жицу повезану са периферијом са којом жели да комуницира следеће.
|
|
|
|
|
|
SPI је *пун дуплекс*, што значи да контролер може истовремено слати и примати податке од исте периферије користећи COPI и CIPO жице. SPI користи сигнал сата на SCLK жици да би уређаји били синхронизовани, тако да за разлику од слања директно преко UART-а не треба старт и стоп битове.
|
|
|
|
|
|
Не постоје дефинисана ограничења брзине за SPI, са имплементацијама које често могу преносити више мегабајта података у секунди.
|
|
|
|
|
|
IoT развојни комплети често подржавају SPI преко неких GPIO пинова. На пример, на Raspberry Pi можете користити GPIO пинове 19, 21, 23, 24 и 26 за SPI.
|
|
|
|
|
|
### Бежично
|
|
|
|
|
|
Неки сензори могу комуницирати преко стандардних бежичних протокола, као што су Bluetooth (углавном Bluetooth Low Energy, или BLE), LoRaWAN (протокол за **Lo**ng **Ra**nge ниске потрошње енергије), или WiFi. Ово омогућава удаљеним сензорима који нису физички повезани са IoT уређајем.
|
|
|
|
|
|
Један такав пример су комерцијални сензори за влагу у земљишту. Они ће мерити влагу у земљишту на пољу, а затим слати податке преко LoRaWAN-а до хаб уређаја, који ће обрађивати податке или их слати преко интернета. Ово омогућава сензору да буде удаљен од IoT уређаја који управља подацима, смањујући потрошњу енергије и потребу за великим WiFi мрежама или дугим кабловима.
|
|
|
|
|
|
BLE је популаран за напредне сензоре као што су фитнес трацкери који раде на зглобу. Они комбинују више сензора и шаљу податке сензора IoT уређају у облику вашег телефона преко BLE.
|
|
|
|
|
|
✅ Да ли имате неке Bluetooth сензоре код себе, у кући или у школи? Ово могу укључивати сензоре температуре, сензоре присуства, трагаче за уређаје и фитнес уређаје.
|
|
|
|
|
|
Један популаран начин за комерцијалне уређаје да се повежу је Zigbee. Zigbee користи WiFi за формирање мрежа између уређаја, где се сваки уређај повезује са што више уређаја у близини, формирајући велики број веза попут паукове мреже. Када један уређај жели да пошаље поруку на интернет, може је послати најближим уређајима, који је затим прослеђују другим уређајима у близини и тако даље, док не стигне до координатора и може бити послата на интернет.
|
|
|
|
|
|
> 🐝 Назив Zigbee се односи на плес зујања медоносних пчела након њиховог повратка у кошницу.
|
|
|
|
|
|
## Мерење нивоа влаге у земљишту
|
|
|
|
|
|
Можете мерити ниво влаге у земљишту користећи сензор за влагу у земљишту, IoT уређај и кућну биљку или оближњи део земљишта.
|
|
|
|
|
|
### Задатак - мерење влаге у земљишту
|
|
|
|
|
|
Прођите кроз одговарајући водич за мерење влаге у земљишту користећи свој IoT уређај:
|
|
|
|
|
|
* [Arduino - Wio Terminal](wio-terminal-soil-moisture.md)
|
|
|
* [Рачунар на једној плочи - Raspberry Pi](pi-soil-moisture.md)
|
|
|
* [Рачунар на једној плочи - Виртуелни уређај](virtual-device-soil-moisture.md)
|
|
|
|
|
|
## Калибрација сензора
|
|
|
|
|
|
Сензори се ослањају на мерење електричних својстава као што су отпорност или капацитивност.
|
|
|
|
|
|
> 🎓 Отпорност, мерена у омима (Ω), је колико је велика опозиција електричном струјном току кроз нешто. Када се напон примени на материјал, количина струје која пролази кроз њега зависи од отпорности материјала. Можете прочитати више на [страници о електричној отпорности на Википедији](https://wikipedia.org/wiki/Electrical_resistance_and_conductance).
|
|
|
|
|
|
> 🎓 Капацитивност, мерена у фарадима (F), је способност компоненте или кола да сакупља и складишти електричну енергију. Можете прочитати више о капацитивности на [страници о капацитивности на Википедији](https://wikipedia.org/wiki/Capacitance).
|
|
|
|
|
|
Ова мерења нису увек корисна - замислите сензор температуре који вам даје мерење од 22.5KΩ! Уместо тога, измерена вредност мора бити конвертована у корисну јединицу калибрацијом - то јест, усклађивањем измерених вредности са количином која се мери како би се омогућило да нова мерења буду конвертована у исправну јединицу.
|
|
|
|
|
|
Неки сензори долазе претходно калибрисани. На пример, сензор температуре који сте користили у претходном часу је већ био калибрисан тако да може враћати мерење температуре у °C. У фабрици би први сензор који је направљен био изложен низу познатих температура и измерена отпорност. Ово би се затим користило за израду прорачуна који може конвертовати из измерене вредности у Ω (јединица отпорности) у °C.
|
|
|
|
|
|
> 💁 Формула за израчунавање отпорности из температуре се зове [Steinhart–Hart једначина](https://wikipedia.org/wiki/Steinhart–Hart_equation).
|
|
|
|
|
|
### Калибрација сензора за влагу у земљишту
|
|
|
|
|
|
Влага у земљишту се мери користећи гравиметријски или волуметријски садржај воде.
|
|
|
|
|
|
* Гравиметријски је тежина воде у јединици тежине земљишта, мерена као број килограма воде по килограму сувог земљишта
|
|
|
* Волуметријски је запремина воде у јединици запремине земљишта, мерена као број кубних метара воде по кубним метрима сувог земљишта
|
|
|
|
|
|
> 🇺🇸 За Американце, због конзистенције јединица, ово се може мерити у фунтама уместо килограма или кубним стопама уместо кубним метрима.
|
|
|
|
|
|
Сензори за влагу у земљишту мере електричну отпорност или капацитивност - ово не само да варира у зависности од влаге у земљишту, већ и од типа земљишта јер компоненте у земљишту могу променити његове електричне карактеристике. Идеално би било да сензори буду калибрисани - то јест, узимање очитавања са сензора и поређење са мерењима добијеним научним приступом. На пример, лабораторија може израчунати гравиметријску влагу у земљишту користећи узорке одређеног поља узете неколико пута годишње, и ови бројеви се могу користити за калибрацију сензора, усклађујући очитавање сензора са гравиметријском влагом у земљишту.
|
|
|
|
|
|

|
|
|
|
|
|
Графикон изнад показује како калибрисати сензор. Напон се снима за узорак земљишта који се затим мери у лабораторији поређењем влажне тежине са сувом тежином (мерењем тежине влажног, затим сушењем у пећници и мерењем сувог). Када се узме неколико очитавања, ово се може приказати на графикону и линија се може прилагодити тачкама. Ова линија се затим може користити за конвертовање очитавања сензора за влагу у земљишту узетих IoT уређајем у стварна мерења влаге у земљишту.
|
|
|
|
|
|
💁 За резистивне сензоре влаге у земљишту, напон се повећава како се влага у земљишту повећава. За капацитивне сензоре влаге у земљишту, напон се смањује како се влага у земљишту повећава, тако да би графикони за ове сензоре били нагнути надоле, а не нагоре.
|
|
|
|
|
|

|
|
|
|
|
|
Графикон изнад показује очитавање напона са сензора влаге у земљишту, и праћењем тога до линије на графикону, стварна влага у земљишту може се израчунати.
|
|
|
|
|
|
Овај приступ значи да фармер треба само да добије неколико лабораторијских мерења за поље, а затим може користити IoT уређаје за мерење влаге у земљишту - драстично убрзавајући време потребно за мерење.
|
|
|
|
|
|
---
|
|
|
|
|
|
## 🚀 Изазов
|
|
|
|
|
|
Резистивни и капацитивни сензори влаге у земљишту имају бројне разлике. Које су те разлике, и који тип (ако постоји) је најбољи за фармера да користи? Да ли се овај одговор мења између земаља у развоју и развијених земаља?
|
|
|
|
|
|
## Квиз након предавања
|
|
|
|
|
|
[Квиз након предавања](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/12)
|
|
|
|
|
|
## Преглед и самостално учење
|
|
|
|
|
|
Прочитајте о хардверу и протоколима које користе сензори и актуатори:
|
|
|
|
|
|
* [GPIO страница на Википедији](https://wikipedia.org/wiki/General-purpose_input/output)
|
|
|
* [UART страница на Википедији](https://wikipedia.org/wiki/Universal_asynchronous_receiver-transmitter)
|
|
|
* [SPI страница на Википедији](https://wikipedia.org/wiki/Serial_Peripheral_Interface)
|
|
|
* [I<sup>2</sup>C страница на Википедији](https://wikipedia.org/wiki/I²C)
|
|
|
* [Zigbee страница на Википедији](https://wikipedia.org/wiki/Zigbee)
|
|
|
|
|
|
## Задатак
|
|
|
|
|
|
[Калибришите свој сензор](assignment.md)
|
|
|
|
|
|
---
|
|
|
|
|
|
**Одрицање од одговорности**:
|
|
|
Овај документ је преведен коришћењем услуге за превођење помоћу вештачке интелигенције [Co-op Translator](https://github.com/Azure/co-op-translator). Иако се трудимо да обезбедимо тачност, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на његовом изворном језику треба сматрати ауторитативним извором. За критичне информације препоручује се професионални превод од стране људи. Не преузимамо одговорност за било каква погрешна тумачења или неспоразуме који могу настати услед коришћења овог превода. |