Page tree
Skip to end of metadata
Go to start of metadata
Od 17. lipnja provodimo učeničku praksu u našem osječkom uredu, te smo u tu svrhu osmislili projekt baziran na arduino platformi.

Projekt je zamišljen kao distribuirani sustav koji se sastoji nekoliko Arduino Nano modula na koje su integrirani temperaturni senzor, senzor jačine svjetlosti te senzor za detekciju pokreta i jednog Arduino UNO R3 modula koji služi kao centralna komponenta za prikupljanje podataka sa Nano modula te ih prosljeđuje na http server. Nano moduli šalju podatke na Arduino UNO modul preko radio transmitera.

 

Komponente spremne za slaganje

Komponente spremne za slaganje

Očitavanje podataka sa senzora

Nano moduli svakih 10 sekundi šalju centralnom modulu sljedeće podatke: id nano modula, trenutnu temperaturu, trenutnu vlažnost zraka, trenutnu jačinu svijetlosti i podatak da li je bilo pokreta u proteklih 10 sekundi, odnosno od prethodnog slanja.

Temperatura, vlažnost zraka i jačina svijetlosti se očitava neposredno prije slanja podataka.

Senzor pokreta radi na malo drugačiji način: kada detektira pokret, poziva callback funkciju u kojoj "obrađujemo" taj događaj tako da mjenjamo stanje globalne boolean varijable nazvane motionDetected.

Vrijednost te varijable se šalje zajedno sa vrijednostima temperature i jačine svjetlosti nakon njihovog očitanja. Nakon slanja podataka, stanje varijable motionDetected vraćamo na false u kojem će ostati do sljedećeg slanja podataka ukoliko se u međuvremenu ponovo ne detektira pokret. 

Naš praktikant u žaru lemljenja 

Slanje podataka, kao što sam spomenuo, vršimo preko radio transmitera koji šalje podatke na receiver spojen na centralni modul. Biblioteka koju smo pronašli za ovu svrhu podržava slanje numeričke vrijednost maksimalne veličine od 32 bita. U arduino svijetu long tip podatka ima dužinu 32 bita. Da bi poslali sve podatke u jednom prijenosu, naše vrijednosti temperature, vlage, jačine svijetlosti i prisutnosti pokreta smo odlučili enkodirati u jedan broj tipa unsigned long koji šaljemo centralnom modulu te ga na toj strani dekodiramo.

Broj koji šaljemo je broj od 10 znamenki, maksimalna vrijednost ne smije prelaziti 4,294,967,295 jer je to maksimalna vrijednost za unsigned long.

Sastavili smo ga na sljedeći način: Prva znamenka označava kategoriju jačine svijetlosti, koje su označene brojevima od 1 do 4, što nam se lijepo uklapa u maksimalnu vrijednost prve znamenke. Sljedeće tri znamenke su rezervirane za id modula, sljedeće dvije za temperaturu, sljedeće dvije za vlažnost i zadnja za prisutnost pokreta (0 = nije bilo pokreta, 1 = bilo je pokreta).

 

Primanje podataka na centralnom modulu

Centralni arduino UNO modul, preko RF receivera prima naše podatke enkodirane u unsigned long i dekodira ih.

Na ovaj modul dodan je Ethernet shield koji nam omogućava spajanje na internet i slanje podataka na server preko http protokola.

Podatke na server šaljemo kao http parametre. Server trenutno samo ispisuje podatke u log, no uskoro ćemo dodati i neke korisnije stvari.

Namjeravamo  spremati podatke u neku vrstu baze, a nakon toga razmišljamo u 2 smjera:

  1. Omogućiti preko weba i mobilne aplikacije pratiti trenutno stanje u pojedinim prostorijama
  2. Implementirati u sklopu ovog servera analizu primljenih podataka te na temelju određenih kriterija dizati alarme i slati ih na naš Mobillion sustav npr. u slučaju previsoke ili preniske temperature, u slučaju pokreta u vrijeme kada u prostoriji ne bi trebalo biti nikoga i slično.

 

 

Testiranje

Sljedeći korak nam je osposobiti drugi nano modul (trenutno smo upogonili samo jedan) i testirati ponašanje RF komunikacije: domet, eventualne probleme interferencije signala dva nano modula. Osim toga, testirati ćemo i domet senzora za detekciju pokreta te njegovu osjetljivost.

Sljedeći tjedan planiramo i izradu jednostavne mobilne aplikacije koja će se spajati na http server te preuzimati i prikazivati trenutne vrijednosti podataka. 

Sada već imamo puno ideja za primjenu i nadogradnju ovog sustava koji smo izradili u samo nekoliko dana

 

AUTOR: Igor Buzatović