Sadržaj:

Senzor nivoa sakupljača vode na baterije: 7 koraka (sa slikama)
Senzor nivoa sakupljača vode na baterije: 7 koraka (sa slikama)

Video: Senzor nivoa sakupljača vode na baterije: 7 koraka (sa slikama)

Video: Senzor nivoa sakupljača vode na baterije: 7 koraka (sa slikama)
Video: НЕ ВЗДУМАЙ снимать аккумулятор с машины. Делай это ПРАВИЛЬНО ! 2024, Novembar
Anonim
Senzor nivoa kolektora vode na baterije
Senzor nivoa kolektora vode na baterije
Senzor nivoa kolektora vode na baterije
Senzor nivoa kolektora vode na baterije

Naša kuća ima rezervoar za vodu koji se napaja kišom koja pada na krov, a koristi se za toalet, mašinu za pranje rublja i zalijevanje biljaka u vrtu. Posljednje tri godine ljeta su bila jako sušna, pa smo pazili na nivo vode u rezervoaru. Do sada smo koristili drveni štap koji smo stavili u spremnik i označili nivo. Ali svakako mora biti moguće poboljšati ovo!

Ovdje dolazi ovaj projekt. Ideja je da se na vrh spremnika pričvrsti ultrazvučni senzor udaljenosti. Ovaj senzor radi kao sonar koji emitira zvučne valove, koji se zatim reflektiraju na površini vode. Od vremena potrebnog za povratak valova i brzine zvuka, možete izračunati udaljenost do vodene površine i odrediti koliko je rezervoar pun.

Budući da nemam mrežni priključak u blizini spremnika, bitno je da cijeli uređaj radi na baterije. To znači da sam morao biti svjestan potrošnje energije svih dijelova. Za slanje podataka odlučio sam koristiti ugrađeni Wifi mikročipa ESP8266. Iako je Wifi prilično gladan energije, on ima prednost u odnosu na drugu vrstu radio veze: možete se izravno povezati s bežičnim usmjerivačem vašeg doma bez potrebe za izgradnjom drugog uređaja koji djeluje kao relej.

Radi uštede energije, ESP8266 ću većinu vremena uspavati i mjeriti svaki sat. Za moju svrhu praćenja vodostaja ovo je više nego dovoljno. Podaci će se poslati u ThingSpeak, a zatim se mogu pročitati na pametnom telefonu putem aplikacije.

Još jedan detalj! Brzina zvuka, bitna za mjerenje udaljenosti, ovisi o temperaturi i u manjoj mjeri o vlažnosti. Za precizno vanjsko mjerenje tokom sezona ubacit ćemo senzor BME280 koji mjeri temperaturu, vlažnost i pritisak. Kao bonus, ovaj senzor nivoa vode čini i mini meteorološku stanicu.

Dijelovi:

  • 1x ESP8266 ESP-12F.
  • 1x adapterska ploča ESP-12F.
  • 1x FT232RL FTDI: USB na serijski adapter.
  • 1x HC-SR04-P: ultrazvučni modul za mjerenje udaljenosti. Imajte na umu da je P važan, jer je ovo verzija koja ima niski minimalni radni napon od 3V.
  • 1x BME280 3.3V verzija: senzor temperature, pritiska i vlažnosti.
  • 1x IRL2203N: n-kanalni MOSFET tranzistor.
  • 1x MCP1700-3302E 3.3V verzija: regulator napona.
  • 3x punjiva AA baterija, npr. 2600mAh.
  • 1x držač za 3 baterije.
  • 1x matična ploča.
  • Otpornici: 1x 470K, 1x 100K, 4x 10K.
  • Kondenzatori: 2x keramički 1uF.
  • 3x prekidač.
  • Žice u obliku slova U u obliku slova U.
  • Žice za kratkospojnike.
  • Plastična posuda za supu 1l.
  • Prsten za pričvršćivanje kontejnera.

Učinio sam kod dostupnim na GitHubu.

Korak 1: Upoznajte ultrazvučni senzor udaljenosti

Upoznajte ultrazvučni senzor udaljenosti
Upoznajte ultrazvučni senzor udaljenosti
Upoznajte ultrazvučni senzor udaljenosti
Upoznajte ultrazvučni senzor udaljenosti

