Izradite svoj DIY frižider - Upgrade: Pametni hladnjak

Izradite svoj DIY frižider - Upgrade: Pametni hladnjak

Peltierov hladnjak nije nov izum. Koncept je već dugo poznat, no nikada se nije probio do mainstream potrošača. Njegove dimenzije i način na koji radi s druge su strane idealni za manje projekte poput našega. Peltierovi hladnjaci pokušavali su se implementirati i za hlađenje procesora, kako direktno tako i putem vodenog hlađenja, no bezuspješno.

Upgrade: Pametni hladnjak

Danas je moderno na klasične stvari dodavati nove tehnologije i učiniti ih pametnima. Pod nove tehnologije mislimo na mala računala koja upravljaju uređajima i komuniciraju s vama.

U1

Iako ta minijaturna računala mogu samostalno upravljati uređajem, ipak je potrebno da ispunjavaju zahtjeve korisnika. Vi ste kupili uređaj, a ne on vas. Kod ovakvih upgradeova koristimo svog favorita, dobro znani Arduino. Kako bi hladnjak mogao ispunjavati vaše želje, komunikaciju ćemo ostvariti između Arduina i pametnog telefona putem Bluetootha. To vam je vjerojatno i poznato jer smo već nekoliko puta radili vrlo slične stvari. Zbog jednostavnosti izrade, aplikaciju za pametni telefon izradit ćemo u MIT App Inventoru dostupnom samo za Android uređaje. Pametni hladnjak treba biti sposoban u svakom trenutku znati i dojaviti koliko se limenki pića nalazi u hladnjaku. Dimenzije su hladnjaka ograničene – stane šest limenki pića zapremnine 0,5 L. S gornje strane hladnjaka nalazit će se šest infracrvenih senzora s komparatorom napona da se ne bismo morali mučiti s obradom signala, a na pločici senzora nalazi se i potenciometar kojim se regulira udaljenost na kojoj će se senzor detektirati predmet. Svaki infracrveni senzor mjerit će prisustvo jedne limenke pića. Senzor temperature zraka pratit će vrijednosti temperature unutar hladnjaka i dojavljivati nam je na mobilnu aplikaciju. Ovisno o odabiru režima rada unutar aplikacije, pametni hladnjak može raditi u ručnom ili automatskom modu. Ručni mod daje korisniku na odabir kada i koliko dugo želi da hladnjak hladi, dok automatski mod pali i gasi hlađenje ovisno o definiranim granicama temperature unutar programskog koda, a u našem slučaju to će iznositi 7 i 20 stupnjeva Celzijevih. Dodatni infracrveni senzor bit će zadužen za provjeravanje položaja vrata. Pri otvorenim vratima hladnjaka palit će se rasvjetno tijelo da bismo imali dobru vidljivost u svako doba dana. Korisnik će svjetlo moći kontrolirati i ručno.

Spajanje:

Releji i infracrveni senzor za vrata spojeni su na analogne pinove samo radi preglednosti na shemi i lakšeg spajanja unutar hladnjaka. Analogni pinovi također mogu bez problema raditi kao digitalni, ali obratno ne ide.

Senzori:

Infracrveni senzori na pločici imaju ugrađen komparator napona pomoću kojega se analogni signal pretvara u digitalni radi lakše obrade. Uz pomoć potenciometra regulira se udaljenost na kojoj će senzor detektirati predmet. Na taj način dobivamo nešto složeniji senzor, ali pošteđeni smo pisanja programskog koda za obradu analognog signala, što uključuje i umjeravanje (baždarenje) senzora.

U2

Programski kod:

