Detektor mjesečarenja je projekt napravljen s željom da poveća sigurnost osoba koje mjesečare ili su dementne tijekom sna.
Osobe koje mjesečare ili dementne osobe te njihovi skrbnici.
Sustav za detekciju mjesečarenja sastoji se od tri podsustava koji međusobno komuniciraju:
Sustav ne radi stalno te ga je po potrebi nužno priključiti na napajanje. Doseg sustava je određen dosegom WiFi signala lokalne mreže na koju je spojena centralna jedinica s kamerom i senzorima te jedinica za alarmiranje. Sustav ne predviđa dozvoljena kretanja promatrane osobe tijekom noći poput odlaska na WC.
Kolegica 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 timu, s 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č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.
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 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 s nje. U ovom projektu korišten je programski alat Eclipse Mosquitto koji predstavlja posrednika za MQTT poruke. On 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 temu, analizira podatak i prosljeđuje na outTopic temu koju sluša sustav za alarmiranje skrbnika.
Primjetile smo da ultrasonički senzor zna registrirati pokret, iako u stvarnosti nikoga nije bilo. Također, dok osoba prolazi senzor registrira barem 2 pokreta te ih pošalje s kraćim vremenskim intervalima. Koristeći te informacije, Python 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.
Treća tema je logTopic, preko 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 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.
Kako bi sustav mogao samostalno raditi, koriš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.
Pri izradi projekta, naišle smo na mnogobrojne probleme, većinom su svi bili vezani uz sklopovlje. Imale 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.
Detektor za mjesečarenje sastoji se od tri podsustava, Raspberrija Pi 3 model B na koji je spojena web kamera, Arduina s WiFi modulom i ultrazvučnim senzorom, te još jednog Arduina s WiFi modulom i alarmom. Te tri jedinice predstavljaju detektor ustajanja, detektor izlaska iz prostorije (u alternativnoj upotrebi za dementne osobe to je detektor pada) i jedinicu za alarmiranje i međusobno komuniciraju WiFi vezom, dok se veza unutar jedinica (WiFi moduli i Arduino) ostvaruje serijski.
Detektor za mjesečarenje osmišljen je kao samostalna jedinica i nije ovisan ni o kakvim vanjskim sustavima.