Izmjerit ćemo udaljenost do vodene površine ultrazvučnim senzorom, HC-SR04-P. Kao i šišmiš, ovaj senzor koristi sonar: šalje zvučni impuls s frekvencijom previsokom za ljudsko uho, dakle ultrazvučni, i čeka da udari u objekt, odbije se i vrati. Zatim se udaljenost može izračunati iz vremena potrebnog za primanje odjeka i brzine zvuka.

Konkretno, ako je okidač okrenut visoko za najmanje 10 μs, senzor šalje niz od 8 impulsa s frekvencijom od 40 Hz. Odgovor se tada dobiva na Echo pinu u obliku impulsa s trajanjem jednakim vremenu između slanja i prijema ultrazvučnog impulsa. Zatim moramo podijeliti s 2, budući da ultrazvučni impuls ide naprijed-nazad i potrebno nam je vrijeme putovanja u jednom smjeru, te pomnoženo sa brzinom zvuka, koja je oko 340 m/s.

Ali čekaj malo! Zapravo, brzina zvuka ovisi o temperaturi i u manjoj mjeri o vlažnosti. Gadim li se ili je to važno? Pomoću proračunskog alata otkrivamo da bismo zimi (uzimajući -5 ° C) mogli imati 328,5 m/s, a ljeti (uzimajući 25 ° C) 347,1 m/s. Pretpostavimo da ćemo pronaći jednosmjerno vrijeme putovanja od 3 ms. Zimi bi to značilo 98,55 cm, a ljeti 104,13 cm. To je velika razlika! Tako da za postizanje dovoljne tačnosti tokom godišnjih doba, pa čak i danju i noću, moramo dodati termometar u našu postavku. Odlučio sam uključiti BME280, koji mjeri temperaturu, vlažnost i tlak. U kodu koji sam koristio u funkciji speedOfSound formulu koja izračunava brzinu zvuka u smislu sva tri parametra, iako je temperatura zaista najvažniji faktor. Vlaga i dalje ima manji utjecaj, ali utjecaj pritiska je zanemariv. Mogli bismo koristiti jednostavniju formulu uzimajući u obzir samo temperaturu koju sam implementirao u speedOfSoundSimple.

Postoji još jedna važna tačka na HC-SR04. Dostupne su dvije verzije: standardna verzija radi na 5V, dok HC-SR04-P može raditi na rasponu napona od 3V do 5V. Budući da 3 punjive AA baterije pružaju oko 3x1.25V = 3.75V, važno je nabaviti P-verziju. Neki prodavači mogu poslati pogrešnog. Pa pogledajte slike ako ih kupite. Dvije verzije izgledaju drugačije i straga i sprijeda, kako je objašnjeno na ovoj stranici. Na stražnjoj strani P-verzije sva su tri čipa vodoravna, dok je u standardnoj verziji jedan okomit. Sprijeda standardna verzija ima dodatnu srebrnu komponentu.

U elektroničkom krugu koristit ćemo tranzistor kao prekidač za isključivanje napajanja ultrazvučnog senzora kada naša postavka pređe u duboki san radi uštede baterije. Inače bi i dalje trošio oko 2mA. BME280 s druge strane troši samo oko 5 μ kada je neaktivan, pa ga nije potrebno isključiti s tranzistorom.

Korak 2: Izbor ploče ESP8266

Izbor ploče ESP8266
Izbor ploče ESP8266

Za rad senzora što je dulje moguće na bateriji, moramo uštedjeti na potrošnji energije. Iako Wi-Fi ESP8266 pruža vrlo zgodan način za povezivanje našeg senzora s oblakom, on je također prilično gladan energije. U radu ESP8266 troši oko 80mA. Tako bismo s baterijama od 2600 mAh mogli raditi samo najviše 32 sata prije nego što se isprazne. U praksi će to biti manje jer nećemo moći iskoristiti punih 2600 mAh kapaciteta prije nego što napon padne na preniski nivo.

Srećom, ESP8266 ima i način dubokog sna, u kojem je gotovo sve isključeno. Stoga je plan staviti ESP8266 u duboki san većinu vremena i buditi ga tako često da bi izvršio mjerenje i poslao podatke putem Wi -Fi -ja na ThingSpeak. Prema ovoj stranici, maksimalno vrijeme dubokog sna bilo je oko 71 minutu, ali se od ESP8266 Arduino jezgre 2.4.1 povećalo na oko 3,5 sata. U šifri sam se smjestio na jedan sat.

Prvo sam isprobao prikladnu razvojnu ploču NodeMCU-a, ali šteta, u dubokom snu je i dalje trošila oko 9 mA, što nam daje najviše 12 dana čistog sna čak i bez obzira na intervale buđenja. Važan krivac je regulator napona AMS1117, koji koristi energiju čak i ako ga pokušate zaobići spajanjem baterije izravno na pin od 3,3 V. Ova stranica objašnjava kako ukloniti regulator napona i USB UART. Međutim, nikada nisam uspio u tome bez uništenja ploče. Štoviše, nakon uklanjanja USB UART -a više se ne možete povezati s ESP8266 da biste shvatili što je pošlo po zlu.

Čini se da većina razvojnih ploča ESP8266 koristi rasipnički regulator napona AMS1117. Izuzetak je WEMOS D1 mini (slika lijevo) koji dolazi s ekonomičnijim ME6211. Zaista, otkrio sam da WEMOS D1 mini koristi oko 150 μA u dubokom snu, što je više poput njega. Većina je vjerojatno posljedica USB UART -a. S ovom pločom morate sami zalemiti zaglavlja za igle.

Međutim, možemo biti mnogo bolji koristeći ploču s golim kostima poput ESP-12F (slika desno), koja nema USB UART ili regulator napona. Napajajući pin 3.3V otkrio sam da duboki san troši samo 22 μA!

No, kako biste ESP-12F radili, pripremite se za lemljenje i malo više gnjavaže oko programiranja! Nadalje, osim ako baterije izravno isporučuju ispravan napon, koji je između 3V i 3.6V, moramo osigurati vlastiti regulator napona. U praksi se ispostavlja da je teško pronaći baterijski sistem koji osigurava napon u ovom rasponu tijekom cijelog ciklusa pražnjenja. Upamtite da također moramo napajati HC-SR04-P senzor, koji teoretski može funkcionirati s niskim naponom od 3 V, ali funkcionira preciznije ako je napon veći. Štaviše, na mom dijagramu HC-SR04-P uključuje tranzistor, koji izaziva mali dodatni pad napona. Koristit ćemo regulator napona MCP1700-3302E. Maksimalni ulazni napon je 6V pa ga hranimo s do 4 AA baterije. Odlučio sam koristiti 3 AA baterije.

Korak 3: Kreirajte ThingSpeak kanal

Za pohranu podataka koristit ćemo ThingSpeak, IoT uslugu u oblaku. Idite na https://thingspeak.com/ i kreirajte račun. Nakon što ste prijavljeni, kliknite gumb Novi kanal za kreiranje kanala. U postavkama kanala unesite naziv i opis kako želite. Zatim imenujemo polja kanala i aktiviramo ih klikom na potvrdne okvire s desne strane. Ako koristite moj kôd nepromijenjen, polja su sljedeća:

  • Polje 1: nivo vode (cm)
  • Polje 2: Nivo baterije (V)
  • Polje 3: temperatura (° C)
  • Polje 4: vlažnost (%)
  • Polje 5: pritisak (Pa)

Za buduću upotrebu zapišite ID kanala, API API ključ i API API ključ koji se mogu pronaći u API ključevima menija.

Pomoću aplikacije možete očitati podatke ThingSpeak na svom pametnom telefonu. Na svom android telefonu koristim widget IoT ThingSpeak Monitor. Morate ga konfigurirati s ID -om kanala i API API ključem.

Korak 4: Kako programirati ESP-12F

Kako programirati ESP-12F
Kako programirati ESP-12F
Kako programirati ESP-12F
Kako programirati ESP-12F

Potrebna nam je ploča bez kostiju kako bismo uštedjeli na trajanju baterije, ali mana je to što ju je malo teže programirati od razvojne ploče s ugrađenim USB UART-om.

Koristit ćemo Arduino IDE. Postoje i drugi instruktori koji objašnjavaju kako se koristi, pa ću ovdje biti kratak. Koraci za njegovu pripremu za ESP8266 su:

  • Preuzmite Arduino IDE.
  • Instalirajte podršku za ploču ESP8266. U izborniku Datoteka - Postavke - Postavke dodajte URL https://arduino.esp8266.com/stable/package_esp8266com_index.json u dodatne URL -ove upravitelja odbora. Sljedeće u izborniku Alati - Ploča - Upravitelj ploča instalirajte esp8266 zajednice esp8266.
  • Odaberite kao ploču: Generički modul ESP8266.

