Kako bi biljke mogle rasti, treba zadovoljiti nekoliko uvjeta. One moraju imati ciklus noći i dana, baš kao i ljudi. Biljke brže rastu noću, jer tijekom dana koriste sunčevu svjetlost za fotosintezu. Stoga biljke nastavljaju rasti u mraku. Je li za biljke dobro imati omjer dana i noći od 12 sati ili im produljiti dan morat ćete otkriti sami, jer vam ne možemo dati točne upute za svaku pojedinu biljku kada ima toliko puno različitih vrsta. No možemo vam dati alat s kojim ćete kontrolirati koliko biljkama želite produžiti dan te koliko često ih želite zalijevati.
=================================================================
Za projekt pametnog vrta koristili smo:
VIDI X mikroračunalo mozak je cijele postavke pametnog vrta te kontrolira kada zalijevati biljke, a kada im produžiti dan. Na zaslonu VIDI X mikroračunala: vidimo važne podatke o zraku poput temperature i vlage, no primijetite i temperaturu tla.
BME680 ATMOSFERSKI + SENZOR KVALITETE ZRAKA
Senzor kvalitete zraka javlja nam temperaturu, vlažnost, kvalitetu i pritisak zraka. S obzirom na to da se radi o kućnim biljkama, nismo ga posebno zaštitili od kiše.
https://e-radionica.com/hr/bme680-breakout-made-by-e-radionica.html
EASYC ADAPTER
easyC adapter služi za jednostavno povezivanje senzora koji koriste I2C (i kvadrat c) protokol putem easyC kabela. Neće doći sa zalemljenim muškim ili ženskim headerima koje morate zalemiti želite li adapter povezati sa breadboardom.
https://e-radionica.com/hr/easyc-adapter.html
EASYC KABLIĆ 100 cm
easyC kabel od 100 cm je dosta velika duljina kabela koji možete koristiti za povezivanje I2C senzora s obzirom da je I2C protkol dizajniran za „kraće“ komunikacije. S toga odaberite kraće kablove ukoliko želite kvalitetniju vezu između senzora i mikrokontrolera tj. s kraćim kabelima moguće je postići veće brzine prijenosa podataka.
https://e-radionica.com/hr/easyc-kablic-100cm.html
NTC 10K TEMPERATURNI SENZOR
Senzor temperature tla gurnuli smo duboko u zemlju kako bi dobili što realnija mjerenja. Zaštitili smo ga bužirom kako vlaga ne bi utjecala na njegova očitanja.
https://e-radionica.com/hr/ntc-10k-temperaturni-senzor.html
OTPORNIK 10 Kohm
Otpornik 10 Kohm koristili smo kao djelitelj voltaže uz NTC 10K temperaturni sentor.
https://e-radionica.com/hr/15x-10k-otpornik-pull-up-pull-down.html
FOTOOTPORNIK
Senzor osvjetljenja javiti će nam kada je premalo svjetlosti i programski upaliti led-ice s donje strane kako bi pružio biljkama nešto duži dan.
https://e-radionica.com/hr/foto-otpornik.html
WS2812 LED PRSTEN S 7 LED
RGB LED-ice smo zalijepili vrućim ljepilom s donje strane stupa, a kablove provukli kroz rupu napravljenu ručnom baterijskom bušilicom i svrdlom za drvo. WS2812 adresabilne RGB LED-ice mogu nam dati željenu boju iz RGB spektra boja.
https://e-radionica.com/hr/ws2812-led-prsten-7-ledica.html
SENZOR VLAŽNOSTI TLA
Senzor vlažnosti tla postavili smo malo dalje od biljaka kako im ne bismo oštetili korijenje pri njegovom postavljanju u zemlju.
https://e-radionica.com/hr/senzor-vlaznosti-tla.html
MINI PUMPA ZA VODU
Vodena pumpa će iz spremnika vode uzeti nešto vode i zaliti naše biljke. Cjevčicu spojenu s pumpom vode smo na kraju zatvorili vrućim lijepilom, a duž nje napravili nekoliko rupa kroz koje po malo teče voda.
https://e-radionica.com/hr/mini-pumpa-za-vodu.html
MX1508 H-BRIDGE DRIVER
H BRIDGE driver motora osigurao nam je struju za pokretanje vodene pumpe. Tako 5 V dovodimo direktno s napajanja za eksperimentalnu pločicu. Imate li veću, snažniju pumpu princip spajanja je isti, jedimo vam treba snažniji driver motora, kao i pripadajuće napajanje za njega tj. napajanje koje odgovara vašoj vodenoj pumpi.
https://arduinodiy.wordpress.com/2019/11/02/mx1508-vs-l9110s-vs-l293-motordriver-board
NAPAJANJE ZA EKSPERIMENTALNU PLOČICU MB102
Napajanje za eksperimentalnu pločicu napajamo vanjskim „punjačem“ od 7 do 12 V, a sama komponenta može se lako utaknuti u eksperimentalnu pločicu i tako na svakoj strani eksperimentalne pločice dobiti željenu voltažu, a možemo odabrati između 5 V i 3 V.
https://e-radionica.com/hr/napajanje-za-eksperimentalnu-plocicu-mb102.html
VELIKA EKSPERIMENTALNA PLOČICA
Svaki projekt u fazi prototipiranja treba barem jednu ovakvu eksperimentalnu pločicu. Ukoliko se dogodi da neki senzor ne radi, moguće da je problem u lošoj konekciji na eksperimentalnoj pločici pa pokušajte vodove podebljati još jednom žicom ili ih premjestiti na druge rupe eksperimentalne pločice.
https://e-radionica.com/hr/velika-eksperimentalna-plocica.html
SET RAZNIH KABLIĆA
Kabela svih vrsta i dužina nikada nije dosta te je dobro imati njihovu manju zalihu.
https://e-radionica.com/hr/set-kablica-musko-zenski.html
https://e-radionica.com/hr/set-kablica-za-eksperimentalnu-plocicu.html
https://e-radionica.com/hr/muski-header-40-pinski.html
NAPAJANJE 12V 2A
Ovaj adapter koristili smo za napajanje za eksperimentalnu pločicu koje je 12 V konvertiralo u 5 V i 3 V potrebne za većinu projekata.
https://e-radionica.com/hr/napajanje-12v-2a.html
OTPORNIK 330 ohm
Otpornik od 330 ohm potreban nam je na spoju data pina od RGB adresabilnih LED-ica. Raditi će LED-ice i bez tog otpornika no mi smo ga koristili kako bi osigurali dulji životni vijek LED-ica te je uvijek preporuka smanjiti jakost struje otpornikom na pinovima data komunikacije.
https://e-radionica.com/hr/25x-330ohm-otpornik-za-ledice.html
USB KABEL
USB kabelom napajli smo VIDI X mikroračunalo sa napajanja za eksperimentalnu pločicu.
https://e-radionica.com/hr/micro-usb-kabel-0-6m.html
==================================================================
BME680 senzor
BME680 je atmosferski senzor koji mjeri temperaturu, tlak, vlagu i kvalitetu zraka kao. Uz pomoć tlaka i temperature zraka možete izračunati nadmorsku visinu. Jednostavan je za korištenje budući da komunicira putem IIC odnosno I2C komunikacije. Opremljen je sa dva easyC konektora i omogućuje ultra-jednostavno povezivanje.
Kako bi ga mogli povezati s Vidi X mikroračunalom trebat će vam easyC adapter kako bi na njega mogli zalemiti ženski ili muški header za lakše povezivanje s breadbordom i/ili mikrokontrolerom. Mi smo odabrali muški header kako bi ga lakše postavili na breadboard.
Muški header mogao se zalemiti i direktno na BME680 senzor, no uz korištenje easyC adaptera i pripadajućeg easyC kablića lakše je postaviti senzor na mjesto gdje nam najviše odgovara.
Mi ćemo ga postaviti na drveni stup iznad biljaka, a pored senzora svjetlosti.
Specifikacije BME680 (na slici desnog senzora):
- Napon: 1.71V - 3.6V
- Raspon mjerenja tlaka: 30kPa - 110kPa
- Pogreška u mjerenju tlaka: +-12Pa
- Raspon mjerenja temperature: -40C - 85C
- Pogreška u mjerenju temperature: +-1C
- Raspon mjerenja vlage: 0% - 100%
- Pogreška u mjerenju vlage: +-3%
- Raspon mjerenja IAQ indexa: 0 - 500
- Potrošnja prilikom mjerenja: max. 849uA
- Potrošnja u stanju mirovanja: 0.15uA
easyC adapter koji nam služi za lakše povezivanje I2C senzora iz e-radionice s bredboardom
Kako bi BME680 mogli pravilno koristiti potrebno je znati njegovu I2C (I kvadrat C) adresu.
I2C komunikacijski protokol koristi dvije žice za razmjenu informacija. Jedan se koristi za signal takta ( SCL ), a drugi za slanje i primanje podataka ( SDA ). Što duži kable koristite to će vam signal takta trebati biti sporiji
Na mnogim pločama linija SDA također može biti označena kao SDI, a linija SCL kao SCK.
SDA i SCL vodovi su aktivni kada je njihovo stanje 0 (LOW), pa ih treba spajati putem otpornika. Tipične vrijednosti otpornika za uređaje od 5 V su 4,7 KOhma tj. 2,4 KOhma za uređaje koji koriste 3,3 V. Duljina kabela će utjecati na kvalitetu veze. U ovom projektu uspjeli smo postići I2C vezu bez korištenja otpornika, no stabilniju vezu smo ostvarili uz korištenje pull-up otpornika od 10 KOhm za kabel dužine 1 metar. Pripazite da li je vaš senzor pripremljen za spajanje na 3 V ili na 5 V.
Povezivanje I2C uređaja na ESP32 vrlo je jednostavno. Povezujete GND na GND, SDA na SDA, SCL na SCL i 3,3 V napajanje na 3,3 V, osim kada koristite modul koji koristi 5V napajanje te ga tada povezujete sa 5 V napajanjem.
Pred konfigurirani pinovi za I2C komunikaciju kod ESP32 čipa su GPIO21 i GPIO22, te je tako postavljeno za gotovo sve biblioteke koje ćete pronaći na internetu.
Spomenuti SDA pin kod VIDI X mikrokontrolera je GPIO21, dok je SCL postavljen na GPIO22, no kako je na GPIO21 postavljen DC (data clock) pin LCD-a, a na GPIO22 spojen je CS (chip select) pin za SD karticu potrebno je koristiti neke druge pinove za I2C komunikaciju ukoliko želite koristiti LCD VIDI X-a. Kao zamijenski pinovi, biti će dostatni bilo koji PWM pinovi. Dakle, ukoliko želite koristit ekran, kao što ga koristimo u ovoj radionici te pred konfigurirane pinove je potrebno postaviti na neke druge. Mi smo odabrali GPIO32 i GPIO33 iako smo mogli odabrati bilo koji ulazno izlazni pin sa PWM (Power With Modulation) sposobnostima.
Kako bi komunicirali sa senzorima putem I2C veze potrebno je znati njihovu adresu. Adresu ćete saznati uz pomoć i2c_scan.ino skice koju možete preuzeti sa Vidilabovog GitHub repozitorija https://github.com/VidiLAB-com/Vidi-X/tree/master/Pametni_vrt
U spomenutoj skici definirali smo pinove za I2C komunikaciju naredbama
#define I2C_SDA 33 #define I2C_SCL 32
Sada I2C senzor spajate umjesto gumbiju A i B VIDI X mikroračunala prema priloženoj shemi na pinove GPIO32 i GPIO33. Svakako ne zaboravite spojiti GND pin te pin 3V3 napajanja.
Adresu senzora koju dobijemo na serijsku konzolu treba zapisati kako bi ju mogli koristiti za komunikaciju sa našim BME680 senzorom. Osim adrese senzora trebamo i biblioteku za korištenje BME680 senzora. Mi smo odabrali Adafruitovu biblioteku koju je napisala Ladyada iz tvrtke Adafruit Industries. Iako biblioteku možete preuzeti sa njihovog GitHuba https://github.com/adafruit/Adafruit_BME680, dostupna je i unutar Arduino IDE te ju možete instalirati utipkavanjem BME680 u tražilicu biblioteka nakon čega bi vam se trebala kao prva pokazati Adafruitova biblioteka te ju instalirajte klikom na „Instaliraj sve“ kako bi se instalirali i prethodnici biblioteke za BME680 senzor o kojima je ovisan.
Sada možete promijeniti adresu za komunikaciju sa senzorom u dobivenu. Mi smo dobili 0x76
Promijeniti smo ju i u kodu na 34 liniji koda u
#define BME680_DEFAULT_ADDRESS (0x76) ///< The default I2C address
u datoteci koja se nalazi u mapi biblioteke. U našem slučaju na putanji
C:\Users\User\Documents\Arduino\libraries\Adafruit_BME680_Library\Adafruit_BME680.h
BME680 senzor sada je spreman javljati temperaturu, vlažnost, kvalitetu zraka i tlak zraka. Iz dobivenih vrijednosti možete izračunati nadmorksu visinu, no kako ona ovisi o tlaku u softveru je potrebno definirati izmjereni tlak na nultoj nadmorskoj visini. Taj podatak saznati ćete od najbliže metorološke postaje uz obalu te ga u kod ubacujete varijablom
#define SEALEVELPRESSURE_HPA (1018.25)
No ovaj puta ne u biblioteku, nego u vašu programsku skicu. Na taj način, u skicu, se trebala ubaciti i ranije spomenuta adresa senzora, no kako nam to nije proradilo iz još neutvrđenog razloga, promijenili smo je direktno u biblioteci. Nije rijedak slučaj pri korištenju biblioteka, da morate zaviriti u njih i podesiti određene konfiguracijske parametre, pa smo vam time htjeli skrenuti pozornost na kod same biblioteke iz kojeg često možete mnogo saznati te nije na pretek proučiti ga.
NTC 10K TEMPERATURNI SENZOR
Primjetite kako je između temperatirnog senzora i GND jedan 10 KOhm otpornik
Naš temperaturni senzor je zapravo otpornik koji mijenja vrijednosti u odnosu na temperaturu. Nazivni otpor mu je 10 KOhma. Spojen uz pomoć Pull Down otprnika od također 10 KOhma s GND konekcijom i poznavanjem njegovih minimalnih i maksimalnih vrijednosti – vrlo jednostavno možemo odrediti temperaturu. Kako mu je minimalna temeratura -55 °C, a maksimalan 125 °C u funkciju map uvrstiti ćemo vrijednosti
Ttemp = map(analogRead(analogInPinTempTla), 0, 4095, -55, 125);
Sintaksa joj je
map(value, fromLow, fromHigh, toLow, toHigh)
U našem slučaju from vrijednosti su minimum i maksimum analognih očitanja Vidi X-a, do su to vrijednosti minimum i maksimum temperatura koje senzor može očitati.
Dakle na -55 °C dobili bismo analognu vrijednost 0.
Value je vrijednost koju javlja senzor pa umjesto nje postavljamo funkciju
analogRead(analogInPinTempTla)
Ukoliko je sve postavljeno dobro trebali biste dobiti vrijednost sobne temperature, dakle oko 23 °C ako vam senzor nije baš na suncu ili ne živite u Sibiru.
Približna slika. Iako mu krivulja nije ravna crta smatramo kako je funkcija map dovoljna za prikaz naših temperatura zemlje u sobnim uvjetima.
Senzor bi trebalo softverski kalibrirati barem na nula stupnjeva i na 25 stupnjeva kako biste dobili preciznija očitanja. Ove minimalne vrijednosti možete pokušati očitati klasičnim termometrom u frižideru ili frizeru te ih tako usporediti sa vrijednostima dobiven uz pomoć temperaturnog senzora. Isti postupak ponovite i za veće temperature, no nikako to nemojte učiniti tako da klasični termometar ostavite na suncu pa pokušate usporediti vrijednosti, jer bi klasični termometar mogao doseći maksimum i napuknuti iako temperature nisu pretjerano visoke. To je zbog efekta zagrijavanja stakla termometra koje će se zagrijati na veće temperature. Uglavnom, termometrom se temperature mjere u hladu, a najčešće je zaštićen drvenom kutijom.
Foto otpornik
Foto otpornik je otpornik koji svoj otpor mijenja ovisno o svjetlosti koja pada na njega. Vrlo je jednostavna za korištenje kada treba upaliti svjetlo kada padne mrak.
Uz LM393 pločicu dolazi sa potenciometrom koji se može postaviti na određenu vrijednost kako bi digitalni pin javio HIGH iznad ili LOW ispod zadane vrijednosti.
Mi smo koristili analogna očitanja kako bi preciznije mogli programski pratiti kako se mijenja osvjetljenje.
Definirali smo vrijednost 4000 kao vrijednost kada svjetlosti nema dovoljno te je potrebno upaliti svijetlo. Za vaše potrebe poželjno je korigirati vrijednost varijable Noc u liniji koda
const int Noc = 4000;
Ne biste trebali mučiti biljke na način da LED-ice konstantno rade te da time biljke nemaju noćni ciklus. Tako u priloženi kod pokušajte dodati brojač vremena koji će dan produžiti točno onoliko koliko treba za vašu vrstu biljaka.
Fotootpornik s komparatorom za konverziju u digitalnu vrijednost
PRSTEN SA 7 WS2812 RGB LED dioda
Ukoliko foto otpornik javi da imamo premalo svijetlosti WS2812 adresabilne RGB LED diode će poslužiti kao rasvjetno tijelo. Ovaj prsten sa 7 LE dioda može pokazati bilo koju boju iz RGB spektra koristeći 8 bitne vrijednosti boje za svaku, crvenu, zelenu i plavu boju.
WS2812b je zapravo ime upravljačkog čipa koji upravlja RGB LED-icama, a ugrađen je u kućište svake LED-ice. Dakle WS2812b IC (IC = integrirani krug ili jednostavnije čip) komunicira jednom žicom sa sve tri LED-ice (crvenog, zelenom i plavom) koristeći NZR komunikacijski protokol. Svaki čip tj. svaka pojedina LED-ica ima Data input i Data output pin tako da ih je moguće nizati u proizvoljne nizove. Na ovom prstenu ih je 7 te sam prsten također ima Data input i Data output sa kojim je moguće povezivati prstenove u niz na način da Out pin prethodne LED-ice spojimo na In pin sljedeće ledice. Pri tome treba pripaziti na potrošnju struje kako ne bite preopteretili VIDI X. Najbolje ih je napajati vanjskim izvorom napajanja od 5 V.
U našoj skici pronaći ćete funkcije PaliSvjetlo() i GasiSvjetlo() koje zapravo pale 7 LEDica u boju koja im je definirana u liniji koda
leds[o] = CRGB(155, 0, 155);
Ovdje su vrijednosti 155 postavljene za crvenu i plavu dok zelena LED-ica ostaje ugašena. Tako smo dobili ljubičastu boju. Dok za crnu boju koristimo nulu za sve tri vrijednosti.
Eksperiment: Slobodno se poigrajte i eksperimentirajte na kojoj boji svijetlosti pojedine biljke rastu najbolje. Neki izvori navode kako za rast biljaka nije nužna isključivo bijela svijetlost. No želite li bijelu boju sve tri vrijednosti postavite na isti broj dok će te postavljanjem sve tri vrijednosti na 255 dobiti najsvjetliju bijelu koju ove LED-ice mogu dati. No obratite pažnju na potrošnju struje jer tako one troše najviše struje, pogotovo ako ste odlučili skalirati ovaj projekt na jedan veći plastenik te ukoliko tih LED-ica sada ima puno kako bi mogli rasvijetliti tako velike površine.
Oprez: Ukoliko postavite stvarno puno LED-ica pazite da su spojene kvalitetnim žicama, jer bi se u suprotnome žice mogle pregrijavati uslijed protoka jake struje. Pregrijavanje žica će kao posljedicu otopiti njihovu izolaciju čime bi se mogla uzrokovati daljnja oštećenja uslijed kratkog spoja, a moguće je uzrokovati i samozapaljenje žica.
SENZOR VLAŽNOSTI TLA
Ovaj senzor uz pomoć otpora mjeri vlažnost tla. Dolazi uz ugrađeni LM393 komparator te na izlazima ima digitalni(HIGH/LOW) i analogni(0V-5V) signal. Mi smo koristili analogni pin kako bi mogli pratiti promijene vlažnosti tla kroz vrijeme.
Kada vlažnost tla padne ispod zadane vrijednosti programski uključujemo pumpu za zalijevanje.
Kada senzor nije u zemlji, otpor je maksimalan tj. senzorom ne protječe struje dobiti ćemo vrijednost 0 na analognom pinu. Spojimo li lijevu i desnu vilicu senzora žicama, tj. napravimo li kratki spoj između njih senzor će nam davati maksimalnu analognu vrijednost od 4095.
Dakle sve između biti će vrijednosti mokroga tla ovisno o njenoj vlazi. No kada uronite senzor u čašu vode nećete dobiti maksimalnu vrijednost jer voda nema veliku provodljivost struje. Što je voda slanija vodljivost će biti veća, no nemojte raditi ova eksperiment ukoliko vam je stalo do vašeg senzora jer će ga slana voda brže oštetiti. Kao zaseban eksperiment, neovisan o ovome, možete provjeriti koliki je otpor u destiliranoj vodi, koliki u normalnoj vodi, a koliko kada dodate više ili manje soli u vodu.
Glavna mana ovog senzora je njegov relativno kratak životni vijek zbog konstantne izloženosti vlazi. Uslijed protoka DC struje senzor polako gubi bakreni sloj te na kraju neće više moći provoditi struju, odnosno mjeriti vlažnost tla.
Zadatak: Taj problem možete riješiti priključivanjem napajanja senzora na dodatni pin umjesto na 3V3 kako smo ga mi spojili te tada vrijednosti očitavati samo kada je taj dodatni pin aktivan. Poželjno bi bilo zalijevati biljke u rano jutro ili kasno navečer te biste time znatno produljili vijek trajanja senzora.
No u našem slučaju, zbog jednostavnosti spojili smo ga na 3V3 napajanje i tako konstantno možemo očitavati vlažnost tla.
Kako smo spomenuli, kada je zemlja pre suha, vodenom pumpom zaliti ćemo tlo.
Senzor vlažnosti tla primijetite u centru slike. U procesu kreiranja ove radionice, žičicama smo spojili (kratko spojili) lijevu i desnu stranu za potrebe programiranja koda kako bi sačuvali motor pumpe da ne radi na suho dok ne isprogramiramo adekvatno programsko rješenje.
MINI PUMPA ZA VODU
Svakoj biljci treba vode, a ova malena pumpa, iznimno jednostavna za korištenje, poslužit će nam toj svrsi. Potopili smo je u posudu s vodom. Zalijepili smo je vrućim ljepilom za posudu tj. spremnik vode. U tom postupku lijepljenja naučili smo kako lijepila nikada nije dosta te na njemu ne treba štedjeti jer je vrlo teško zalijepiti pumpu za hladnu staklenu čašu. Možda bismo bolje prošli sa Duplofan ili drugom obostranom ljepljivom trakom.
Cjevčicu smo proveli blizu biljaka gdje želimo da se zalijeva. Sa jedne strane smo je zatvorili, a uzduž smo napravili nekoliko rupica kako bi kroz te rupice vodom zalijevali veću površinu.
Vrlo je bitno biljke zalijevati noću. Prisjetite se da kada pada kiša najčešće nema sunca. Razlog je što se biljke teže brane od jakog sunca kada su im stabljike i lišće puni vode. No kako nismo botaničari ne možemo tvrditi da ovo pravilo vrijedi baš za svaku biljku. Stoga, provjerite koliko vode i u koje vrijeme trebaju vaše vrste biljaka.
Poznato je da kaktusi ne trpe previše vode, pa je za takve situacije potrebno prilagoditi programski kod, ukoliko će vaš pametni vrt uzgajati baš njih.
Spajanje pumpe na napajanje jednostavno je poput spajanja bilo kojeg drugog elektro motora ili žarulje. Potreban joj je napon od 3 V do 6 V. Pripazite na poplavu uslijed kvara senzora ili loše napisanog softvera!
Kako jakost struje potrebnu za pokretanje pumpe, iako strujni napon zadovoljava, nije moguće uzeti direktno sa VIDI X-a potrebno je poslužiti se tranzistorom za paljenje pume uz pomoć vanjskog napajanja.
No kako ne bismo dodatno zakomplicirali shemu spajanja jer nije dovoljno samo spojiti tranzistor nego mu je potrebno dodijeliti i diodu između emitera i uzemljenja koja će spriječiti povrat napona, koristili smo H bridge driver motora.
H-BRIDGE DRIVER
Kako bismo mogli upravljati našom pumpom putem mikro kontrolera iskoristiti će mo H most koji inače koristimo za preusmjeravanje struje u DC motor (a da pritom tom ne oštetimo mikro kontroler koji ne prihvaća struju veće jakosti). Uz pomoć H mosta moguće je DC motore okretati u oba smjera, no mi ćemo na H most spojiti samo jedan pin i time ograničiti protok struje samo u jednom smjeru. Dakle iskoristiti ćemo samo djelić H mosta dok će ostatak ostati neiskorišten u ovom projektu.
Na ovaj korak odlučili smo se radi jednostavnosti i radi promicanja drugačijeg razmišljanja. Ne treba uvijek H most koristiti za ono za što ga se koristi najčešće. On jednostavno može poslužiti kao najobičniji tranzistorski sklop, a s obzirom da je sam H most napravljen od nekoliko tranzistora.
Naša vodena pumpa također je DC motor samo u drugačijem kućištu. Primjera radi, H most mogao bi i upravljati nekom lampom, te ukoliko nemate pri ruci adresabilne RGB LE diode možete IN3 pin H mosta iskoristiti za napajanje neke žaruljice koja radi na istom naponu koji koristimo za pumpu, tj. u našem slučaju radi se o naponu od 5 V.
Kako bi napajali našu pumpu tj H most sa spomenutih 5 V iskoristi ćemo konverter napajanja za eksperimentalnu pločicu.
Dual H bridge odnosno dupli H most za dva DC motora
Za one koje žele znati više ili nemaju H bridge pri ruci treba znati da je umjesto H bridgea moguće pumpu spojiti tranzistorom na napajanje.
Kako je dovoljno pokretati ga u samo jednom smjeru, koristit ćemo 2N2222 NPN tranzistor kao prekidač.
Tranzistor je sposoban isporučiti struju od 600 mA, a kako pumpa troši manje od toga, ovaj tranzistor će biti sasvim dovoljan.
Na internetu smo pronašli mnoštvo slika koje nemaju raspored emitera, baze i kolektora kao na našoj slici te treba imati na umu da postoji P2N2222A tranzistor koji ima drugačiji raspored nožica.
Budite vrlo oprezni s time koju nožicu tranzistora spajate jer ćete krivim spajanjem oštetiti Vidi X mikroračunalo.
Nožica baze tranzistora putem otpornika se spaja s pinom Vidi X-a. Mi smo uzeli otpornik od 220 Ω, iako će i veće vrijednosti biti dobre.
Sada još trebate dodati diodu između emitera i uzemljenja. Mi smo odabrali 1N4007 diodu koja će blokirati povratnu struju koju može stvoriti motor jakosti do jednog ampera (1 A).
Kada na bazu tranzistora primijenite malu struju (s logičkog pina Vidi X-a), tranzistor će propustiti struju od napajanja da bi pokrenuo motor.
Primijenite li modulirani signal (PWM) na bazu tranzistora, on će propuštati struju s baterija u ritmu te modulacije pa će se motor sporije okretati i time će pumpa imati manji protok vode.
PWM je moguće primijeniti, osim na spomenuti tranzistor, i na korišteni Dual H Bridge drivera motora.
NAPAJANJE ZA EKSPERIMENTALNU PLOČICU MB102
Ovo napajanje napajamo vanjskim „punjačem“ od 7 do 12 V, a sama komponenta može se lako utaknuti u eksperimentalnu pločicu i tako na svakoj strani dobiti željenu voltažu. Dakle, ulazna voltaža od 7 do 12 V biti će konvertirana u voltaže od 3,3 V i od 5 V koje su nam potrebne za ovaj projekt. Priloženim jumperima određujemo koji napon želimo na pojedinoj strani eksperimentalne pločice. USB konektor iskoristiti ćemo za napajanje Vidi X-a.
Vrlo pristupačna i korisna komponenta napajanja
SHEMA SPAJANJA
Komponente je potrebno spojiti prema priloženoj shemi. Savjetujemo prvo uploadati kod na VIDI X.
Zatim mikro prekidače postavite u položaj kao na slici.
Sada možete početi spajati senzore, a nakon što spojite sve senzore spajajte aktuatore.
Prvi spojite senzor svjetlosti i to prvo spajanjem GND žice, zatim 5V žice, ali na 3V napon kako bi na Data pinu također dobili 3 V maksimalne vrijednosti.
Multi metrom provjerite koji vod je 3V kako to ne biste krivo spojili. Tek sada data pin senzora spojite na VIDI X. Postupak ponovite za senzor vlage. Uvijek prvo spojite uzemljenje. Ukoliko senzor ne radi nakon što sto ste sve dobro provjerili, moguće je da GND, tj. uzemljenje, nema dobar spoj. Osim toga, spajajući prvo GND manja je šansa za uništiti komponentu pri spajanju +3 V voda, jer dotaknete li slučajno GND te napravite kratki spoj, napon bi trebao proći najkraćim putem pri zatvaranju kruga i vrlo je vjerojatno da će vaš senzor preživjeti. S druge strane, kada uzemljenje nije spojeno i tada pobrkate polaritet napona pri spajanju senzora, gotovo je sigurno da vaš senzor neće preživjeti.
Primijetite da i na ovom senzoru, kao i na prethodnom, na štampanoj pločici piše 5V za napajanje. No, senzor bi spajali na 5V samo ukoliko bi korišteni mikro kontroler podržavao 5V na data pinovima kao što je to slučaj s nekim vrstama Arduino pločica, no naš VIDI X, kao i recimo Raspberry PI, zahtijeva 3 V na data pinovima. Iz tog razloga je jednostavnije senzor napajati s 3 volte nego konvertirati napajanje dako do za logičke pinove prilagoditi napon s 5 V na 3 V, koliko VIDI X dozvoljava na data pinovima.
Senzor kvalitete zraka, BME680, brine se o informacijama poput pritiska, vlažnosti i temperature zraka. Kako bi BME680 mogli pravilno koristiti potrebno je znati njegovu I2C (I kvadrat C) adresu.
Aktuatore, vodenu pumpu i RGB LED-ice kontrolirati ćemo prema informacijama koje nam daju senzori. Ukoliko je premalo svjetlosti, upali svijetlo. Ukoliko je zemlja previše suha, zalijte je.
KOD:
Kod preuzmite s VidiLABovog GitHuba s adrese https://github.com/VidiLAB-com/Vidi-X/tree/master/Pametni_vrt
Kod otvorite u Arduino IDE editoru programskog koda. Ukoliko već nemate konfiguriran Arduino IDE za korištenje sa VIDI X-om, konzultirajte se sa radionicom na linku https://vidi-x.org/radionice/vidi-project-x-91-arduino-ide/
Ili na linku https://vidilab.com/vidi-project-x/4714-vidi-project-x-arduino-ide.
Nakon što ste otvorili kod potrebno je instalirati i potrebne biblioteke.
Kao što smo već spomenuli, biblioteku možete preuzeti sa GitHuba https://github.com/adafruit/Adafruit_BME680, no dostupna je i unutar Arduino IDE razvojnog okruženja te ju možete instalirati utipkavanjem BME680 u tražilicu biblioteka nakon čega bi vam se trebala kao prva pokazati Adafruitova biblioteka te ju instalirajte klikom na „Instaliraj sve“ kako bi se instalirali i prethodnici biblioteke za BME680 senzor o kojima je ovisan.
Osim biblioteke za senzor kvalitete zraka trebati će vam i biblioteka za RGB LED-ice. U tražilicu biblioteka upišite FastLED i intalirajte FastLED v3.4.0 biblioteku autora Daniel Garcia.
Nakon instalacije biblioteka možete uploadati kod na VIDI X.
Nikako ne smijete zaboraviti postaviti switcheve u poziciju za korištenje expansion slota, kao na slici dolje.
U ovaj kod postavili smo varijablu konzola i debug koje ćemo koristiti za pokretanje koda kada želimo neke podatke ispisivati na konzolu ili koristiti dio koda koji smo napisali za otkrivanje grešaka.
Pa tako primejtite IF uvijete
if ( konzola ) { Serial.print("Temperature = "); Serial.print(BME680temp); Serial.println(" *C"); …
Unutar ovakvih uvijete postavljamo kod koji želimo da se pokrene samo onda kada nam treba, a pokrećemo ga pri postavljanju vrijednosti definiranih varijabli
int debug = 0; // Pokreni testni mod int konzola = 1; // Ispisuj na Serial
Iako postoji mnogo načina za debugiranje koda, ovo je doista zgodan način za zadržati kontrolu nad kodom kada je on malo duži i kada smo sigurni da nam neće smetati silni IF uvijeti kojih ponekada zna biti stvarno previše
Skaliranje projekta prema ovoj shemi je vrlo lako izvedivo. Za zalijevanje velike površine trebate jedino snažniju pumpu, a za osvjetljavanje više rasvjete
Rasvjeta je montirana s donje strane stupa, dok je s gornje senzor osvjetljenja, kako bi izbjegli utjecaj RGB ledica na njega
Senzor vlažnosti tla odmaknuli smo od biljke kako joj ne bismo oštetili korijen
Senzor temperature tla obložili smo bužirom kako bi ga zaštitili od vlage te kako vlaga tla ne bi utjecala na promjenu očitanja temperature tla. Sada on izgleda gotovo neprepoznatljivo.
Finalni projekt izgleda ovako: