Mikroprocesorowa stacja pogodowa współpracująca z technologią chmurową

Autor:        inż. Arkadiusz Urbankiewicz

Promotor:    dr inż. Dominik Łuczak

Praca dyplomowa inżynierska. Studia niestacjonarne.

Celem zrealizowanej pracy było zaprojektowanie oraz wykonanie systemu składającego się z mikroprocesorowej stacji pogodowej, architektury chmurowej współpracującej ze stacją oraz witryny internetowej umożliwiającej zarządzanie stacją pogodową. Współpraca stacji z usługami chmurowymi objawia się poprzez obustronną wymianę danych. Dane przekazywane przez stacje do chmury to parametry pogodowe, których pomiaru dokonuje zaprojektowany mikroprocesorowy układ pomiarowy. Dane odbierane przez stację natomiast stanowią komendy sterujące za pomocą których osoba zarządzająca stacją może dokonywać zmian w jej funkcjonowaniu. Zakres wykonanych prac podczas realizacji projektu zawierał zarówno prace związane z częścią sprzętową systemu jak i częścią programistyczną i konfiguracyjną. Od strony sprzętowej wykonany został mikroprocesorowy system pomiarowy oraz współpracujące z nim moduł czujników oraz moduł zasilający. Budowa stacji obejmowała wybór odpowiednich komponentów z zakresu mikrokontrolera, elementów zasilających a także czujników oraz zaprojektowanie płytek PCB. Zaprojektowany i wykonany w ramach pracy układ pomiarowy stacji pogodowej opiera się na mikrokontrolerze ATmega16 (język C) i jest w stanie dokonać pomiaru aktualnej wartości temperatury, ciśnienia atmosferycznego, nasłonecznienia, wilgotności powietrza oraz kierunku i prędkości wiatru. Za komunikację z infrastrukturą chmurową w urządzeniu odpowiada algorytm realizowany za pośrednictwem komputera jednopłytkowego Raspberry Pi (język Python). Urządzenie komunikuje się z usługami w chmurze z wykorzystaniem protokołu komunikacyjnego MQTT. Za pomocą Google Cloud Platform, narzędzia pozwalającego na wdrażanie i konfigurację usług chmury obliczeniowej Google, stworzono architekturę wdrażającą w urządzeniu ideę Internet of Things oraz pozwalającą na przetwarzane danych pochodzących ze stacji. Wynikiem przetwarzania danych jest przechowywany w zasobach chmury plik JSON zawierający informację o pomiarach realizowanych przez stację pogodową. Ostatnim elementem systemu jest strona internetowa, która umożliwia analizę danych oraz zarządzanie urządzeniem poprzez zawarty w niej interfejs użytkownika. Do stworzenia strony, w aspekcie back-endu posłużono się micro-frameworkiem Flask natomiast front-end witryny stanowią pliki HTML, CSS oraz JavaScript.

 

Rys. 1 Przedstawienie budowy urządzenia.

Rys. 2 Wykonana płytka PCB mikroprocesorowego układu pomiarowego

 

 

 

Rys. 3 Ostateczna struktura systemu.

 

Rys. 4 Widok strony głównej   .

 

 


Rys. 5 Trendy- wykres liniowy.

Sterowanie i komunikacja wielu urządzeń za pomocą uniwersalnego interfejsu webowego wykonanego w technologii ASP.NET dla Internetu przedmiotów

Autor:        inż. Oskar Gierszewski

Promotor:    dr inż. Dominik Łuczak

Praca dyplomowa inżynierska. Studia stacjonarne.

 

Celem pracy było stworzenie uniwersalnego interfejsu webowego z wykorzystaniem frameworku ASP.NET w języku C#. Interfejs webowy komunikuje się z urządzeniami Internetu przedmiotów w dwie strony, umożliwiając sterowanie jak i wyświetlanie przesłanych danych. Komunikacja następuje poprzez usługę Azure IoT Hub umożliwiającą połączenie się z urządzeniem znajdującym się w dowolnym miejscu na świecie, nie tylko w sieci lokalnej. Frontend interfejsu webowego został wykonany z wykorzystaniem frameworku Angular w wersji 5. Interfejs użytkownika jest generowany dynamicznie na podstawie informacji konfiguracyjnych z urządzenia. Interfejs umożliwia odczytywanie i przesyłanie danych w czasie rzeczywistym jak i pobieranie danych przesłanych przez urządzenie wcześniej. System składa się z aplikacji webowej uruchomionej na serwerze, płytki PCB NodeMCU (język C), komputera jednopłytkowego Raspberry Pi 3 B+ (język Python) oraz urządzenia symulowanego (język C#). Każde z tych urządzeń przy swoim uruchomieniu wysyła do interfejsu webowego swoje dane konfiguracyjne w formacie JSON na podstawie których tworzona jest część wizualna strony internetowej. Interfejs webowy jest uniwersalny, umożliwia obsługę dowolnego urządzenia które prześle poprawnie sformatowaną wiadomość zawierającą konfigurację urządzenia. Interfejs dla urządzenia Raspberry Pi 3 B+ pokazano na rys. 1, a przykładowe dane konfiguracyjne na rys. 2.

 

 

 

 