Za rukovanje ESP-12F koristio sam adaptersku ploču, uobičajeno dostupnu u internetskim trgovinama. Lemio sam čip na ploču, a zatim lemio zaglavlja na ploču. Tek tada sam otkrio da je adapterska ploča preširoka za standardnu ploču! Ne ostavlja slobodne igle sa strane za uspostavljanje veze.

Rješenje za koje sam se odlučio je koristiti žice u obliku slova U i spojiti ih kao na slici desno prije nego što postavite ESP8266 s adapterskom pločom na matičnu ploču. Tako su GND i VCC spojeni na tračnice matične ploče, a preostali pinovi dostupni su dalje niz matičnu ploču. Nedostatak je to što će vaša matična ploča biti pretrpana žicama nakon što završite cijeli krug. Drugo rješenje je spojiti dvije ploče kao što je prikazano u ovom videu.

Zatim, za programiranje ESP-12F preko USB priključka vašeg računara potreban nam je USB-serijski adapter. Koristio sam FT232RL FTDI programator. Programer ima kratkospojnik za odabir između 3.3V ili 5V. Trebalo bi ga postaviti na 3.3V za ESP8266. Ne zaboravite to jer bi 5V moglo ispržiti vaš čip! Instalacija upravljačkih programa trebala bi biti automatska, ali ako programiranje ne funkcionira, možete ih pokušati ručno instalirati s ove stranice.

ESP8266 ima način programiranja za učitavanje novog firmvera na blic i režim blica za pokretanje trenutnog firmvera sa fleš memorije. Za odabir između ovih načina rada neki pinovi moraju uzeti određenu vrijednost prilikom pokretanja:

  • Programiranje: GPIO0: nisko, CH-PD: visoko, GPIO2: visoko, GPIO15: nisko
  • Blic: GPIO0: visok, CH-PD: visok, GPIO2: visok, GPIO15: nizak

Adapterska ploča već se brine za podizanje CH-PD i povlačenje GPIO15 s 10K otpornika.

Dakle, u našem elektroničkom krugu još uvijek moramo povući GPIO2. Takođe nudimo prekidač za stavljanje ESP8266 u programiranje ili u režim rada blica i prekidač za njegovo resetovanje, što se postiže povezivanjem RST na masu. Nadalje, priključite TX pin FT232RL na RXD pin ESP8266 i obrnuto.

Redosled programiranja je sledeći:

  • Postavite GPIO2 na nisko zatvaranjem prekidača za programiranje.
  • Resetirajte ESP8266 zatvaranjem i ponovnim otvaranjem prekidača za poništavanje. ESP8266 se sada pokreće u načinu programiranja.
  • Vratite GPIO2 na visoko otvaranjem prekidača za programiranje.
  • Prenesite novi firmver iz Arduino IDE -a.
  • Ponovo postavite ESP8266 zatvaranjem i ponovnim otvaranjem prekidača za poništavanje. ESP8266 se sada pokreće u flash modu i pokreće novi firmver.

Sada možete provjeriti radi li programiranje postavljanjem poznate Blink skice.

Ako sve ovo radi, barem su pinovi GND, VCC, GPIO2, RST, TXD i RXD pravilno lemljeni i povezani. Kakvo olakšanje! Ali prije nego što nastavite, preporučio bih da isprobate i druge pinove s vašim multimetrom. I sam sam imao problem sa jednom iglom. Možete koristiti ovu skicu koja postavlja sve pinove na jednu po jednu na 5 sekundi, a zatim stavlja ESP8266 u duboki san na 20 sekundi. Da biste omogućili da se ESP8266 probudi nakon dubokog sna, morate spojiti RST na GPIO16, koji daje signal za buđenje.

Korak 5: Otpremanje skice

Učinio sam kôd dostupnim na GitHubu, to je samo jedna datoteka: Level-Sensor-Deepsleep.ino. Samo ga preuzmite i otvorite u Arduino IDE -u. Ili možete odabrati Datoteka - Novo i samo kopirati/zalijepiti kôd.

