Stacja pomiarowa dla Internetu przedmiotów

 

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