Karta rozszerzeniowa sterownika DSP pracująca jako przełącznik faz silnika SSMT

Autor:         inż.  Łukasz Halbinak

Promotor:    dr inż. Dominik Łuczak

Praca dyplomowa inżynierska.

 

Celem pracy było kompleksowe zaprojektowanie oraz złożenie karty rozszerzeniowej sterownika DSP pracującej jako przełącznik faz silnika SSMT. Niniejsza praca zawiera analizę stanowiska badawczego oraz wymogów technicznych potrzebnych do implementacji karty na stanowisku. Opisano proces projektowania schematu elektrycznego karty rozszerzeniowej i dodatkowego modułu filtra RC. Objaśniono ideologię tworzenia poszczególnych mozaik płyt PCB wraz z sposobem montażu układów w obudowie uniwersalnej na danym stanowisku. Przeprowadzono testy karty rozszerzeniowej z poziomu układu STM32F429ZI. Opisano rezultaty przeprowadzonych testów. Na końcu utworzono dokumentację użytkownika. Integralną częścią niniejszej pracy inżynierskiej są schematy elektryczne układów, mozaiki płyt PCB, dokumentacja użytkowania urządzenia oraz filmik pokazujący działający układ.

 

 

 

Zbieranie danych o układach automatyki z wykorzystaniem chmury obliczeniowej

Autor:        inż. Adam Jopa, inż. Karol Robak

Promotor:    dr inż. Dominik Łuczak

Praca dyplomowa inżynierska. Studia stacjonarne.

 

Celem pracy było stworzenie w pełni funkcjonalnych układów automatyki opartych na rozwiązaniach oferowanych przez B&R Automatyka Przemysłowa Sp. z o.o. (Rys 1.), a także przez Arduino oraz Raspberry Pi (Rys. 2). Miały one spełniać podstawowe wymagania stawiane przed współczesnymi systemami sterowania. W projekcie wykorzystano języki programowania: LAD, ST oraz C/C++.

Układ automatyki stworzony z elementów użyczonych przez firmę B&R miał sterować procesem ogrzewania, zbierać dane z układu do pliku csv, generować raporty, alarmować o stanach niepożądanych, a także zmieniać nastawy regulatora wykorzystując wcześniej zapisane nastawy. Wszystko to miało być ukazane na panelu operatorskim, który w intuicyjny sposób pozwalałby na szybkie i łatwe nadzorowanie procesu.

 

Drugie stanowisko z systemem mikroprocesorowym umożliwia osiąganie zadanej temperatury obiektu, którym jest rezystor mocy, przy użyciu dyskretnego regulatora PID. Informacje o układzie są przesyłane do komputera jednopłytkowego Raspberry Pi 3B, gdzie odbywa się ich archiwizacja w lokalnej bazie danych, a następnie transmisja do Internetu.

Podążając za trendami światowego rynku automatyki - Industry 4.0 przesyłano dane do chmury obliczeniowej w celu umożliwienia ich późniejszej analizy (Rys.3). W projekcie wykorzystano usługi dostępne na platformie Microsoft Azure (Rys.4), które pozwalają na zbieranie danych z urządzeń w ramach Internetu Przedmiotów (IoT Hub), analizę i przekierowywanie strumieni informacji (Stream Analytics), magazynowanie obiektów BLOB (Storage) oraz tworzenie raportów na podstawie danych z obu stanowisk (Power BI).

 

 

 

Utworzono również stronę WWW, która pobiera raporty z usługi Power BI i umożliwia prezentację zebranych danych (Rys.5).

 

 

Układ pomiaru położenia kątowego z wykorzystaniem aplikacji mobilnej

Autor:         inż.  Maciej Kołuda

Promotor:    dr inż. Dominik Łuczak

Praca dyplomowa inżynierska. Studia stacjonarne.

Celem pracy inżynierskiej było zaprojektowanie dedykowanej aplikacji na urządzenia mobilne z systemem operacyjnym Android, która powinna zapewniać akwizycję oraz przesłanie danych z czujników, dzięki którym będzie można wykorzystać smartfon (ang. smartphone) do pomiaru położenia kątowego. Interaktywnym środowiskiem, które posłużyło do przetwarzania danych, odebranych po protokole UDP (protokół pakietów użytkownika, ang. User Datagram Protocol) był Matlab. Głównymi zadaniami po stronie tego programu były: interpolacja do stałego okresu próbkowania, filtracja, wizualizacja przetworzonych danych oraz obliczenie położenia kątowego jakie zostanie zadane na wolnoobrotowym stanowisku.