Postoje neki podaci koje morate popuniti na početku datoteke: ime i lozinka WLAN -a za korištenje, statički IP detalji i ID kanala i API API ključ za ThingSpeak kanal.

Slijedeći savjet na ovom blogu, umjesto DHCP -a gdje usmjerivač dinamički dodjeljuje IP, koristimo statički IP, gdje sami postavljamo IP adresu ESP8266. Pokazalo se da je ovo mnogo brže pa štedimo na aktivnom vremenu, a time i na energiji baterije. Zato moramo dati dostupnu statičku IP adresu, kao i IP usmjerivača (gateway), masku podmreže i DNS poslužitelj. Ako niste sigurni šta popuniti, pročitajte o postavljanju statičkog IP -a u priručniku vašeg usmjerivača. Na računaru sa operativnim sistemom Windows povezanim putem Wi-Fi na ruter, pokrenite ljusku (Windows dugme-r, cmd) i unesite ipconfig /all. Većinu potrebnih informacija pronaći ćete u odjeljku Wi-Fi.

Ispitujući kôd vidite da se za razliku od drugog Arduino koda većina radnji događa u funkciji postavljanja umjesto u funkciji petlje. To je zato što ESP8266 prelazi u duboki san nakon što dovrši funkciju postavljanja (osim ako nismo započeli u OTA načinu). Nakon što se probudi, to je kao novi restart i ponovo pokreće postavljanje.

Evo istaknutih karakteristika koda:

  • Nakon buđenja kod postavlja switchPin (zadani GPIO15) na visoki. Ovim se uključuje tranzistor, koji zatim uključuje senzor HC-SR04-P. Prije dubokog sna postavlja pin nazad na nisko, isključujući tranzistor i HC-SR04-P, pazeći da ne troši dragocjenu bateriju.
  • Ako je modePIN (zadani GPIO14) nizak, kôd prelazi u OTA način rada umjesto u način mjerenja. Uz OTA (bežično ažuriranje) možemo ažurirati firmver putem Wi-Fi-ja umjesto serijskog porta. U našem slučaju to je prilično zgodno jer više ne moramo povezivati serijski na USB adapter za daljnja ažuriranja. Samo postavite GPIO14 na nisko (s OTA prekidačem u elektroničkom krugu), resetirajte ESP8266 (s prekidačem za resetiranje) i on bi trebao postati dostupan u Arduino IDE -u za učitavanje.
  • Na analognom PIN -u (A0) mjerimo napon baterije. To nam omogućuje da isključimo naš uređaj, poznat i kao trajni duboki san, ako napon padne prenisko, ispod minVoltacije, kako bismo zaštitili baterije od prekomjernog pražnjenja. Analogno mjerenje nije baš precizno, radimo numMeasuresBattery (zadano 10) mjere i uzimamo prosjek za poboljšanje tačnosti.
  • Mjerenje udaljenosti senzora HC-SR04-P vrši se u funkciji DistanceMeasurement. Za poboljšanje tačnosti mjerenje se ponavlja numMeasuresDistance (zadano 3) puta.
  • Postoji funkcija za izračunavanje brzine zvuka iz mjerenja temperature, vlažnosti i tlaka pomoću senzora BME280. Zadana I2C adresa BME280 je 0x76, ali ako ne radi, možda ćete je morati promijeniti u 0x77: bool bme280Started = bme280.begin (0x77);
  • BME280 koristit ćemo u prisilnom načinu rada, što znači da je potrebno jedno mjerenje i povratak u stanje mirovanja radi uštede energije.
  • Ako postavite kapacitet (l), punu udaljenost (cm) i površinu (m2), kôd izračunava preostalu zapreminu spremnika za vodu iz mjerenja udaljenosti: dvostruki preostali volumen = kapacitet+10,0*(puna udaljenost)*površina; i učitajte ovo na ThingSpeak. Ako zadržite zadane vrijednosti, učitava se udaljenost do vodene površine u cm.

Korak 6: Izgradnja elektroničkog kola

Izgradnja elektroničkog kola
Izgradnja elektroničkog kola

Gore je dijagram elektroničkog kola. Prilično je velik za jednu ploču, posebno s prevelikom pločom adaptera i trikom sa žicama u obliku slova U. U nekom trenutku sam svakako poželio da sam iskoristio alternativu povezivanja dvije ploče, ali na kraju sam uspio.

