Skip to content
System inteligentnego kubła na śmieci zrealizowany
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
images
.gitattributes
README.md

README.md

eKosz (repozytorium archiwalne)

System inteligentnego kubła na śmieci zrealizowany w C++ na wbudowanej pamięci mikrokontrolera ESP8266 oraz w formie aplikacji desktopowej napisanej w języku C#.

Autorzy

Projekt został wykonany przez studentów Politechniki Śląskiej na wydziale Wydział Inżynierii Materiałowej i Metalurgii na kierunku Informatyka Przemysłowa:

Założenia

Część pierwsza dotycząca przedmiotu "Zaawansowane programowanie w języku C":

  • realizacja i umieszczenie wszystkich danych jedynie na pamięci mikrokontrolera,
  • realizacja kodu w sposób naprzemienny (przeplot) pomimo jednego wątku układu,
  • łatwość modyfikacji ustawień w kodzie,
  • prostota dodawania kolejnych elementów,
  • prostota i łatwość użycia przez zewnętrznego użytkownika.

Część druga dotycząca przedmiotu "Aplikacje wielowarstwowe":

  • odtworzenie funkcjonalności oferowanej przez układ w formie aplikacji desktopowej,
  • weryfikacja połączenia z urządzeniem,
  • nieblokujący interfejs działający w sposób asynchroniczny,
  • prostota interfejsu i użytkowania aplikacji,
  • odporność aplikacji na niepoprawne użytkowanie.

Rezalizacja części pierwszej

Do realizacji projektu z części programowania w języku C użyto modułu ESP8266 oraz zestaw elementów:

  • DHT11 – czujnik temperatury i wilgotności,
  • MPU6050 – 3-osiowy akcelerometr i żyroskop z wbudowanym termometrem,
  • BMP280 – cyfrowy barometr,
  • TSL2561 – czujnik natężenia światła otoczenia,
  • HC-SR04 – ultradźwiękowy czujnik odległości,
  • S90 – serwomechanizm modelarski.


Płytka prototypowa z elementami użytymi w projekcie


Płytka prototypowa założona w obudowie kubła

Urządzenie po podłączeniu zasilania uruchamia Hotspot „eKosz” na czas określony z góry (300s) w celu konfiguracji urządzenia. W przypadku braku konfiguracji urządzenie przechodzi w tryb uśpienia, wyłączając hotspot oraz usypiając wszystkie czujniki. Natomiast po konfiguracji, którą jest podłączenie urządzenia do zadanej sieci WiFi zaprojektowane oprogramowanie pozwala na:

  • sprawdzenie stanu urządzenia(pozycja klapy, ilość otwarć, poziom wypełnienia),
  • otwarcie i zamknięcie klapy „eKosza”,
  • wyświetlanie bieżących danych dostępnych czujników.


Menu konfiguracji WiFi dostępne z poziomu przeglądarki po podłączeniu się pod hotspot "eKosz"


Serwowana strona WWW dostępna po podłączeniu urządzenia do docelowej sieci lokalnej

Dane aktualizowane są co zadany czas (60s) z informacją o przedawnieniu lub braku danych. Powyższe możliwości zrealizowane są za pomocą wbudowanego serwera WWW, serwującego stronę, która odpytuje urządzenie o potrzebne dane za pomocą asynchronicznych zapytań GET i POST w języku JavaScript. Dane przesyłane są w formacie JSON.

Rezalizacja części drugiej

Do realizacji projektu z części aplikacje wielowarstwowe użyto języka C# w celu napisania aplikacji desktopowej. Pierwotnie jedyną opcją jest wprowadzenie adresu do połączenia z urządzeniem. Podczas próby połączenia następuje:

  • weryfikacja adresu pod względem składni adresu URL,
  • normalizacja adresu – ciąg musi rozpoczynać się od „http://” i kończyć na „/”,
  • weryfikacja czy pod danym adresem znajduje się API zaprojektowanego urządzenia w części pierwszej.

gdzie w razie napotkanych wyjątków zgłaszane są do użytkownika stosowne komunikaty np.: „Podany adres jest nieprawidłowy!”, „Podany adres jest niedostępny lub nie jest adresem eKosza!”. W przypadku braku wyjątków odblokowywana jest reszta interfejsu, która pozwala na:

  • otworzenie i zamknięcie klapy urządzenia,
  • pobranie danych na temat stanu urządzenia i jego czujników,
  • rozłączenie w celu nawiązania połączenia z innym urządzeniem.


Zrzut działajacej aplikacji eKoszApp

Ostateczny efekt


Cały działający eKoszsystem - urządzenie z serwowaną stroną z danymi


Zdobyte przez projekt odznaczenie jako "Projekt Miesiąca" na grupie Nastoletni Programiści.
(Michał Kucharski wpisany jako autor jako osoba zgłaszająca)

Notka: Repozytorium w celach archiwalnych, nie zanosi się na wprowadzanie poprawek :)

You can’t perform that action at this time.