W celu porównania różnych metod estymacji położenia kątowego wykorzystano trzy filtry: filtr Kalmana, filtr Madgwicka oraz filtr komplementarny. Pomiary przeprowadzono również dla zmiennych promieni okręgu, po którym poruszał się smartfon.

Zaobserwowano, że dla większych promieni okręgu błąd położenia końcowego smartfonu w przypadku filtru Madgwicka narastał wraz ze zwiększeniem tej długości. Postanowiono wprowadzić współczynnik korygujący (skalujący) prędkość obrotową dostarczaną z żyroskopu na wejście tego filtru.

 

W celu dokonania pomiaru położenia kątowego zostało wykorzystane wolnoobrotowe stanowisko badawcze (Rys. 8), do którego sztywno przytwierdzono smartfon za pomocą zmodyfikowanego uchwytu samochodowego do telefonu komórkowego. Aby określić dokładność dokonywania pomiarów przez aplikację mobilną zostały zadane za pośrednictwem stanowiska kontrolno-pomiarowego (Rys. 10) obroty elementu wykonawczego (Rys. 9). Prędkość kątowa jaka została wymuszona wynosiła 18 [°/s] i był to ruch jednostajny po okręgu.

 

 

Rys. 10 Stanowisko kontrolno-pomiarowe.

 

 

 

Filtracja sygnałów cyfrowych z wykorzystaniem analizy falkowej

Autor:         mgr inż.  Mateusz Skrzypiński

Promotor:    dr inż. Dominik Łuczak

Praca dyplomowa magisterska.

 

Praca zawiera przegląd istniejących rozwiązań w zakresie filtracji z wykorzystaniem analizy falkowej. Głównym zadaniem było przygotowanie skryptów symulacyjnych z pomocą pakietu Wavelet Toolbox i MATLAB’a oraz przeprowadzenie testów funkcjonalnych. Badania poświęcono filtracjom off-line i on-line. Wyznaczono wartość opóźnienia wnoszonego przez poszczególne metody filtracji. W pracy zawarto porównanie uzyskanych wyników pod względem jakości filtracji. Ostatecznie stworzono program implementujący jeden z algorytmów.

System antywłamaniowy z wykorzystaniem aplikacji mobilnej

 

Autor:         inż.  Łukasz Pulik

Promotor:    dr inż. Dominik Łuczak

Praca dyplomowa inżynierska. Studia niestacjonarne.

 

 

 

Celem pracy było zaprojektowanie systemu antywłamaniowego z wykorzystaniem aplikacji mobilnej w systemie Android, która pozwoliłaby wykryć włamanie przy zastosowanych czujnikach zmian pola magnetycznego oraz zmian przyspieszenia. Aplikacja mobilna łączy się z aplikacją desktopowa, nadzoruje ona działanie oraz gromadzi wszelakie dane napływające z detektora włamania i wykorzystuje je w znajdującym się w nim algorytmie wykrywającym otwarcie drzwi. Komunikacja pomiędzy aplikacjami opiera się na protokole TCP. Metoda detekcji włamania która została w systemie zaimplementowana opiera się na sprawdzeniu kąta otwarcia drzwi, na których znajduje się urządzenie mobilne z zainstalowaną aplikacją. Rysunek 1 przedstawia trzy główne okna aplikacji mobilnej.


Rysunek 1: Okna dostępne w aplikacji mobilnej

 

 

Środkowe okno (Rysunek 1) wykorzystywane jest w celu sterowania detektorem, w samym jego centrum znajduje się przycisk w postaci obrazu który komunikuje się z centralą systemową. W zależności od stanu, czyli obrazka, przycisk wykonuje różne przypisane akcje.

Implementując architekturę akcelerometru w aplikacji mobilnej w czasie odczytu wartości występuje niedokładność związana z błędnymi pomiarami. Czujnik nie mierzy rzeczywistych wartości przyspieszenia urządzenia. Spowodowane jest to tym, że algorytm korzysta z zależność w którym grawitacja zawsze wpływa na mierzone przyspieszenie. W celu usunięcia wpływu grawitacji zastosowano filtr górnoprzepustowy oraz filtr dolnoprzepustowy.

Drugim ogniwem systemu antywłamaniowego jest centrala systemowa. Jest to aplikacja desktopowa napisana przy użyciu języka Java posiadająca przejrzysty interfejs użytkownika. Jej zadaniem jest utrzymanie ciągłej kontroli nad aplikacją mobilna. Zaimplementowano w niej główny algorytm służący dla celu wykrycia włamania (Rysunek 2).


Rysunek 2: Interfejs graficzny aplikacji okienkowej

 

Algorytm wykrycia włamania opierał się na zależności macierzy obrotów, wektora pola magnetycznego oraz wektor przyspieszenia ziemskiego dla których można było wyznaczyć wartości katów rotacji obiektu (1), (2), (3). Na podstawie kąta Theta algorytm oblicza kąt otwarcia drzwi.

 

Centrala systemowa posiada możliwość wyeksportowania bazy danych która zawiera wszystkie zapisane wartości z obu czujników. Dla dalszej interpretacji zapisanych wartości został stworzony kod w środowisku Matlab który sprawdza czy w czasie działania systemu nie nastąpiła próba wywarzenia drzwi. Na wykresie wygenerowanym w programie Matlab próbki znajdujące się poza granicą normy wykazują silne uderzenia (Rysunek 3).


Rysunek 3: Próbki wartości przyspieszenia względem czasu wygenerowane w programie Matlab

Na zakończenie pracy zostały wykonane testy dla drzwi lewo oraz prawoskrętnych, które sprawdzają poprawność działania systemu. Tabela 1 zawiera wyniki z kątomierza nastawnego oraz maksymalne i minimalne wartości kąta obliczonego przez algorytm. Błąd to różnica średniej arytmetycznej i kąta rzeczywistego.

 

Tabela 1: Przedstawienie kątów obliczonych przez algorytm dla drzwi lewoskrętnych

Kąt (kątomierz)

Minimalny kat (algorytm)

Maksymalny kąt (algorytm)

Średnia arytmetyczna

Błąd

0.0

0.2

1.2

1.0

1.0

10.0

9.6

11.2

10.4

0.4

20.0

20.3

21.4

20.85

0.85

30.0

29.8

30.8

30.3

0.3

40.0

40.1

42.0

41.05

1.05

50.0

50.4

51.7

51.05

1.05

60.0

58.9

60.3

59.6

0.4

70.0

69.4

71.0

70.2

0.2

80.0

80.6

81.6

81.1

1.1

90.0

89.7

90.8

90.25

0.25

 

Implementacja estymatora neuronowego dla obiektu wielomasowego

Autor:         mgr inż.  Adrian Wójcik

Promotor:    dr inż. Dominik Łuczak

Praca dyplomowa magisterska.

W pracy dokonano przeglądu literatury z zakresu modelowania napędu elektrycznego ze sprężystym połączeniem z maszyną roboczą oraz neuronowego estymatora stanu dla części mechanicznej napędu. Omówiono technikę programowania obiektowego w kontekście mikroprocesorowego systemu sterowania i pomiaru. Przeprowadzono implementację zestawu modeli symulacyjnych w środowisku MATLAB/Simulink, które pozwoliły na wykonanie badań wpływu struktury sztucznych sieci neuronowych rozważanego estymatora stanu na jakość estymacji. Dokonano implementacji i testów estymatora neuronowego w języku C++ z wykorzystaniem techniki programowania obiektowego. Docelową platformą kodu jest procesor sygnałowy z rodziny SHARC.

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

 

 

 

Modułowy wyświetlacz 3D oparty na systemie mikroprocesorowym

Autor:         inż.  Justyna Kozak, inż. Mikołaj Pospieszny

Promotor:    dr inż. Dominik Łuczak

Praca dyplomowa inżynierska.

 

Praca inżynierska polegała na zaprojektowaniu oraz zbudowaniu modułowego wyświetlacza złożonego z diod LED wraz z układem sterującym. Głównym zadaniem układu była możliwość wyświetlania treści w trzech płaszczyznach.
Skonstruowany wyświetlacz składa się z dziewięciu modułów. Każdy moduł stanowi prostopadłościenną formę zbudowaną z 96 diod LED. Można w nim wyróżnić 16 kolumn i 6 warstw. Wszystkie moduły zawierają płyty sterujące, których zadaniem jest zaświecenie poszczególnych diod, zależnie od otrzymanych danych. Dane te są przesyłane do szeregowo połączonych modułów. Istnieje możliwość sterowania maksymalnie pięcioma takimi szeregami. Układ jest zarządzany przez mikrokontroler STM32F405 komunikujący się z komputerem poprzez interfejs USB. Oprogramowanie mikrokontrolera zostało napisane w języku C. Umożliwia ono odbieranie danych z aplikacji komputerowej oraz zmianę obrazowanej treści. Aplikacja komputerowa napisana w języku C# stanowi interfejs użytkownika pozwalający na kontrolowanie wyświetlanej zawartości. Na podstawie wybranego rozmiaru wyświetlacza (maksymalnie 5 na 5 modułów) możliwe jest obrazowanie widma akustycznego oraz tekstu. Próbki dźwięku pobierane są z urządzenia wybieranego z listy dostępnych na komputerze, a tekst do wyświetlenia zadawany jest przez użytkownika.

Free Joomla! templates by Engine Templates