Kod korištenja složenijih senzora potrebno je učitati njihove biblioteke (eng. library). Biblioteke nam olakšavaju rad s njima i sadrže već gotove naredbe koje pozivamo u svojem programu. BMP180 je primjer takvog senzora.
Varijable tipa double naziva „tlakZraka“ i „tempZraka“ predstavljat će vrijednosti temperature i tlaka zraka očitane sa senzora BMP180. Varijabla broj, tipa int, predstavlja trenutni broj limenki koje se nalaze unutar hladnjaka, dok varijabla rucno, također tipa int, poprima vrijednost 1 ili 0 i predstavlja režim rada u kojemu radi hladnjak, ručnom ili automatskom.

Infracrvenim senzorima spojenim na digitalne pinove od 2-7 definiramo imena u rasponu od IR1-IR6 radi lakšeg snalaženja unutar koda (naravno, nismo bili obvezani to napraviti). Izlazu A0 namijenjenom za relej koji će uključivati i isključivati svjetlo definiramo ime Svjetlo, releju za uključivanje/isključivanje hladnjaka spojenom na A1 definiramo ime Hladnjak. I, naravno, sedmi infracrveni senzor spojen na A2 služi za prepoznavanje položaja vrata, odnosno jesu li otvorena ili zatvorena te mu dodjeljujemo ime Vrata.

Void setup; definiramo infracrvene senzore kao ulazne, a releje kao izlazne. Naredbom tlak.begin pokrećemo BMP senzor.

Void loop; Pokrećemo serijsku komunikaciju. Case petlja nam je ostala još od projekta pametne kuće i nećemo je mijenjati jer je princip isti. Kako imamo samo četiri mogućnosti, možemo napisati četiri if naredbe umjesto case. Bluetooth komunicira preko ASCII koda, stoga se u case petlji za ispitivanje uvjeta koriste brojevi ili slova zapisana u ASCII vrijednosti. Broj 2 u dekadskom sustavu broj je 50 zapisan po ASCII-ju. Ako slučajno ne znate vrijednosti napamet, možete na internetu potražiti ASCII tablicu i lako iščitati za određeni znak, slovo ili broj. U case petlji ispituju se brojevi koje Bluetooth modul zaprimi nakon uparivanja s mobilnim uređajem.
Zaprimljeni brojevi 3 i 4 određuju režim rada, hoće li biti ručni ili automatski. Broj 1 i 2 određuju paljenje i gašenje svjetla, odnosno hladnjaka. Naravno, upravljati svjetlom i hladnjakom možete u svakom trenutku, neovisno o režimu rada.

Void loop je petlja koja se pokreće ponovno nakon svakog prolaska sve dok Arduino radi. Pri svakom prolasku postavljamo broj limenki na 0, nakon čega se ispituje svaki senzor posebno. Kako neki od senzora očita postojanje limenke na odgovarajućem mjestu, tako se ukupni broj limenki povećava za 1, inače se ne mijenja. Na taj način broj limenki može biti u rasponu od 0 do 6. Budući da se svaki puta prije početka računanja broja limenki broj postavlja na 0, neće biti problema s prethodnom vrijednošću. Nakon izračunate vrijednosti limenki, tu vrijednosti ispisujemo da bismo je mogli očitati unutar mobilne aplikacije.
Ispitivanjem vrijednosti senzora vrata određujemo paljenje svjetla unutar hladnjaka. Ako su vrata otvorena, svjetlo će se upaliti i ispisat će se poruka unutar aplikacije „Vrata otvorena“. U slučaju da su vrata zatvorena, svjetlo će biti ugašeno i poruka će glasiti „Vrata zatvorena“.

ocitajTlak i ocitajTemperaturu naredbe su za dohvaćanje vrijednosti temperature i tlaka zraka iz BMP senzora. Očitane vrijednosti pridjeljujemo varijablama tlakZraka i tempZraka te ih ispisujemo u mobilnoj aplikaciji s njihovim mjernim jedinicama. Vrijednosti su zapisane na dvije decimale.

Ako je temperatura zraka unutar hladnjaka viša od 18 Celzijevih stupnjeva i ispunjen je uvjet automatskog načina rada (rucno = 0), uključit će se relej za hladnjak. U slučaju da temperatura zraka padne ispod 12 Celzijevih stupnjeva, relej za hladnjak će se isključiti. Na taj način nastaje područje rada hladnjaka u automatskom načinu da bi se temperatura održavala u rasponu od 12 do 18 Celzijevih stupnjeva. Hladnjak nije velike snage i samim time neće moći spustiti temperaturu ispod 12 stupnjeva ako ima šest ili više limenki pića. Taj temperaturni raspon optimalna je temperatura pića za konzumaciju. Oba uvjeta će funkcionirati samo ako je odabran automatski način rada!

Vremenska odgoda od 300 ms, tj. 0,3 sekunde osigurat će stabilnost našeg programa.

Kako bismo odvojili pojedine poruke, koristili smo zarez. Iako nam on možda pri ispisu na serial monitoru ne znači ništa, mobilnoj aplikaciji znači simbol pri kojemu će se poruke razlomiti. Zarez prije prve poruke znači da će se prva poruka brojati kao druga jer se ispred nje nalazi praznina. Shodno tome, zarez nakon zadnje poruke stvara prazninu koja će zauzeti zadnje mjesto. To znači: ako šaljemo četiri poruke, uz praznine na prvom i zadnjem mjesto imat ćemo ukupno šest poruka. Zašto dodajemo praznine na početku i na kraju? Praznine služe za stabilizaciju slanja poruka. Program nije idealan i zna se dogoditi miješanje podataka i da aplikacija više ne zna u koji label treba napisati koju poruku.

U funkcijama za računanje tlaka i temperature zraka dohvaćamo izmjerene vrijednosti iz senzora da bismo ih kasnije mogli pozvati i vrijednost dodijeliti varijablama za tlak i temperaturu zraka. Library nam uvelike olakšava posao.

Prije prenošenja koda na Arduino pločicu nužno je odspojiti RX i TX pinove na koje je spojen Bluetooth modul u normalnom načinu rada. U suprotnom će Arduinov program javiti grešku prilikom prenošenja!

Kod potražite na poveznici.

Mobilna aplikacija:

Izradu mobilne aplikacije detaljno smo opisali pri izradi Pametne kuće, ali za svaki slučaj ćemo ponoviti.

Program korišten za izradu aplikacije je MIT App Inventor, a možete ga pronaći na sljedećoj stranici: http://ai2.appinventor.mit.edu/. Sastoji se od dvaju dijelova: vizualnog editora zvanog Designer i programskog koda u obliku blokovske sheme zvanog Blocks.
Prvo je potrebno vizualno organizirati izgled aplikacije, dodati tipke i Labele, a zatim napisati kod jer ćete morati odabirati točno određeni gumb i Label.

Prvim spajanjem potrebno je pametni telefon upariti s BT modulom, za što će biti potrebna šifra. HC-05 modul nosi tvorničku šifru 1234, a poslije ćemo pokazati kako je možete promijeniti.

Pri komunikaciji putem Bluetootha potrebno je svaki puta aplikaciju spojiti s uređajem, tj. Bluetooth modulom. Zbog toga ćemo dodati izbornik naziva Odaberi uređaj, čijim ćemo otvaranjem dobiti popis dostupnih Bluetooth uređaja. Nakon uspješnog spajanja, umjesto naziva izbornika pojavit će se ime Bluetooth modula, koje se može mijenjati po želji jer je tvorničko ime modula njegova mac adresa.

Program ima neke integrirane funkcije koje su nevidljive, pa ih je potrebno odabrati kod Designer screena, a to su Clock1, TinyDB1, itd. U Clock1 je potrebno staviti TimeInterval, koji će osvježavati aplikaciju. Najviše se osjeti na Labelima, gdje će se ispisivati vrijednosti senzora koje Arduino šalje. Vrlo je bitno pogoditi taj interval osvježavanja s vremenskom odgodom Arduino koda kako bi se osvježavalo u intervalima kako Arduino šalje podatke. 250-300 ms je pristojna vrijednost.

U3

Na slici je prikazan dio blokovskog koda u Clock1 koji razdvaja šest primljenih podataka. Objasnili smo ih kao vrijednosti senzora te prvi i zadnji podatak koji su praznine. U crvenom bloku „split text at“ odabrali smo zarez jer ga rijetko koristimo i ne možemo pomiješati s nekim drugim znakovima. Svaki podatak ispisuje u odgovarajući Label od 1-6, dok su Label5 i Label6 postavljeni kao nevidljivi jer se u njima nalaze „praznine“. Objasnili smo već da se praznine dodaju zbog stabilizacije slanja podataka.

U4

Uključivanje/isključivanje rasvjete i hladnjaka riješili smo naredbom Case i ASCII znakovima. Koristit ćemo „gumbe“ čijim će se pritiskom poslati određena vrijednost pod uvjetom da je BT modul spojen s aplikacijom. Kao tekst ispisujemo znakovnu vrijednost jer Bluetooth samostalno pretvara u ASCII.

U5

Naravno, ovdje možemo riješiti i detalje aplikacije pod koje spadaju ikonica, ime aplikacije, podaci o osobi koja ju je izradila itd. Ovo je pojednostavljena verzija s osnovnim komponentama. Naravno, možete dodati još mnoštvo senzora i stvari kojima možete upravljati preko aplikacije. Aplikaciju možete spremiti u formatu .aia ili je možete eksportati u .apk oblik za instalaciju na Android uređaju. Izbornik Build/App-save .apk to my computer.

U6

Kako preimenovati HC-05 Bluetooth modul?

Kod koji je potrebno prenijeti na Arduino:

#include <SoftwareSerial.h>
SoftwareSerial BTSerial(10, 11); // RX i TX pinovi
void setup()
{
pinMode(9, OUTPU); // Key pin stavi u HIGH kako bi otvorio AT mod
digitalWrite(9, HIGH);
Serial.begin(9600);
Serial.println(«Unesi AT naredbu= «);
BTSerial.begin(38400); // HC-05 brzina u AT modu
}
void loop()
{
if (BTSerial.available())
Serial.write(BTSerial.read());
if (Serial.available())
BTSerial.write(Serial.read());
}

U7

1. HC-05 spojiti kako je prikazano na slici.
2. Prije nego spojite Arduino s računalom otpojite napajanje Bluetooth modula. VCC pin, odnosno 5 V
3. Spojite Arduino s računalom
4. Provjerite da BT modul nije trenutno spojen/uparen ni s jednim uređajem
5. Spojite napajanje na BT modul
6. Ledica na BT modulu trebala bi treperiti u intervalima od 2 sekunde, što nam govori da je u AT modu
7. Da biste provjerili je li sve u redu, otvorite Serial Monitor u Arduino programu i upišite „AT“. Kao povratnu informaciju trebali biste dobiti poruku „OK“
8. Nakon toga možete mijenjati postavke BT modula, kao što je brzina prijenosa, Ime, Šifra itd. Da biste promijenili ime, upišite naredbu „AT+NAME=IME“; da biste šifru promijenili u 0000, upišite naredbu „AT+PSWD=0000“
Popis AT naredbi možete pronaći na internetu.

(Stranica 4 od 4)
« Prev All Pages Next » (Stranica 4 od 4)
Ocijeni sadržaj
(0 glasova)

// možda će vas zanimati

Newsletter prijava


Kako izgleda naš posljednji newsletter pogledajte na ovom linku.

Skeniraj QR Code mobitelom i ponesi ovu stranicu sa sobom

Izradite svoj DIY frižider - VidiLAB - QR Code Friendly


Copyright © by: VIDI-TO d.o.o. Sva prava pridržana.