Evo važnih karakteristika kola:

  • Dva napona igraju ulogu: ulazni napon iz baterije (oko 3,75 V) i 3,3 V koji napaja ESP8266 i BME280. Stavio sam 3,3 V na lijevu šinu razvodne ploče i 3,75 V na desnu. Regulator napona pretvara 3.75V u 3.3V. Slijedeći upute u tehničkom listu, dodao sam 1 μF kondenzatore na ulaz i izlaz regulatora napona kako bih povećao stabilnost.
  • GPIO15 ESP8266 spojen je na vrata tranzistora. To omogućuje ESP8266 da uključi tranzistor, a time i ultrazvučni senzor kada je aktivan, te da ga isključi pri dubokom snu.
  • GPIO14 je spojen na prekidač, OTA prekidač. Zatvaranje prekidača daje signal ESP8266 koji želimo pokrenuti u OTA načinu rada, tj. Nakon što pritisnemo (zatvorimo i otvorimo) prekidač RESET i otpremimo novu skicu bežičnim putem.
  • Pinovi RST i GPIO2 povezani su kao na programskom dijagramu. RST pin je sada povezan i sa GPIO16 kako bi se ESP8266 probudio iz dubokog sna.
  • Igle TRIG i ECHO ultrazvučnog senzora povezane su na GPIO12 i GPIO13, dok su pinovi SCL i SDA BME280 povezani na GPIO5 i GPIO4.
  • Konačno, analogni pin ADC je preko razdjelnika napona spojen na ulazni napon. Ovo omogućava mjerenje ulaznog napona radi provjere napunjenosti baterija. ADC pin može mjeriti napone između 0V i 1V. Za razdjelnik napona odabrali smo otpornike od 100K i 470K. To znači da je napon na ADC pinu dan sa: V_ADC = 100K/(100K+470K) V_in. Uzimajući V_ADC = 1V to znači da možemo mjeriti ulazni napon do V_in = 570/100 V_ADC = 5.7V. Što se tiče potrošnje energije, također dolazi do curenja neke struje kroz razdjelnik napona. S V_in = 3.75V iz baterija nalazimo I_leak = 3.75V/570K = 6.6 μA.

Čak i kada krug radi od baterija, moguće je spojiti USB na serijski adapter. Samo isključite VCC adaptera i spojite GND, RX i TX kao na shemi programiranja. To omogućuje otvaranje Serijskog monitora u Arduino IDE -u radi čitanja poruka otklanjanja grešaka i provjere radi li sve kako se očekuje.

Za kompletno kolo izmjerio sam potrošnju struje od 50 μA u dubokom snu pri radu iz baterija. Ovo uključuje ESP8266, BME280, ultrazvučni senzor (isključen od tranzistora) i curenje kroz razdjelnik napona i možda druga curenja. Dakle, to nije tako loše!

Otkrio sam da ukupno aktivno vrijeme iznosi oko 7 sekundi, od čega 4,25 sekundi za povezivanje na Wifi i 1,25 sekundi za slanje podataka na ThingSpeak. Tako sam s aktivnom strujom od 80 mA našao 160 μAh na sat za aktivno vrijeme. Dodajući 50 μAh na sat za stanje dubokog sna imamo ukupno 210 μAh na sat. To znači da baterije od 2600 mAh teoretski traju 12400 sati = 515 dana. Ovo je apsolutni maksimum ako bismo mogli iskoristiti pun kapacitet baterija (što nije slučaj) i nema curenja koje nisam pronašao sa svojim trenutnim mjerenjima. Tako da tek trebam vidjeti da li se ovo zaista uspjelo.

Korak 7: Završni rad senzora

Dovršavanje senzora
Dovršavanje senzora
Dovršavanje senzora
Dovršavanje senzora
Dovršavanje senzora
Dovršavanje senzora

Senzor sam stavio u plastičnu posudu od 1 litre, koja je nekada sadržavala supu. Na dnu sam napravio dvije rupe koje odgovaraju "očima" senzora HC-SR04-P. Osim rupa, spremnik bi trebao biti vodootporan. Zatim se pričvršćuje na zid spremnika za vodu kružnim prstenom koji se obično koristi za odvodnu cijev za kišnicu.

Uživajte u projektu!

Preporučuje se: