Korisnički alati

Site alati


2017:otomas:projektni_zadatak

Razlike

Slijede razlike između dviju inačica stranice

Poveznica na ovu usporedbu

Starije izmjene na obje strane Starija izmjena
Novija izmjena
Starija izmjena
2017:otomas:projektni_zadatak [2017/06/28 18:01]
otomas [Vlastita uloga na projektu]
2017:otomas:projektni_zadatak [2023/06/19 16:11] (trenutno)
Redak 41: Redak 41:
 ====== Vlastita uloga na projektu ====== ====== Vlastita uloga na projektu ======
  
-Kolegica Maja Ovčarik i ja smo bile zadužene za podsustave ​za detekciju izlaska osobe iz sobe ili pada s krevete i alarmiranje srkbnika te njihovu međusobnu komunikaciju. Zadatak smo obavljale ​u timu s time da je kolegica veći naglasak imala implementaciji modula i njihov ispravan rad u sustavu, dok je moja uloga bila osigurati komunikaciju ​između oba podsustava i Raspberry Pi ugrađenog računala ​te postaviti ​sustav ​na Raspberry Piju kako bi mogao samostalno ​raditi.+Kolegica ​[[:​2017:​studenti:​movcarik:​start|Maja Ovčarik]] i ja smo bile zadužene za podsustav ​za detekciju izlaska osobe iz sobe ili pada s krevete i alarmiranje srkbnika te njihovu međusobnu komunikaciju. Zadatak smo obavile ​u timus time da je kolegica veći naglasak imala na implementaciji modula i njihov ispravan rad, dok je moja uloga bila osigurati komunikaciju ​među podsustavima ​te omogućiti da sustav samostalno ​radi.
  
-Raspberry Pi ugrađenom računalo smo pristupali preko //​Ethernet//​ sučelja (//eth0//) te sam mu na početku samog projekta morala ​postaviti statičku IP adresu ​te definirati IP adresu mreže i njezinu maskuTo je izvršava dodavanje odgovarajućih naredba ​u /etc/network/interfaces datoteciPotrebno je i na osobnom ​računalu postaviti ​IP adresu ​Ethernet ​sučelja koja odgovara jednoj od IP adresa ​mreže u kojoj se nalazi Raspberry Pi.+Raspberry Pi ugrađenom računalu smo pristupali preko //​Ethernet//​ sučelja (//eth0//) te mu je potrebno ​postaviti statičku IP adresu. ​Budući da sustav komunicira koristeći Wi-Fi module, bilo je potrebno spojiti Raspberry Pi na kućnu bežičnu mrežu, a potom, radi prezentacije projekta, na bežičnu mrežu mobilnog uređaja (//wlan0 //sučelje)Primjetile smo da se Raspberry Pi računalo mijenja IP adresa, dok ESP8266 moduli traže statičku ​IP adresu ​pa je na isti način kao i za //​eth0// ​sučelje postavljena statička ​adresa ​za //wlan0// sučelje.
  
-Budući da sustav komunicira koristeći WiFi module, morala sam spojiti ​Raspberry ​Pi na kućnu bežičnu mrežu, a potom radi prezentacije projekta ​i na bežičnu mrežu mobilnog ​uređajaIme mreže i lozika se definiraju u /etc/wpa_supplicant/wpa_supplicant.conf koja se poziva iz /etc/network/interfaces datoteke. Primjetile smo da se Raspberry Pi računalu mijenja IP adresadok ESP8266 moduli traže statičku IP adresu pa sam na isti način kao i za eth0 sučelje postavila statičku adresi za wlan0 sučelje.+ESP8266 moduli komuniciraju sa Raspberry ​Pijem putem MQTT (engl. //Message Queue Telemetry Transport//​). Protokol zahtjeva posrednika koji prevodi poruke pošiljatelja te ih prilagođava ​prosljeđuje svim primateljima. Pošiljatelji su svi uređaji koji se prijavljuju za objavljivanje ​na određenu temu dok su primatelji svi uređaju koji slušaju određenu temu, odnosno primaju poruke s njeU ovom projektu korišten je programski alat //Eclipse Mosquitto// koji predstavlja posrednika za MQTT porukeOn je nakon instalacije na Raspberry Piju namješten da se pokreće sa pokretanjem operacijskog sustava. Sustav je zamišljen tako da je na Raspberry Pi modulu u pozadini pokrenut MQTT posrednik (engl. ​//broker)// (Eclipse Mosquitto) te da postoje 3 teme. Jedna tema je //​inTopic//,​ na nju podsustav za detekciju pokreta zapisuje podatak ako se ultrasonični modul prepoznao pokret. ​Raspberry Pi sluša //inTopic// temuanalizira podatak ​prosljeđuje na //​outTopic//​ temu koju sluša sustav ​za alarmiranje skrbnika.
  
-ESP8266 moduli komuniciraju sa Raspberyy Pijem putem MQTT (engl. //Message Queue Telemetry Transport//​). To je protokol koji se koristi ​//​machine-to-machine//​ i //Internet of Things// projektimaDizajniran je za razmjenu jednostavnih poruka principom pretplate i objavljivanja na određenu temu (engl. topic). Protokol zahtjeva posrednika koji prevodi poruke ​pošiljatelja te prilagođava i prosljeđuje svim primateljima. Pošiljatelji su svi uređaji koji se prijavljuju za objavljivanje na određenu temu dok su primatelji svi uređaju koji slušaju određenu temu, odnosno primaju poruke ​nje. U ovom projektu korišten je programski alat Eclipse Mosquitto koji predstavlja posrednika za MQTT poruke, a on se nakon instalacije na Raspberry Piju pokreće sa pokretanjem operacijskog sustavaIspravnost rada posrednika (engl. //broker//) moguće je provjeriti instalacijom mosquitto-clients alata koji nudi dvije naredbe za ljusku, mosquitto_sub (za pretplatu na temu) mosquitto_pub (za objavljivanje podatka na temi). Sustav sam zamislila tako da se na Raspberry Pi modulu vrti u pozadini MQTT //broker // ( Eclipse Mosquitto) ​te da postoje 3 teme. Jedna tema je inTopic, na nju podsustav za detekciju pokreta zapisuje podatak ako se ultrasonični modul prepoznao pokret te Raspberry Pi sluša i prosljeđuje na outTopic temu koji sluša sustav za alarmiranje skrbnika. Na Raspberry Piju se vrti Python skripta koja sluša upravlja komunikacijom ​između 2 podsustava, tako da sluša ​inTopic ​i zapisuje na outTopic. Za stvaranje klijenta za MQTT protokol, bilo je potrebno koristiti biblioteku //​paho-mqtt//​.+Primjetile smo da ultrasonički senzor zna registrirati pokret, iako stvarnosti nikoga nije biloTakođer, dok osoba prolazi senzor registrira barem 2 pokreta te ih pošalje kraćim vremenskim intervalimaKoristeći te informacijePython skripta ​na Raspberry Piju provjerava vremenski razmak ​između 2 podatka koja su stigla na inTopic ​temu te je time sprječen da se sustav pokreće zbog neispravnog rada modula.
  
-Primjetile smo da ultrasonički senzor zna registrirati pokret, iako u stvarnosti nikoga nije bilo. Također, dok osoba prolazi u jednoj sekundi ultrasoničku senzor registrira 2 pokreta. Koristeći te informacijepython skripta ​na Raspberry Piju provjerava vremenski razmak izmeđ2 podatka koja su stigla na inTopic ​temu te šalje podatak za paljenje na sustav za alarmiranje,​ samo ako je vremenski razmak manji od 2 sekunde.+Treća tema je //​logTopic//​preko nje se svi podsustavi mogu javiti kako bi potvrdili da su se uspješno spojili ​na mrežte da su poslali podatak. Napisana je Python skripta koja stalno sluša// logTopic// ​temu te dolazne podatke zapisuje u //log.txt// kako bi se omogućio lakši nadzor. U datoteci ///​etc/​rc.local//​ dodana ​je naredba koja pokreće skriptu za slušanje //​logTopic-a//​ pri samom pokretanju Raspberry Pi uređaja.
  
-Treća tema je logTopicpreko nje se svi podsustavi ​mogu javiti kako bi potvrdili ​da su se uspješno spojili na mrežu te da su poslali podatak. Napisana ​je Python skripta koja stalno slusa logTopic temu te dolazne podatke zapisuje u log.txt kako bi se omogućio lakši nadzor.+Kako bi sustav mogao samostalno raditikorišten je vremenski orijentiran raspoređivač //Cron //te se cijeli sustav detekcije mjesečarenja pokreće u 20 sati. U daljnim verzijama projekta, ​moguće je napraviti ​da preko neke aplikacije korisnik sam odredi kada hoće da mu se sustav pokrene ili je moguće uvesti neku tipku te da se sustav pritiskom na nju pokreće.
  
-TODO: 28.6popodne ce biti zavrseno+Pri izradi projekta, naišle smo na mnogobrojne probleme, većinom su svi bili vezani uz sklopovljeImale smo dosta problema sa WiFi modulima (ESP8266 i Arduino Wi-Fi modulom), napajanjem Arduina i ultrasoničkim senzorom. Jedan od većih problema se dogodio kada se koruptirala SD kartica te smo morali spasiti sve podatke i krenuti ispočetka sa instalacijom sustava.
  
  
2017/otomas/projektni_zadatak.1498672918.txt.gz · Zadnja izmjena: 2023/06/19 16:10 (vanjsko uređivanje)