Autor: inż. Hubert Popiołkiewicz
Promotor: dr inż. Dominik Łuczak
Praca dyplomowa inżynierska. Studia niestacjonarne.
Celem pracy inżynierskiej było zaprojektowanie, skonstruowanie oraz zaprogramowanie pogodowej stacji pomiarowej, odczytującej wielkości fizyczne z czujników oraz przesyłającej dane pomiary na serwer HTTP protokołem sieci WWW. Rozwinięciem części programistycznej było zaprogramowanie usługi internetowej oraz zaprojektowanie i implementacja aplikacji monitorującej na urządzenia mobilne. Jest to praca jednoosobowa i ma charakter konstrukcyjno-programistyczny. W ramach realizacji warstwy fizycznej projektu wykorzystano takie urządzenia, jak laptop jako maszyna serwerowa, smartfon jako urządzenie przenośne z aplikacją monitorującą, komputer jednopłytkowy jako urządzenie pomiarowe, oraz cyfrowe czujniki pomiarowe. Przy realizacji części programistycznej przedstawiono wykorzystanie użytecznych technologii oraz narzędzi programistycznych.
Rys. 1 Diagram funkcjonalny systemu
Na powyższym rysunku (Rys. 1) przedstawiony został diagram funkcjonalny całego systemu. Widać na nim, że system dzieli się na trzy części składowe – część urządzenia mobilnego, część maszyny serwerowej oraz część urządzenia pomiarowego. Aplikacja monitorująca (napisana przy użyciu XML oraz języka Java, Rys. 2), znajdująca się na urządzeniu mobilnym, odpowiadała za logowanie/rejestrację użytkownika, definiowanie urządzeń oraz typów pomiarów, podgląd zdefiniowanych wcześniej urządzeń i typów pomiarów. Oprócz tego aplikacja udostępniała możliwość podglądania aktualnych wartości pomiarowych oraz wykresów czasowych pomiarów. Komunikacja aplikacji nadzorującej z serwerem odbywała się za pomocą protokołu HTTP. Cyfrowe czujniki pomiarowe (DHT22 oraz BMP180) odpowiadały za pomiar, kolejno, temperatury i wilgotności oraz ponownie temperatury i ciśnienia. Urządzenie pomiarowe (Rys. 3), poprzez główny program pomiarowy napisany w języku Java oraz Python, sczytywało wartości pomiarów z rejestrów czujników pomiarowych poprzez interfejsy komunikacyjne 1-Wire oraz I2C, weryfikowało poprawność sczytanych danych i na sam koniec przesyłało dane pomiarowe na serwer protokołem HTTP. Po przyjściu żądania na serwer HTTP, przekazywane było ono w ramach obsługi do aplikacji usługi REST. Logika serwisu, napisanego w oparciu o język Java, odpowiadała za odpowiednie przetworzenie żądania i, w zależności od wywołanej metody serwisowej, za zapis lub odczyt danych z bazy danych. Baza ta udostępniona była lokalnie, w obrębie systemu operacyjnego, dzięki systemowi zarządzania bazami danych MySQL (inaczej serwer bazodanowy lub serwer baz danych). Na rysunku (Rys. 4) widać fizyczną realizację projektu inżynierskiego.
Rys. 2 Aplikacja monitorująca