Wątek przeniesiony 2018-11-07 15:49 z C# i .NET przez Marooned.

Smart House

0

Cześć

Za radą jednego z kolegów z forum wrzucam moje pytanie z prywatnej wiadomości do publicznej dyskusji:

Jestem zaciekawiony tematyką połączenia IoT z częścią Webową, o czym dyskutowaliście tutaj.

Chciałbym w ramach pracy magisterskiej napisać Restowe API, które miałoby obsługiwać aplikację typu Smart House (zużycie energii, włączniki/wyłączniki urządzeń itp.) plus jak najwięcej się nauczyć z tematyki C# .NET (.NET Core, Entity Framework, SQL itp.).

Dodam też, że nie jestem programistą .NET. W pracy zajmuje się całkiem odrębnymi tematami, często związanymi jednak z programowaniem, choć w innych językach.

W mojej wyobraźni miałoby to działać w kilku etapach:
-Rest API z "fejkami" danych
-Webowy interfejs z obsługą urządzeń i wykresami (np. wykresem zużycia energii)
-Ostatnim etapem (jak mnie już nie będzie na uczelni) będzie dodanie do tego realnych urządzeń (PLC? Arduino? - to już nie moja brożka, ale chciałbym żeby aplikacja byla przystosowana do "zdjęcia" fejków i nałożenia na to realnych danych z urządzeń).

I mam parę pytań.

  1. GUI - Wydaje mi się, że dobry kierunek dla mnie to Single Page i GUI w tym stylu - ale to akurat Win Formsy - jak będzie "najwłaściwiej" zrobić coś podobnego? Robić to w jakimś Angularze, czy lepiej korzystać z czegoś w stylu Razora/Bootstrapa/KendoUI?
  2. Nie chce też brnąć w przestarzałe technologie i metody. Czy moja koncepcja jest generalnie słuszna?

Jeżeli w którymś fragmencie tej litanii walnąłem "głupotę" to możecie mnie również o niej uświadomić. :)

W kwestii komunikacji - o ile wiem do tego typu zastosowań używa się protokołu Mqtt.

Wydaje mi się też, że hasła Influx i Kibana mogą mi pomóc, ale proszę o wasze opine. :)

1

REST API oraz GUI w jednym poście to tak trochę dwie różne rzeczy ;-)

  1. Tak, SPA może być fajne - ale tutaj musisz poznać nie tylko back-end, a cały nowoczesny stack front-endowy, np. właśnie jakiegoś Angulara czy innego Reacta. KendoUI zdaje się możesz z Angularem mieszać, podobnie Bootstrapa też możesz sobie wykorzystać w swojej aplikacji Angular bez problemu. Z drugiej strony musisz tutaj też poznać back-end, czyli .NET Core, ale że on ma tylko "udawać" to więcej pracy włożysz we front-end twojej aplikacji;
  2. Aktualnie przestarzałe to chyba nie jest, więc jest ok.

Tak, używa się MQTT - bardzo fajny protokół, gdzie ktoś nadaje i wielu może tego nasłuchiwać. Więc w twoim przypadku urządzenia mogą słuchać komend, a REST API będzie nadawać. Z drugiej strony - urządzenia będą wysyłać coś (np. swój stan), jakaś usługa będzie to odbierać (np. jakaś baza danych), a REST API może z tej bazy danych wybierać rzeczy, aby przekazywać dalej do front-endu (np. zużycie energii, gdzie w JavaScripcie sobie zrobisz wykres).

Pamiętaj tylko, że praca magisterska musi mieć element badawczy - nie może to być tylko zrobienie sobie aplikacji. Musisz coś porównać, coś zbadać, coś przeanalizować.

0

Dzięki za odpowiedź.

Głównym założeniem pracy jest przystosowanie aplikacji do stworzenia realnego stanowiska laboratoryjnego w przyszłości (dlatego moje dane mają tylko udawać). Zaznaczam też, że ja go nie będę tworzył, więc w tym konkretnym przypadku nie chce wchodzić głęboko w elektronikę i komunikację samego stanowiska.

Z kolei charakter badawczy ma wystąpić w analizie porównawczej zużycia energii w domie jednorodzinnym bez i z użyciem aplikacji.

0

A to nie tak, że jak już postawimy na MQTT, to REST nijak ma się do tego?

0

Ja nie bardzo zrozumiałem to co napisałeś . Ty chcesz napisać pracę magisterską czy rozpocząć naukę ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1